我正在通过 Terraform 定义使用其舵图安装 Argo CD,如下所示。设置很简单,我创建一个单独的命名空间,以便可以在
terraform destroy
上删除它,然后安装图表。
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"
namespace = kubernetes_namespace.ns_argocd.metadata.0.name
create_namespace = false
version = "5.13.1"
depends_on = [kubernetes_namespace.ns_argocd]
}
由于我仍在尝试设置,因此我必须销毁并重新创建几次,每次点击
terraform destroy
都会超时,因为 Pod 和命名空间停留在 terminating
状态(见下文)。我当前的修复方法是通过 kubectl delete [pod] -n argocd --force
手动强制删除每个 pod 和命名空间。
我是否遗漏了任何东西来传递到值文件来防止这种行为?
NAME STATUS AGE
argocd Terminating 3h58m
default Active 4h4m
kube-node-lease Active 4h4m
kube-public Active 4h4m
kube-system Active 4h4m
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Terminating 0 3h55m
argocd-applicationset-controller-7bb6d6d68c-p52j7 1/1 Terminating 0 3h55m
argocd-dex-server-6bc5f5689c-ps6wk 1/1 Terminating 0 3h55m
argocd-notifications-controller-57bd8dbc87-msdnw 1/1 Terminating 0 3h55m
argocd-redis-77df65946d-fhb46 1/1 Terminating 0 3h55m
argocd-repo-server-6984b7475d-b2625 1/1 Terminating 0 3h55m
argocd-server-548dffcdcc-nbrhc 1/1 Terminating 0 3h55m
查看此链接。它强调了 Terraform 留下的孤立 CRD 的问题。我们还需要将终结器设置为 []。
https://github.com/aws-ia/terraform-aws-eks-blueprints/issues/865
以下是当您遇到 argocd 命名空间终止问题时有效的命令:
kubectl patch crd/applications.argoproj.io-p'{"metadata":{"finalizers":[]}}'--type=merge