我们正试图在我的公司使用GitOps,使用ArgoCD,我们有一个主要问题:
Jenkins,我们的CI工具,目前推到我们的码头回购的任何公关合并与当前使用的git提交哈希标签。
编辑:在选择一个targetRevision时,我们希望将它的git哈希作为一个字符串来使用,用于重写掌舵图中的imageTag。
现在,选项1是,我们只是让它也更改任何相关的kubernetes文件中的imageTag。
但是,我想知道是否有一种方法可以使用PreSync钩子使ArgoCD自动完成这一任务。它已经知道git哈希了,因为它已经拉了git。让詹金斯做出承诺从来都不是理想的。
谢谢你的帮助!
发布于 2021-09-11 06:07:25
您可以使用targetRevision: HEAD
https://github.com/argoproj/argocd-example-apps/blob/master/apps/values.yaml
因此,ArgoCD中的应用程序配置如下
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: message-app-staging
namespace: argocd
environment: staging
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
# Source of the application manifests
source:
repoURL: https://github.com/akash-gautam/message-app-manifests.git
targetRevision: HEAD
path: manifests/staging
# Destination cluster and namespace to deploy the application
destination:
server: https://kubernetes.default.svc
namespace: staging
syncPolicy:
automated:
prune: false
selfHeal: false如果指定了分支名称或符号引用(如HEAD),Argo将继续将活动状态与在指定分支尖端定义的资源清单或符号引用的解析提交进行比较。
以上情况最好与舵机一起使用。
如果您在YAML中有静态报表,我建议您也检查一下:https://github.com/Alwinius/bow或https://github.com/keel-hq/keel
Bow从GitOps部署存储库中定义的图像的Docker注册中心检测更新的图像标记,其中包含Kubernetes部署/状态集或Helm模板。
https://stackoverflow.com/questions/69139198
复制相似问题