Skip to content

Commit b2e53a4

Browse files
committed
foo
1 parent 861860c commit b2e53a4

File tree

6 files changed

+220
-134
lines changed

6 files changed

+220
-134
lines changed

charts/eoapi/templates/knative-crd-wait-job.yaml

Lines changed: 0 additions & 81 deletions
This file was deleted.

charts/eoapi/templates/knative-eventing.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

charts/eoapi/templates/knative-namespaces.yaml

Lines changed: 0 additions & 23 deletions
This file was deleted.

charts/eoapi/templates/knative-serving.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
{{- if .Values.knative.enabled }}
2+
apiVersion: batch/v1
3+
kind: Job
4+
metadata:
5+
name: {{ .Release.Name }}-knative-setup
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "eoapi.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: knative-setup
10+
annotations:
11+
helm.sh/hook: "pre-install,pre-upgrade"
12+
helm.sh/hook-weight: "10"
13+
helm.sh/hook-delete-policy: "before-hook-creation,hook-succeeded"
14+
spec:
15+
template:
16+
metadata:
17+
name: {{ .Release.Name }}-knative-setup
18+
labels:
19+
{{- include "eoapi.labels" . | nindent 8 }}
20+
app.kubernetes.io/component: knative-setup
21+
spec:
22+
restartPolicy: Never
23+
serviceAccountName: default
24+
containers:
25+
- name: knative-setup
26+
image: bitnami/kubectl:latest
27+
imagePullPolicy: IfNotPresent
28+
command:
29+
- /bin/bash
30+
- -c
31+
- |
32+
set -e
33+
echo "=== Comprehensive Knative Setup ==="
34+
35+
# Step 1: Wait for Knative Operator deployment to exist and be ready
36+
echo "=== Step 1: Waiting for Knative Operator ==="
37+
timeout=600
38+
counter=0
39+
40+
while [ $counter -lt $timeout ]; do
41+
if kubectl get deployment knative-operator -n default >/dev/null 2>&1; then
42+
echo "✅ Knative Operator deployment found"
43+
break
44+
fi
45+
46+
echo "⏳ Waiting for Knative Operator deployment... ($counter/$timeout seconds)"
47+
sleep 10
48+
counter=$((counter + 10))
49+
done
50+
51+
if [ $counter -ge $timeout ]; then
52+
echo "❌ Timeout waiting for Knative Operator deployment"
53+
echo "Available deployments in default namespace:"
54+
kubectl get deployments -n default
55+
exit 1
56+
fi
57+
58+
# Wait for operator to be ready
59+
echo "Waiting for Knative Operator to be ready..."
60+
if kubectl rollout status deployment/knative-operator -n default --timeout=300s; then
61+
echo "✅ Knative Operator is ready"
62+
else
63+
echo "❌ Knative Operator failed to become ready"
64+
kubectl describe deployment knative-operator -n default
65+
kubectl get pods -n default -l app.kubernetes.io/name=knative-operator
66+
exit 1
67+
fi
68+
69+
# Step 2: Create Knative namespaces
70+
echo "=== Step 2: Creating Knative Namespaces ==="
71+
72+
kubectl apply -f - <<EOF
73+
apiVersion: v1
74+
kind: Namespace
75+
metadata:
76+
name: knative-serving
77+
labels:
78+
app.kubernetes.io/managed-by: eoapi-knative-setup
79+
---
80+
apiVersion: v1
81+
kind: Namespace
82+
metadata:
83+
name: knative-eventing
84+
labels:
85+
app.kubernetes.io/managed-by: eoapi-knative-setup
86+
EOF
87+
88+
echo "✅ Knative namespaces created"
89+
90+
# Step 3: Create Knative Custom Resources
91+
echo "=== Step 3: Creating Knative Custom Resources ==="
92+
93+
# Create KnativeServing CR
94+
kubectl apply -f - <<EOF
95+
apiVersion: operator.knative.dev/v1beta1
96+
kind: KnativeServing
97+
metadata:
98+
name: knative-serving
99+
namespace: knative-serving
100+
labels:
101+
app.kubernetes.io/managed-by: eoapi-knative-setup
102+
spec:
103+
version: {{ .Values.knative.version | quote }}
104+
EOF
105+
106+
# Create KnativeEventing CR
107+
kubectl apply -f - <<EOF
108+
apiVersion: operator.knative.dev/v1beta1
109+
kind: KnativeEventing
110+
metadata:
111+
name: knative-eventing
112+
namespace: knative-eventing
113+
labels:
114+
app.kubernetes.io/managed-by: eoapi-knative-setup
115+
spec:
116+
version: {{ .Values.knative.version | quote }}
117+
EOF
118+
119+
echo "✅ Knative Custom Resources created"
120+
121+
# Step 4: Wait for Knative components to be ready
122+
echo "=== Step 4: Waiting for Knative Components ==="
123+
124+
# Wait for KnativeServing to be ready
125+
echo "Waiting for KnativeServing to be ready..."
126+
timeout=600
127+
counter=0
128+
129+
while [ $counter -lt $timeout ]; do
130+
if kubectl get knativeserving knative-serving -n knative-serving -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}' 2>/dev/null | grep -q "True"; then
131+
echo "✅ KnativeServing is ready"
132+
break
133+
fi
134+
135+
echo "⏳ Waiting for KnativeServing... ($counter/$timeout seconds)"
136+
kubectl get knativeserving knative-serving -n knative-serving -o jsonpath='{.status.conditions[?(@.type=="Ready")]}' 2>/dev/null || echo "Status not yet available"
137+
sleep 15
138+
counter=$((counter + 15))
139+
done
140+
141+
if [ $counter -ge $timeout ]; then
142+
echo "❌ Timeout waiting for KnativeServing to be ready"
143+
kubectl describe knativeserving knative-serving -n knative-serving
144+
exit 1
145+
fi
146+
147+
# Wait for KnativeEventing to be ready
148+
echo "Waiting for KnativeEventing to be ready..."
149+
counter=0
150+
151+
while [ $counter -lt $timeout ]; do
152+
if kubectl get knativeeventing knative-eventing -n knative-eventing -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}' 2>/dev/null | grep -q "True"; then
153+
echo "✅ KnativeEventing is ready"
154+
break
155+
fi
156+
157+
echo "⏳ Waiting for KnativeEventing... ($counter/$timeout seconds)"
158+
kubectl get knativeeventing knative-eventing -n knative-eventing -o jsonpath='{.status.conditions[?(@.type=="Ready")]}' 2>/dev/null || echo "Status not yet available"
159+
sleep 15
160+
counter=$((counter + 15))
161+
done
162+
163+
if [ $counter -ge $timeout ]; then
164+
echo "❌ Timeout waiting for KnativeEventing to be ready"
165+
kubectl describe knativeeventing knative-eventing -n knative-eventing
166+
exit 1
167+
fi
168+
169+
# Step 5: Verify required CRDs are available
170+
echo "=== Step 5: Verifying Knative CRDs ==="
171+
172+
# List of required CRDs for eoapi-notifier
173+
REQUIRED_CRDS=(
174+
"services.serving.knative.dev"
175+
"configurations.serving.knative.dev"
176+
"routes.serving.knative.dev"
177+
"revisions.serving.knative.dev"
178+
"sinkbindings.sources.knative.dev"
179+
)
180+
181+
for crd in "${REQUIRED_CRDS[@]}"; do
182+
echo "Checking CRD: $crd"
183+
if kubectl get crd "$crd" >/dev/null 2>&1; then
184+
echo "✅ CRD available: $crd"
185+
else
186+
echo "❌ Required CRD missing: $crd"
187+
echo "Available Knative CRDs:"
188+
kubectl get crd | grep knative
189+
exit 1
190+
fi
191+
done
192+
193+
echo "✅ All required Knative CRDs are available"
194+
195+
# Step 6: Final verification
196+
echo "=== Step 6: Final Knative Status Check ==="
197+
echo "KnativeServing status:"
198+
kubectl get knativeserving knative-serving -n knative-serving -o wide
199+
200+
echo "KnativeEventing status:"
201+
kubectl get knativeeventing knative-eventing -n knative-eventing -o wide
202+
203+
echo "Knative pods:"
204+
kubectl get pods -n knative-serving
205+
kubectl get pods -n knative-eventing
206+
207+
echo "🎉 Knative setup completed successfully!"
208+
209+
resources:
210+
requests:
211+
cpu: 100m
212+
memory: 128Mi
213+
limits:
214+
cpu: 200m
215+
memory: 256Mi
216+
backoffLimit: 2
217+
activeDeadlineSeconds: 1500
218+
{{- end }}

charts/eoapi/test-local-values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ testing: true
55

66
knative:
77
enabled: true
8+
cloudEventsSink:
9+
enabled: true
810

911
ingress:
1012
enabled: true

0 commit comments

Comments
 (0)