ArgoCD с Terraform для удаления всех приложений при удалении пространства имен argocd

#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. Не могли бы вы поделиться примером того, как это сделать?