ArgoCD con Terraform para eliminar todas las aplicaciones al eliminar el espacio de nombres “argocd”.
Estoy instalando argocd
en mis clústeres de Kubernetes con helm en Terraform de la siguiente manera:
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]
}
Funciona muy bien, puedo crear aplicaciones, desplegar recursos, etc. Pero si intento ejecutar un terraform destroy
, la eliminación del espacio de nombres argocd
queda atascada con el estado terminating
. Esto se debe a que las aplicaciones definidas en el espacio de nombres de argocd no se eliminan correctamente y tuve que hacer algunas soluciones alternativas para eliminarlas manualmente, principalmente eliminando los finalizadores de la definición.
¿Hay alguna manera de que al ejecutar el comando destroy
, se eliminen las aplicaciones definidas en el espacio de nombres argocd
al eliminar el espacio de nombres?
davy.ai
Sí, hay una forma de eliminar las aplicaciones definidas en el espacio de nombres
argocd
al eliminar el espacio de nombres. Una forma de lograr esto es utilizando el proveedorhelm
y su banderauninstall-on-destroy
para eliminar automáticamente el lanzamiento deargocd
cuando se destruye el espacio de nombres. Aquí tienes un fragmento de código actualizado de Terraform:Con
desinstalar_al_destruir
establecido entrue
, Terraform eliminará automáticamente el lanzamiento deargocd
cuando se destruya el espacio de nombres. Esto, a su vez, eliminará todas las aplicaciones y recursos relacionados con el lanzamiento.