[英]override config file from helm chart with terraform
我正在尝试使用 ArgoCD 的舵图在我的 k8s 集群中部署 ArgoCD。 我使用 Terraform 部署所有内容。 现在我想从 ArgoCD 更改配置文件,以便它可以连接到我的私人仓库。 当我在集群中运行 ArgoCD 后使用 kubectl 手动更改文件时,它会起作用,但是当我尝试使用 terraform 时,我收到消息Error: configmaps "argocd-cm" already exists
这意味着我无法覆盖由阿尔戈CD。 如何更改这些变量?
地形
resource "kubernetes_namespace" "argocd" {
metadata {
name = "argocd"
}
}
resource "kubernetes_secret" "argocd_registry_secret" {
metadata {
name = "argocd-repo-credentials"
namespace = "argocd"
}
data = {
username = "USERNAME"
password = "PASSWORD"
}
}
data "helm_repository" "argoproj" {
name = "argoproj"
url = "https://argoproj.github.io/argo-helm"
}
resource "helm_release" "argocd" {
name = "argocd"
chart = "argoproj/argo-cd"
version = "2.3.5"
namespace = kubernetes_namespace.argocd.metadata[0].name
timeout = 600
}
resource "kubernetes_config_map" "argocd-cm" {
depends_on = [helm_release.argocd]
metadata {
name = "argocd-cm"
namespace = "argocd"
}
data = {
config = file("${path.module}/configs/ingress/argo-configmap.yaml")
}
}
在kubernetes_config_map
使用generate_name
代替name
generate_name -(可选)服务器使用的前缀,仅在未提供名称字段时生成唯一名称。 此值还将与唯一后缀组合在一起。
您可以通过 argocd helm chart 添加私有 repo,在 TF 文件中将其添加到 argocd helm release 资源中:
set {
name = "server.config.repositories"
value = "${file("${path.module}/repositories.yml")}"
}
其中 repositories.yml 是:
- url: ssh://abc@def.com/my-repo.git
sshPrivateKeySecret:
name: argo-cd-stash-key
key: ssh-privatekey
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.