首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure管道中带地形的ArgoCD自举

Azure管道中带地形的ArgoCD自举
EN

Stack Overflow用户
提问于 2022-03-05 09:35:41
回答 1查看 792关注 0票数 1

我试图通过AKS集群中的Terraform部署位于子文件夹中的ArgoCD和应用程序。

这是我的文件夹结构树:

我使用应用程序的方法,所以首先我将部署ArgoCD (这也将管理自身),然后ArgoCD将允许我同步集群-加载项和应用程序,一旦安装。

代码语言:javascript
运行
复制
apps
   cluster-addons
      AKV2K8S
      Cert-Manager
      Ingress-nginx
   application
      application-A
argocd
   override-values.yaml
   Chart

当我运行命令"helm install .“在AKS集群中手动安装一切都很好。安装了ArgoCD,稍后当我访问ArgoCD时,我发现其余的应用程序都丢失了,我可以手动同步它们。

不过,如果我想通过Terraform安装,那么只安装了ArgoCD,但它似乎没有“检测”override_values.yaml文件

我的意思是,ArgoCD和ArgoCD应用程序集控制器安装在集群中,但是ArgoCD没有“检测”为AKS集群定制的values.yaml文件。如果我在集群上手动运行"helm“,一切都可以工作,但不是通过Terraform。

代码语言:javascript
运行
复制
resource "helm_release" "argocd_applicationset" {
  name       = "argocd-applicationset"
  repository = https://argoproj.github.io/argo-helm
  chart      = "argocd-applicationset"
  namespace  = "argocd"
  version    = "1.11.0"
}

resource "helm_release" "argocd" {
  name       = "argocd"
  repository = https://argoproj.github.io/argo-helm
  chart      = "argo-cd"
  namespace  = "argocd"
  version    = "3.33.6"
  values = [
    "${file("values.yaml")}"
  ]

values.yaml文件位于要安装argocd和argocd应用程序集的TF代码所在的文件夹中。

我试图将文件“values.yaml”的名称更改为"override_values.yaml“,但问题相同。

我有很多东西被修改成override_values.yaml文件,所以我不能在TF代码中使用"set“.

此外,我还试着添加:

代码语言:javascript
运行
复制
 values = [
    "${yamlencode(file("values.yaml"))}"
  ]

但是我在管道中的“应用”步骤中得到了这个错误:

代码语言:javascript
运行
复制
error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go value of type map[string]interface {} "argo-cd:\r\n  ## ArgoCD configuration\r\n  ## Ref: https://github.com/argoproj/argo-cd\r\n

可能是因为JSON文件不是吗?把这个文件转换成JSON文件是有意义的吗?

知道我是否可以通过terraform传递这个覆盖值yaml文件吗?

如果没有,请您用模拟变量发布一个清晰/完整的示例,说明如何使用Azure管道进行操作?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 12:25:52

问题在于TF码中的价值观。

当我解决以下问题时,这个问题得到了解决:

代码语言:javascript
运行
复制
resource "helm_release" "argocd_applicationset" {
  name       = "argocd-applicationset"
  repository = https://argoproj.github.io/argo-helm
  chart      = "argocd-applicationset"
  namespace  = "argocd"
  version    = "1.11.0"
}

resource "helm_release" "argocd" {
  name       = "argocd"
  repository = https://argoproj.github.io/argo-helm
  chart      = "argo-cd"
  namespace  = "argocd"
  version    = "3.33.6"
  values = [file("values.yaml")]

它的工作也很好,引用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71361062

复制
相关文章

相似问题

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