gpt4 book ai didi

azure - 在 Azure Pipeline 中使用 terraform 进行 ArgoCD 引导

转载 作者:行者123 更新时间:2023-12-03 02:15:33 25 4
gpt4 key购买 nike

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

这是我的文件夹结构树:

我正在使用应用程序的应用程序方法,因此首先我将部署 ArgoCD(这也将进行 self 管理),稍后 ArgoCD 将允许我在安装后手动同步集群插件和应用程序。

apps
cluster-addons
AKV2K8S
Cert-Manager
Ingress-nginx
application
application-A
argocd
override-values.yaml
Chart

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

但是,如果我想通过 Terraform 安装它,则仅安装 ArgoCD,但看起来它没有“检测” override_values.yaml 文件:

我的意思是,ArgoCD 和 ArgoCD 应用程序集 Controller 安装在群集中,但 ArgoCD 不会“检测”为我的 AKS 群集自定义的 value.yaml 文件。如果我在集群上手动运行“helm install”,一切正常,但不能通过 Terraform

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”...

此外,我尝试添加:

 values = [
"${yamlencode(file("values.yaml"))}"
]

但我在管道中的“应用”步骤中收到此错误:

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 管道执行此操作?

提前致谢!

最佳答案

问题出在 TF 代码中的值缩进。

当我解决这个问题时,问题就解决了:

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")]

它在引用时也能正常工作。

关于azure - 在 Azure Pipeline 中使用 terraform 进行 ArgoCD 引导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71361062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com