kubernetes 自动为ArgoCD应用程序提供指向外部源的补丁

u5rb5r59  于 5个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(65)

所以我的问题是,我有一个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,我会很高兴地讨论每一个解决方案,因为我是一个新的操作世界,我可以学得越多越好
编辑:我粘贴了错误的代码位

mftmpeh8

mftmpeh81#

没有内置的方法可以以这种方式修补ArgoCD应用程序。您必须创建已应用补丁的svc文件,将文件推送到Git repo,然后将ArgoCD应用程序路径指向此svc文件,以便ArgoCD能够正确部署它。如果您使用Jenkins之类的东西,每次提交时都会运行构建,你可以考虑在构建时自动添加补丁文件,然后从那个补丁版本创建一个标记。2然后你可以在ArgoCD中引用这个标记,而不是直接引用一个分支。

相关问题