1- name : CI
1+ name : Vertica CI
22
33on : [push, pull_request]
44
1818 CLIENT_SECRET : P9f8350QQIUhFfK1GF5sMhq4Dm3P6Sbs
1919
2020 steps :
21+ # ---------------------------
22+ # Checkout and setup
23+ # ---------------------------
2124 - name : Checkout repository
2225 uses : actions/checkout@v4
2326
2629 with :
2730 python-version : ${{ matrix.python-version }}
2831
32+ # ---------------------------
33+ # Kubernetes (KinD) + Helm setup
34+ # ---------------------------
2935 - name : Set up Kubernetes (KinD)
30363137 with :
@@ -37,12 +43,16 @@ jobs:
3743 with :
3844 version : " 3.11.3"
3945
40- - name : Add Helm repos
46+ - name : Add Helm repositories
4147 run : |
4248 helm repo add vertica-charts https://vertica.github.io/charts || true
4349 helm repo add bitnami https://charts.bitnami.com/bitnami || true
4450 helm repo update
45- - name : Install MinIO (namespace minio)
51+
52+ # ---------------------------
53+ # MinIO Setup
54+ # ---------------------------
55+ - name : Install MinIO
4656 run : |
4757 kubectl create ns minio || true
4858 cat <<'EOF' > minio.yaml
95105 kubectl -n minio rollout status deployment/minio --timeout=2m || true
96106 kubectl get pods -n minio -o wide || true
97107 kubectl get svc -n minio || true
108+
98109 - name : Ensure MinIO bucket exists
99110 run : |
100111 kubectl run mc-client --rm -i --restart=Never \
@@ -105,6 +116,7 @@ jobs:
105116 mc mb --ignore-existing localminio/vertica-fleeting && \
106117 mc ls localminio
107118 "
119+
108120 - name : Create MinIO Secret
109121 run : |
110122 kubectl create ns my-verticadb-operator || true
@@ -114,6 +126,10 @@ jobs:
114126 --from-literal=accesskey="minioadmin" \
115127 --from-literal=secretkey="minioadmin"
116128 kubectl get secret communal-creds -n my-verticadb-operator -o yaml || true
129+
130+ # ---------------------------
131+ # Vertica Operator + DB Deployment
132+ # ---------------------------
117133 - name : Install Vertica Operator
118134 run : |
119135 cat <<'EOF' > operator-values.yaml
@@ -128,6 +144,7 @@ jobs:
128144 helm upgrade --install vdb-op vertica-charts/verticadb-operator \
129145 -n my-verticadb-operator -f operator-values.yaml --wait --timeout 10m
130146 kubectl -n my-verticadb-operator get pods -o wide || true
147+
131148 - name : Deploy VerticaDB
132149 run : |
133150 cat <<'EOF' | kubectl apply -f -
@@ -154,6 +171,7 @@ jobs:
154171 EOF
155172 kubectl annotate verticadb verticadb-sample -n my-verticadb-operator \
156173 vertica.com/ci-reconcile="$(date -u +%s)" --overwrite || true
174+
157175 - name : Wait for Vertica readiness
158176 run : |
159177 NS=my-verticadb-operator
@@ -163,6 +181,10 @@ jobs:
163181 kubectl get pod ${POD} -n ${NS} && break || sleep 10
164182 done
165183 kubectl wait --for=condition=Ready pod/${POD} -n ${NS} --timeout=5m || true
184+
185+ # ---------------------------
186+ # Keycloak + OAuth setup
187+ # ---------------------------
166188 - name : Deploy Keycloak
167189 run : |
168190 kubectl create ns keycloak || true
@@ -213,10 +235,12 @@ jobs:
213235 - port: 8080
214236 targetPort: 8080
215237 EOF
238+
216239 - name : Wait for Keycloak readiness
217240 run : |
218241 kubectl -n keycloak rollout status deploy/keycloak --timeout=2m
219242 kubectl -n keycloak get pods -o wide
243+
220244 - name : Configure Keycloak realm, client, and user
221245 run : |
222246 kubectl -n keycloak exec deploy/keycloak -- \
@@ -237,6 +261,7 @@ jobs:
237261 kubectl -n keycloak exec deploy/keycloak -- \
238262 /opt/keycloak/bin/kcadm.sh set-password -r test \
239263 --username oauth_user --new-password password
264+
240265 - name : Configure Vertica Authentication
241266 run : |
242267 NS=my-verticadb-operator
@@ -256,7 +281,16 @@ jobs:
256281 GRANT AUTHENTICATION v_dbadmin_hash TO dbadmin;
257282 \"
258283 "
259- - name : Run Python tests in-cluster (robust + execution)
284+
285+ # ---------------------------
286+ # Testing section
287+ # ---------------------------
288+ - name : Check Vertica load balance policy
289+ run : |
290+ kubectl -n my-verticadb-operator exec verticadb-sample-defaultsubcluster-0 -c server -- \
291+ /opt/vertica/bin/vsql -U dbadmin -c "SELECT get_load_balance_policy();"
292+
293+ - name : Run Python tests in-cluster
260294 run : |
261295 set -euo pipefail
262296 NS=my-verticadb-operator
@@ -351,10 +385,14 @@ jobs:
351385 "
352386 echo "🧹 Cleaning up test pod..."
353387 kubectl -n ${NS} delete pod ${POD} --ignore-not-found || true
388+
389+ # ---------------------------
390+ # Cleanup
391+ # ---------------------------
354392 - name : Uninstall MinIO
355393 if : always()
356394 run : |
357395 kubectl delete pod minio -n minio --ignore-not-found || true
358396 kubectl delete svc minio -n minio --ignore-not-found || true
359397 kubectl delete ns minio || true
360- echo "MinIO cleanup complete"
398+ echo "✅ MinIO cleanup complete"
0 commit comments