通过ArgoCD部署Datadog:如何编写application.yaml配置文件?
用ArgoCD部署Datadog Agent与Cluster Agent的Application配置指南
核心思路
ArgoCD支持直接对接Helm Chart部署应用,没必要把之前Helm生成的Deployment手动转成ArgoCD配置——直接在Application里指定Helm源、配置参数就能复用官方Chart的能力;如果一定要用自定义的Deployment文件,也可以让ArgoCD直接同步Git仓库里的清单文件。
1. 基于官方Helm Chart的Application配置(推荐)
这是最省心的方式,直接复用Datadog官方维护的Helm Chart,在ArgoCD配置里传入你之前用的参数即可:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: datadog namespace: argocd spec: project: default # 替换成你的ArgoCD项目名称 source: repoURL: https://helm.datadoghq.com # Datadog官方Helm仓库地址 chart: datadog targetRevision: 3.32.0 # 替换成你之前GitLab流水线用的Chart版本 helm: values: datadog: site: "datadoghq.com" # 国内用户替换成datadoghq.cn apiKeySecretName: "datadog-api-key" # 用Secret存API Key,不要明文写 agents: enabled: true metrics: enabled: true logs: enabled: true containerCollectAll: true clusterAgent: enabled: true metricsProvider: enabled: true # 需要HPA支持就开启 destination: server: https://kubernetes.default.svc namespace: datadog # 部署目标命名空间 syncPolicy: automated: prune: true # 自动清理Chart中不存在的资源 selfHeal: true # 自动修复被手动修改的资源 syncOptions: - CreateNamespace=true # 目标命名空间不存在时自动创建
2. 复用自定义Deployment文件的配置方式
如果之前有自己修改的Deployment清单,不想用官方Chart,可以把这些文件放到Git仓库,让ArgoCD直接同步:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: datadog-custom namespace: argocd spec: project: default source: repoURL: "git@your-git-repo.com:your-org/datadog-manifests.git" # 存放自定义清单的Git仓库地址 targetRevision: main # 对应分支/标签 path: ./manifests # 清单文件所在的目录路径 destination: server: https://kubernetes.default.svc namespace: datadog syncPolicy: automated: prune: true selfHeal: true
关键注意事项
- API Key安全:绝对不要在配置里明文写API Key,先创建K8s Secret再引用:
apiVersion: v1 kind: Secret metadata: name: datadog-api-key namespace: datadog type: Opaque data: api-key: <BASE64_ENCODED_API_KEY> # 用`echo -n "你的API Key" | base64`生成编码值 - 版本对齐:ArgoCD里指定的Chart版本要和之前GitLab流水线用的完全一致,避免版本差异引发的兼容性问题。
- 同步策略:开启
prune和selfHeal能保证集群状态和Git仓库配置完全一致,减少手动维护的麻烦。
内容的提问来源于stack exchange,提问作者Mangesh Sarangi
相关产品推荐
相关产品推荐

