在ArgoCD中,我们可以使用Helm charts来部署我们的应用程序。但是,在同一个应用程序中使用多个Helm chart时,可能会遇到一些问题。自从ArgoCD版本1.4.x以后,ArgoCD不再默认支持这种行为。但是,我们可以使用一个自定义的插件来解决这个问题。
首先,我们需要在ArgoCD中安装一个插件,叫做helm.sh/chart-sync。这个插件可以帮助我们在单个应用程序中部署多个Helm chart。要安装此插件,请执行以下命令:
argocd repo add https://argoproj.github.io/argo-helm
argocd plugin add helm.sh/chart-sync --upstream https://argoproj.github.io/argo-helm -n argocd
在执行完上述命令之后,我们需要将需要部署的Helm chart存储到Git仓库的不同文件夹中。例如:
/app
- chart1
- chart2
然后,在我们的应用程序中,我们需要定义一个扩展程序,该扩展程序将使用helm.sh/chart-sync插件。我们可以在应用程序的yaml文件中添加以下内容来定义扩展程序:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: my-namespace
spec:
source:
repoURL: https://github.com/my-org/my-repo
path: app
destination:
server: https://kubernetes.default.svc
namespace: my-namespace
project: default
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- apply
- CreateNamespace=true
plugin:
name: helm
env:
- name: HELM_EXPERIMENTAL_OCI