#kubernetes #terraform #kubernetes-helm #argocd
#кубернетес #терраформирование #кубернетес-рулевой #argocd
Вопрос:
Я устанавливаю argocd
в свои кластеры Kubernetes с помощью helm в терраформе вот так:
resource "kubernetes_namespace" "ns_argocd" { metadata { annotations = { name = "argocd" } name = "argocd" } } resource "helm_release" "argocd" { name = "argocd" repository = "https://argoproj.github.io/argo-helm" chart = "argo-cd" version = "3.27.1" create_namespace = false namespace = kubernetes_namespace.ns_argocd.0.metadata.0.name depends_on = [kubernetes_namespace.ns_argocd] }
Это работает очень хорошо, я могу создавать приложения, развертывать ресурсы и так далее. Но если я попытаюсь запустить a terraform destroy
, удаление пространства argocd
имен застрянет в статусе terminating
. Это связано с тем, что приложения, определенные в пространстве имен argocd, неправильно удалены, и мне пришлось выполнить некоторые обходные пути, чтобы удалить его вручную, в основном удалив завершители из определения.
Есть ли способ, которым выполнение destroy
команды приведет к удалению приложений, определенных в argocd
пространстве имен, при удалении пространства имен?
Комментарии:
1. Я вижу , что вы уже используете
depends_on
, я видел несколько упрямых случаев, когда я проверял вручную настройку этих ресурсов, и никакие удачные ресурсы не будут уничтожены, как и планировалось … мой единственный вариант состоял в том, чтобы создатьnull_resource
то, что сделает удаление из тех частей, которые нужно идти2. На самом деле это проблема с удалением релиза Argo Helm chart, и, вероятно, к ней следует подходить с этого направления, а не с конфигурацией Terraform.
3. Не могли бы вы поделиться примером того, как это сделать?