我有一个argocd存储库,它包含Kubernetes集群的所有配置。现在我想和PR一起工作,并且只想合并那些在我们的持续集成系统上测试过的东西,然后它们才能被合并。为此,我的想法是创建另一个集群,然后将分支部署到其中。遗憾的是,argocd在其yaml文件中定义了revision和targetRevision,因此,这是在git中“硬编码”的。
切换修订的最佳方式是什么,这样我就可以“应用”任何特性分支,并仍然将其链接到集群?
目标
GIT - Branch master -> prod-Cluster
- Branch dev -> dev-Cluster
- Branch feature.. -> feature-Cluster using kindArgoCD Config
Application (root) -> ApplicationSet (app-of-appset) -> apps/* directory containing kustomization files应用程序集的argo配置示例
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: cluster-addons
spec:
generators:
- git:
repoURL: https://github.com/argoproj-labs/applicationset.git
revision: HEAD <--------- Thats what I want to adjust for testing
directories:
- path: examples/git-generator-directory/cluster-addons/*
template:
metadata:
name: '{{path.basename}}'
spec:
project: default
source:
repoURL: https://github.com/argoproj-labs/applicationset.git
targetRevision: HEAD <--------- Thats what I want to adjust for testing
path: '{{path}}'
destination:
server: https://kubernetes.default.svc
namespace: '{{path.basename}}'发布于 2022-02-17 21:36:29
我认为唯一的方法是在同一个回购系统中为每个分支部署不同的应用程序。查看来自ArgoCD文档的以下信息
如果要从存储库中的单个路径中获取多个应用程序,也可以将参数重写存储在特定于应用程序的文件中。 特定于应用程序的文件必须命名为
.argocd-source-<appname>.yaml,其中是重写有效的应用程序的名称。 如果存在非应用程序特定的.argocd-source.yaml,则将首先合并该文件中包含的参数,然后合并应用程序特定的参数,该参数还可以包含对存储在非应用程序特定文件中的参数的重写。
或者您可以尝试修补应用程序:
argocd app patch APPNAME --patch '[{"op": "replace", "path": "/spec/template/spec/source/targetRevision", "value": "HEAD"}]'
然后是argocd app sync APPNAME
然而,当硬编码时,一切都变得困难起来。
https://stackoverflow.com/questions/71134408
复制相似问题