所以我的问题是,我有一个ArgoCD应用程序,它指向一个外部repo URL,如下所示
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: emissary
namespace: argocd
spec:
destination:
namespace: emissary
server: https://kubernetes.default.svc
project: admin
sources:
- repoURL: 'ambassador' #i know it is wrong, but i have the right source in my real yaml
targetRevision: 8.9.1
chart: emissary-ingress
字符串
这个应用程序部署了一个Helm Chart,其中定义了一个资源Kind: Service
,
spec:
ports:
- name: name
port: 8080
...
型
现在,我想实现的是能够以自动化的方式将另一个端口添加到端口数组中。目前,该过程包括将Application manifest上传到gitlab,然后等待argoCD创建Helm chart中定义的所有内容。之后,我手动执行
kubectl patch svc svc-name --patch-file patch.yaml
kubectl rollout restart deployment deployment-name
型
但理想情况下,这个过程也需要自动化,我不知道如何做到这一点。不幸的是,服务资源的spec参数不是一个可以设置的参数或值。如果有人想看看我的具体情况,我会离开repository link,我会很高兴地讨论每一个解决方案,因为我是一个新的操作世界,我可以学得越多越好
编辑:我粘贴了错误的代码位
1条答案
按热度按时间mftmpeh81#
没有内置的方法可以以这种方式修补ArgoCD应用程序。您必须创建已应用补丁的svc文件,将文件推送到Git repo,然后将ArgoCD应用程序路径指向此svc文件,以便ArgoCD能够正确部署它。如果您使用Jenkins之类的东西,每次提交时都会运行构建,你可以考虑在构建时自动添加补丁文件,然后从那个补丁版本创建一个标记。2然后你可以在ArgoCD中引用这个标记,而不是直接引用一个分支。