Kubernetes 使用terraform覆盖头盔图表中的配置文件

Kubernetes 使用terraform覆盖头盔图表中的配置文件,kubernetes,terraform,argocd,Kubernetes,Terraform,Argocd,我正试图使用ArgoCD的舵图在我的k8s集群中部署ArgoCD。我用Terraform部署所有东西。现在我想从ArgoCD更改配置文件,这样它就可以连接到我的私有repo。当ArgoCD在我的集群中运行后,我使用kubectl手动更改文件时,它会起作用,但当我尝试使用terraform时,我会收到消息错误:configmaps“ArgoCD cm”已经存在,这意味着我无法覆盖由ArgoCD创建的configmap。如何更改这些变量 地形 resource "kubernetes_na

我正试图使用ArgoCD的舵图在我的k8s集群中部署ArgoCD。我用Terraform部署所有东西。现在我想从ArgoCD更改配置文件,这样它就可以连接到我的私有repo。当ArgoCD在我的集群中运行后,我使用kubectl手动更改文件时,它会起作用,但当我尝试使用terraform时,我会收到消息
错误:configmaps“ArgoCD cm”已经存在
,这意味着我无法覆盖由ArgoCD创建的configmap。如何更改这些变量

地形

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\u config\u map

generate_name-(可选)前缀,由服务器使用,仅在未提供名称字段时生成唯一名称。此值还将与唯一的后缀组合


kubernetes\u config\u map

generate_name-(可选)前缀,由服务器使用,仅在未提供名称字段时生成唯一名称。此值还将与唯一的后缀组合


您可以通过argocd helm图表添加私有回购,将其添加到TF文件中的argocd helm发布资源:

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

您可以通过argocd helm图表添加私有回购,将其添加到TF文件中的argocd helm发布资源:

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