diff --git a/bootstrap/platform/main.tf b/bootstrap/platform/main.tf index 1c49611..1a6a350 100644 --- a/bootstrap/platform/main.tf +++ b/bootstrap/platform/main.tf @@ -1091,8 +1091,8 @@ resource "helm_release" "argocd" { version = var.argocd.version namespace = var.argocd.namespace create_namespace = true - timeout = 600 - wait = true + timeout = 1200 + wait = false values = [ yamlencode({ @@ -1221,6 +1221,7 @@ resource "null_resource" "argocd_ready" { namespace = var.argocd.namespace version = var.argocd.version node_selector = jsonencode(local.argocd_node_selector) + readiness_check = "2" } provisioner "local-exec" { @@ -1228,10 +1229,44 @@ resource "null_resource" "argocd_ready" { command = </dev/null 2>&1; then + echo "Argo CD $target is not present yet; skipping rollout wait." + return 0 + fi + if ! kubectl --kubeconfig "$kubeconfig" -n "$namespace" rollout status "$target" --timeout=600s; then + echo "Timed out waiting for Argo CD $target." >&2 + dump_argocd_readiness_debug + exit 1 + fi +} + kubectl --kubeconfig "${self.triggers.kubeconfig_path}" wait --for=condition=Established --timeout=180s crd/applications.argoproj.io -kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" rollout status deployment/argocd-repo-server --timeout=300s -kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" rollout status deployment/argocd-server --timeout=300s -kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" rollout status statefulset/argocd-application-controller --timeout=300s +rollout_if_present deployment/argocd-applicationset-controller +rollout_if_present statefulset/argocd-application-controller +rollout_if_present deployment/argocd-dex-server +rollout_if_present deployment/argocd-notifications-controller +rollout_if_present deployment/argocd-redis +rollout_if_present deployment/argocd-repo-server +rollout_if_present deployment/argocd-server EOT } }