Fail platform readiness checks faster

This commit is contained in:
juvenal.diaz 2026-09-26 10:57:13 -06:00
parent ed86adaede
commit 4e0e41d2ff
1 changed files with 8 additions and 7 deletions

View File

@ -530,7 +530,7 @@ resource "helm_release" "metrics_server" {
version = var.metrics_server.version version = var.metrics_server.version
namespace = var.metrics_server.namespace namespace = var.metrics_server.namespace
create_namespace = false create_namespace = false
timeout = 600 timeout = 300
wait = true wait = true
values = [ values = [
@ -569,12 +569,12 @@ resource "null_resource" "metrics_server_ready" {
command = <<EOT command = <<EOT
set -euo pipefail set -euo pipefail
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" wait --for=condition=Available --timeout=180s apiservice/v1beta1.metrics.k8s.io kubectl --kubeconfig "${self.triggers.kubeconfig_path}" wait --for=condition=Available --timeout=90s apiservice/v1beta1.metrics.k8s.io
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" rollout status deployment/metrics-server --timeout=300s kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" rollout status deployment/metrics-server --timeout=180s
elapsed=0 elapsed=0
until kubectl --kubeconfig "${self.triggers.kubeconfig_path}" top nodes >/dev/null 2>&1; do until kubectl --kubeconfig "${self.triggers.kubeconfig_path}" top nodes >/dev/null 2>&1; do
if [ "$elapsed" -ge 180 ]; then if [ "$elapsed" -ge 90 ]; then
echo "Timed out waiting for metrics-server to serve node metrics." >&2 echo "Timed out waiting for metrics-server to serve node metrics." >&2
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" get apiservice v1beta1.metrics.k8s.io -o yaml || true kubectl --kubeconfig "${self.triggers.kubeconfig_path}" get apiservice v1beta1.metrics.k8s.io -o yaml || true
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" get pods -l app.kubernetes.io/name=metrics-server -o wide || true kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n "${self.triggers.namespace}" get pods -l app.kubernetes.io/name=metrics-server -o wide || true
@ -1238,7 +1238,7 @@ resource "null_resource" "argocd_ready" {
version = var.argocd.version version = var.argocd.version
node_selector = jsonencode(local.argocd_node_selector) node_selector = jsonencode(local.argocd_node_selector)
controller_resource_profile = "10m|1|2Gi" controller_resource_profile = "10m|1|2Gi"
readiness_check = "8" readiness_check = "9"
} }
provisioner "local-exec" { provisioner "local-exec" {
@ -1280,7 +1280,7 @@ wait_for_argocd_component() {
fi fi
echo "Waiting for Argo CD $target rollout..." echo "Waiting for Argo CD $target rollout..."
if ! kubectl --kubeconfig "$kubeconfig" -n "$namespace" rollout status "$target" --timeout=600s; then if ! kubectl --kubeconfig "$kubeconfig" -n "$namespace" rollout status "$target" --timeout=180s; then
echo "Timed out waiting for Argo CD $target rollout." >&2 echo "Timed out waiting for Argo CD $target rollout." >&2
dump_argocd_readiness_debug "$target" "$selector" dump_argocd_readiness_debug "$target" "$selector"
exit 1 exit 1
@ -2053,6 +2053,7 @@ resource "null_resource" "prometheus_stack_readiness" {
kubeconfig_path = var.kubeconfig_path kubeconfig_path = var.kubeconfig_path
namespace = var.observability.namespace namespace = var.observability.namespace
release_version = var.observability.prometheus.version release_version = var.observability.prometheus.version
readiness_check = "2"
} }
provisioner "local-exec" { provisioner "local-exec" {
@ -2063,7 +2064,7 @@ set -euo pipefail
kubeconfig="${self.triggers.kubeconfig_path}" kubeconfig="${self.triggers.kubeconfig_path}"
namespace="${self.triggers.namespace}" namespace="${self.triggers.namespace}"
selector="app.kubernetes.io/instance=prometheus-stack" selector="app.kubernetes.io/instance=prometheus-stack"
timeout_seconds=600 timeout_seconds=180
elapsed=0 elapsed=0
dump_prometheus_debug() { dump_prometheus_debug() {