Argo CD使用GitOps模型来管理和同步Kubernetes资源。当一个新的helm chart版本被推送到Git存储库中时,Argo CD会在后台发现并同步该更新的版本到目标集群中。
同步/更新helm chart的后台实现细节可以通过Argo CD日志进行查看。下面是一个示例helm chart同步到目标集群的Argo CD操作日志:
time="2021-01-01T00:00:00Z" level=info msg="sync operation started" application.name=my-helm-app application.namespace=default
time="2021-01-01T00:00:02Z" level=info msg="modified manifest diff detected" application.name=my-helm-app diff=[ ... ]
time="2021-01-01T00:00:03Z" level=info msg="sync operation completed" application.name=my-helm-app
Argo CD会自动在后台监控Git存储库的变化,然后从最新的Git commit中提取要部署的helm chart版本。Argo CD会在目标集群中创建一个相应的Deployment对象,并将新版本的helm chart部署到该Deployment中。在此过程中,如果存在任何的修改,Argo CD会在后台检测到并重新部署修改过的资源。
下面是一个示例helm chart部署的Argo CD YAML文件:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-helm-app
spec:
project: default
source:
repoURL: https://github.com/my/helm/chart/repo.git
path: my-helm-chart
targetRevision: HEAD
helm:
valueFiles:
- app-values.yaml
destination:
name: my-kubernetes-cluster
namespace: default
server: https://my-kubernetes-api-server.com
syncPolicy:
automated:
prune: true
selfHeal: true
``