Skip to content

Commit db1a0d4

Browse files
fix(otel): Add Karpenter controller readiness wait before NodePool apply
1 parent c85a1e0 commit db1a0d4

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

terraform/eks/daemon/otel/main.tf

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,10 @@ resource "null_resource" "karpenter_nodepool" {
243243
command = <<-EOT
244244
echo "Waiting for Karpenter controller to be ready..."
245245
kubectl wait --for=condition=available deployment/karpenter -n kube-system --timeout=300s
246-
sleep 10
246+
echo "Restarting Karpenter to ensure Pod Identity credentials are loaded..."
247+
kubectl rollout restart deployment/karpenter -n kube-system
248+
kubectl rollout status deployment/karpenter -n kube-system --timeout=120s
249+
sleep 30
247250
cat <<'EOF' | kubectl apply -f -
248251
apiVersion: karpenter.sh/v1
249252
kind: NodePool
@@ -300,8 +303,6 @@ resource "null_resource" "karpenter_nodepool" {
300303
}
301304

302305
# --- Karpenter scale-trigger workload: forces provisioning of a new node ---
303-
# This pod requests enough resources that it cannot fit on the existing EKS
304-
# managed node group, causing Karpenter to provision a new node.
305306

306307
resource "null_resource" "karpenter_scale_trigger" {
307308
depends_on = [null_resource.karpenter_nodepool]
@@ -331,11 +332,12 @@ resource "null_resource" "karpenter_scale_trigger" {
331332
cpu: "1500m"
332333
memory: "3Gi"
333334
tolerations:
334-
- key: "karpenter.sh/disruption"
335+
- key: "karpenter-test"
335336
operator: "Exists"
337+
effect: "NoSchedule"
336338
EOF
337339
echo "Waiting for Karpenter to provision node..."
338-
kubectl wait --for=condition=available deployment/karpenter-scale-trigger --timeout=600s || echo "Scale trigger timed out — continuing anyway"
340+
kubectl wait --for=condition=available deployment/karpenter-scale-trigger --timeout=600s
339341
EOT
340342
}
341343
}
@@ -584,7 +586,7 @@ resource "null_resource" "validator" {
584586
echo "Running OTEL standard cluster integration tests"
585587
cd ../../../..
586588
587-
echo "Waiting 4 minutes for metrics to propagate (includes Karpenter provisioning metrics)..."
589+
echo "Waiting 4 minutes for metrics to propagate..."
588590
sleep 240
589591
590592
go test -tags integration -timeout 1h -v ${var.test_dir} \

0 commit comments

Comments
 (0)