带有变量的 ArgoCD 应用程序清单

问题描述 投票:0回答:1

我正在使用

Argocd
来部署我的应用程序。
Kubernetes 资源使用位于
AWS ECR
的 Helm 图表进行部署。

我目前正在使用存储在 Git 存储库中的

Argocd application
清单,该清单指向 ECR 中的 Helm Chart
RepoURL

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: app
  namespace: argocd
spec:
  sources:
  - repoURL: 1234567890.dkr.ecr.us-east-1.amazonaws.com
    path: .
    chart: app-helm
    targetRevision: 3.2
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  project: default
  syncPolicy:
    syncOptions:
    - CreateNamespace=true
UI 中的

ArgoCD
应用程序指向带有此 ArgoCD 应用程序清单的 git 存储库。因此该应用程序创建了另一个应用程序(应用程序的应用程序)。
清单显示
RepoURL
包含
AWS_ACCOUNT_ID
AWS_REGION

我的目标是在清单中将这些参数配置为这样的环境变量,并以某种方式注入这些参数(例如,秘密、配置映射),而无需静态配置:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: app
  namespace: argocd
spec:
  sources:
  - repoURL: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
    path: .
    chart: app-helm
    targetRevision: 0.3.2
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  project: default
  syncPolicy:
    syncOptions:
    - CreateNamespace=true

有什么建议吗?

amazon-web-services kubernetes kubernetes-helm argocd
1个回答
0
投票

使用简单的 Helm 图表将应用程序包装在 Git 存储库中

spec:
  sources:
    - repoURL: {{ .Values.AWS_ACCOUNT_ID }}.dkr.ecr.{{ .Values.AWS_REGION }}.amazonaws.com

然后将其添加到应用程序的应用程序中:

helm:
  valuesObject:
    AWS_ACCOUNT_ID: "1234567890"
    AWS_REGION: "us-east-1"

参考:https://github.com/argoproj/argo-cd/blob/6e2f2c9d1e2339b3361f3a057747fcfe30e36f44/docs/operator-manual/application.yaml

© www.soinside.com 2019 - 2024. All rights reserved.