标签: terraform-provider-helm

如何将值从terraform传递到Helm图表values.yaml文件?

我正在使用 Terraform 中的 Helm 图表创建 ingress-nginx 控制器。我确实有一个values.yaml 文件,可以在其中添加自定义信息,但我需要从 Terraform 资源传递 SSL 证书值,那么我该怎么做呢?我正在使用下面的代码,但出现错误。

\n
resource "aws_acm_certificate" "ui_cert" {\n  domain_name       = var.DOMAIN_NAME\n  validation_method = "DNS"\n\n  tags = {\n    Environment = var.ENVIRONMENT \n  }\n\n  lifecycle {\n    create_before_destroy = true\n  }\n\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n
resource "helm_release" "nginix_ingress" {\n\n  depends_on = [module.eks, kubernetes_namespace.nginix_ingress,aws_acm_certificate.ui_cert]\n\n  name       = "ingress-nginx"\n  repository = "https://kubernetes.github.io/ingress-nginx"\n  chart      = "ingress-nginx"\n  namespace  = var.NGINX_INGRESS_NAMESPACE\n   \n  values = [templatefile("values.yaml", {\n    controller.service.beta.kubernetes.io/aws-load-balancer-internal = aws_acm_certificate.ui_cert.name,\n  })]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我收到以下错误:

\n
 Error: Reference to undeclared resource\n\xe2\x94\x82\n\xe2\x94\x82   on ui.tf line 27, in …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform kubernetes-helm terraform-provider-aws terraform-provider-helm

6
推荐指数
1
解决办法
1万
查看次数

如何在销毁后从 Terraform 清理由 helm_release 资源留下并运行的 k8s 资源

我在 Terraform 中使用 helm_release 资源时遇到问题。

我基本上部署了一个kube-prometheus-stack包含许多k8s资源并且运行顺利的。

当我尝试销毁(或删除)这部分时,问题出现了,因为卸载图表时 Helm 不会删除所有资源(这可能与某些垃圾收集规则有关,这些规则使它们在删除后保持正常运行)。这意味着我最终得到:

  • 图表已卸载
  • 资源仍在运行
  • 必须手动去那里删除所有内容,否则如果我重新创建该内容,我会得到大量重复项

我之前问过一个问题(现在我要结束了),涉及了解这是否是 Helm 的问题(实际上不是,根据设计,它会尽可能删除所有内容,我不确定图表中是否可以做一些事情,但是无论如何,我假设现在不会很快完成)现在我想问是否有人知道如何直接从 Terraform 管理它。

例如,当资源被销毁时,我可以使用某些东西kubectl delete在标记的资源(或者可能是整个命名空间)上运行命令吗?helm_release

注意:我没有添加任何代码,因为这与代码无关,但更多的是寻找一些钩子或黑客仅在销毁后运行清理。

ps:我还尝试在应用后利用 Terraform 云挂钩,但我更愿意根据 Terraform Cloud 来解决这个问题,无论如何,我没有设法创建对是否已被helm_release销毁的依赖关系。

kubernetes terraform kubernetes-helm terraform-cloud terraform-provider-helm

2
推荐指数
1
解决办法
1433
查看次数