首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用terraform覆盖helm chart中的配置文件

使用terraform覆盖helm chart中的配置文件
EN

Stack Overflow用户
提问于 2020-11-02 01:12:04
回答 2查看 787关注 0票数 1

我正在尝试使用ArgoCD的helm图表在我的k8s集群中部署ArgoCD。我使用Terraform部署所有东西。现在,我想要更改ArgoCD中的配置文件,以便它可以连接到我的私有存储库。当我在集群中运行ArgoCD之后使用kubectl手动更改文件时,它可以工作,但当我尝试使用terraform时,我得到消息Error: configmaps "argocd-cm" already exists,这意味着我不能覆盖由ArgoCD创建的配置映射。如何更改这些变量?

terraform

代码语言:javascript
复制
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") 
  }
}
EN

回答 2

Stack Overflow用户

发布于 2020-11-25 00:19:27

kubernetes_config_map中使用name而不是generate_name

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

票数 0
EN

Stack Overflow用户

发布于 2020-12-03 17:49:15

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

代码语言:javascript
复制
set {
  name = "server.config.repositories"
  value = "${file("${path.module}/repositories.yml")}"
}

其中,repositories.yml是:

代码语言:javascript
复制
- url: ssh://abc@def.com/my-repo.git
  sshPrivateKeySecret:         
    name: argo-cd-stash-key    
    key: ssh-privatekey
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64634665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档