Skip to content

Commit 2588474

Browse files
aneeshkpclaude
andauthored
fix: add cert-manager webhook readiness check and CA cleanup (#12)
Add webhook readiness check to make status using dry-run server-side validation. Add stale webhook CA secret cleanup to undeploy-kserve to prevent x509 errors on redeploy cycles. Signed-off-by: Aneesh Puttur <aneeshputtur@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4b7e1c2 commit 2588474

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

Makefile

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,19 @@ deploy-cert-manager-pki: check-kubeconfig deploy-opendatahub-prerequisites
6868
-kubectl delete secret cert-manager-webhook-ca -n cert-manager --ignore-not-found 2>/dev/null || true
6969
kubectl rollout restart deployment/cert-manager-webhook -n cert-manager
7070
kubectl rollout status deployment/cert-manager-webhook -n cert-manager --timeout=120s
71-
@sleep 5
71+
@echo "Waiting for webhook CA bundle to propagate..."
72+
@for i in 1 2 3 4 5 6 7 8 9 10 11 12; do \
73+
if kubectl apply --dry-run=server -f ./charts/kserve/pki-prereq.yaml >/dev/null 2>&1; then \
74+
echo " Webhook ready"; \
75+
break; \
76+
fi; \
77+
if [ $$i -eq 12 ]; then \
78+
echo "ERROR: cert-manager webhook not ready after 2 minutes"; \
79+
exit 1; \
80+
fi; \
81+
echo " Webhook not ready yet, retrying in 10s... ($$i/12)"; \
82+
sleep 10; \
83+
done
7284
kubectl apply -f ./charts/kserve/pki-prereq.yaml
7385
kubectl wait --for=condition=Ready clusterissuer/opendatahub-ca-issuer --timeout=120s
7486

@@ -117,6 +129,18 @@ status: check-kubeconfig
117129
@echo "kserve config:"
118130
@kubectl get llminferenceserviceconfig -n $(KSERVE_NAMESPACE) 2>/dev/null || echo " Not deployed"
119131
@echo ""
132+
@echo "=== Readiness Checks ==="
133+
@echo -n "cert-manager webhook: "
134+
@if kubectl get deployment cert-manager-webhook -n cert-manager >/dev/null 2>&1; then \
135+
if echo '{"apiVersion":"cert-manager.io/v1","kind":"ClusterIssuer","metadata":{"name":"webhook-readiness-test"},"spec":{"selfSigned":{}}}' | kubectl create -f - --dry-run=server -o yaml 2>/dev/null | grep -q 'webhook-readiness-test'; then \
136+
echo "Ready"; \
137+
else \
138+
echo "NOT READY (webhook CA may be stale — run: kubectl delete secret cert-manager-webhook-ca -n cert-manager && kubectl rollout restart deployment/cert-manager-webhook -n cert-manager)"; \
139+
fi; \
140+
else \
141+
echo "Not deployed"; \
142+
fi
143+
@echo ""
120144
@echo "=== API Versions ==="
121145
@echo -n "InferencePool API: "
122146
@if kubectl get crd inferencepools.inference.networking.k8s.io >/dev/null 2>&1; then \

0 commit comments

Comments
 (0)