Compare commits

...

2 Commits

Author SHA1 Message Date
juvenal.diaz bd6f13bc92 Fail Calico readiness checks faster
Homelab Main / validate (push) Waiting to run Details
Homelab Main / deploy (push) Blocked by required conditions Details
2026-09-26 10:58:29 -06:00
juvenal.diaz 4e0e41d2ff Fail platform readiness checks faster 2026-09-26 10:57:13 -06:00
1 changed files with 16 additions and 15 deletions

View File

@ -449,7 +449,7 @@ resource "null_resource" "calico_ready" {
triggers = {
kubeconfig_path = var.kubeconfig_path
calico_version = var.calico.version
calico_ready_version = "3"
calico_ready_version = "4"
pod_network_cidr = var.pod_network_cidr
calico_node_address_autodetection_cidrs = join(",", var.calico_node_address_autodetection_cidrs)
calico_operator_node_name = var.calico_operator_node_name
@ -507,15 +507,15 @@ if kubectl --kubeconfig "${self.triggers.kubeconfig_path}" get node "${self.trig
exit 1
fi
wait_for_resource deployment tigera-operator tigera-operator 300
wait_for_resource deployment tigera-operator tigera-operator 180
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n tigera-operator patch deployment tigera-operator --type merge -p '{"spec":{"template":{"spec":{"tolerations":[{"operator":"Exists","effect":"NoSchedule"},{"operator":"Exists","effect":"NoExecute"}]}}}}'
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n tigera-operator rollout status deployment/tigera-operator --timeout=300s
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n tigera-operator rollout status deployment/tigera-operator --timeout=180s
wait_for_resource daemonset calico-system calico-node 600
wait_for_resource deployment calico-system calico-kube-controllers 600
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n calico-system rollout status daemonset/calico-node --timeout=600s
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n calico-system rollout status deployment/calico-kube-controllers --timeout=600s
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" wait --for=condition=Ready nodes --all --timeout=600s
wait_for_resource daemonset calico-system calico-node 300
wait_for_resource deployment calico-system calico-kube-controllers 300
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n calico-system rollout status daemonset/calico-node --timeout=300s
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" -n calico-system rollout status deployment/calico-kube-controllers --timeout=300s
kubectl --kubeconfig "${self.triggers.kubeconfig_path}" wait --for=condition=Ready nodes --all --timeout=300s
EOT
}
}
@ -530,7 +530,7 @@ resource "helm_release" "metrics_server" {
version = var.metrics_server.version
namespace = var.metrics_server.namespace
create_namespace = false
timeout = 600
timeout = 300
wait = true
values = [
@ -569,12 +569,12 @@ resource "null_resource" "metrics_server_ready" {
command = <<EOT
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}" -n "${self.triggers.namespace}" rollout status deployment/metrics-server --timeout=300s
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=180s
elapsed=0
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
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
@ -1238,7 +1238,7 @@ resource "null_resource" "argocd_ready" {
version = var.argocd.version
node_selector = jsonencode(local.argocd_node_selector)
controller_resource_profile = "10m|1|2Gi"
readiness_check = "8"
readiness_check = "9"
}
provisioner "local-exec" {
@ -1280,7 +1280,7 @@ wait_for_argocd_component() {
fi
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
dump_argocd_readiness_debug "$target" "$selector"
exit 1
@ -2053,6 +2053,7 @@ resource "null_resource" "prometheus_stack_readiness" {
kubeconfig_path = var.kubeconfig_path
namespace = var.observability.namespace
release_version = var.observability.prometheus.version
readiness_check = "2"
}
provisioner "local-exec" {
@ -2063,7 +2064,7 @@ set -euo pipefail
kubeconfig="${self.triggers.kubeconfig_path}"
namespace="${self.triggers.namespace}"
selector="app.kubernetes.io/instance=prometheus-stack"
timeout_seconds=600
timeout_seconds=180
elapsed=0
dump_prometheus_debug() {