openova/.github/workflows
e3mrah 4a7eb42d26
feat(ci): Phase-8a preflight E — Keycloak realm-import + kubectl OIDC client (closes #462) (#468)
Surfaces Risk R6 (docs/omantel-handover-wbs.md §9a — Keycloak
realm-import config-CLI bootstrap timing untested). bp-keycloak 1.2.0
ships a sovereign realm + a public kubectl OIDC client via the
upstream bitnami/keycloak chart's keycloakConfigCli post-install Helm
hook (issue #326); this workflow proves it actually wires up on a
clean cluster before we run it on a real Sovereign.

Workflow installs bp-keycloak 1.2.0 on a kind cluster (helm/kind-action
v1, kindest/node:v1.30.6 — same versions as test-bootstrap-kit), waits
for the keycloak StatefulSet to roll out, polls for the
keycloakConfigCli post-install Job by label
(app.kubernetes.io/component=keycloak-config-cli), waits for it to
Complete, port-forwards svc/keycloak and asserts:

  1. /realms/sovereign returns 200 (realm exists in Keycloak's DB).
  2. The kubectl OIDC client is provisioned with publicClient=true,
     redirectUris contains http://localhost:8000 (kubectl-oidc-login
     default), and the groups client scope is wired with the
     oidc-group-membership-mapper (the per-Sovereign k3s api-server's
     --oidc-groups-claim flag depends on this).

Acceptance per ticket: if the post-install Job fails, the workflow
summary captures Job logs + StatefulSet logs + cluster state via
GITHUB_STEP_SUMMARY so a failed run is debuggable without re-running.

Triggers are event-driven only per CLAUDE.md "every workflow MUST be
event-driven, NEVER scheduled" rule — push on the workflow file itself
plus workflow_dispatch for ad-hoc re-runs.

Closes #462.

Co-authored-by: hatiyildiz <hatiyildiz@noreply.github.com>
2026-05-01 20:01:30 +04:00
..
admin-build.yaml feat(consolidation): Phase 1 — move Catalyst-Zero apps + CI + manifests into public monorepo 2026-04-28 12:08:09 +02:00
axon-build.yaml fix: adjust CI smoke test for pool warmup blocking 2026-03-04 09:24:44 +01:00
blueprint-release.yaml fix(ci): bump helm 3.16.3 → 3.18.4 in blueprint-release — fixes seaweedfs smoke-render (#336) 2026-04-30 23:27:45 +04:00
build-cert-manager-dynadot-webhook.yaml feat(dns): cert-manager-dynadot-webhook for DNS-01 wildcard TLS (closes #159) (#291) 2026-04-30 19:37:47 +04:00
catalyst-build.yaml feat(wipe): deployment-level Cancel & Wipe — backend endpoint + Cloud-Architecture + wizard banner entry-points (closes #318) (#346) 2026-05-01 09:24:40 +04:00
check-vendor-coupling.yaml ci(guardrail): vendor-coupling check - fail CI if chart values use vendor name (closes #428) (#431) 2026-05-01 17:49:49 +04:00
console-build.yaml feat(consolidation): Phase 1 — move Catalyst-Zero apps + CI + manifests into public monorepo 2026-04-28 12:08:09 +02:00
cosmetic-guards.yaml fix(platform): sync blueprint.yaml versions with Chart.yaml (#199) 2026-04-29 22:07:55 +04:00
dod.yaml feat(dod): #149-#157 — Group M DoD scaffolding (DEMO-RUNBOOK + dod_test.go + dod.yaml) 2026-04-28 19:34:46 +02:00
marketplace-api-build.yaml feat(consolidation): Phase 1 — move Catalyst-Zero apps + CI + manifests into public monorepo 2026-04-28 12:08:09 +02:00
marketplace-build.yaml feat(consolidation): Phase 1 — move Catalyst-Zero apps + CI + manifests into public monorepo 2026-04-28 12:08:09 +02:00
omantel-e2e-handover.yaml test(e2e): omantel handover Playwright scaffold for Phase 8 (closes #429) (#432) 2026-05-01 17:52:18 +04:00
playwright-smoke.yaml fix(ci): playwright-smoke port 4321→5173 for Vite 8 default (#335) (#418) 2026-05-01 17:04:11 +04:00
pool-domain-manager-build.yaml feat(pdm): per-Sovereign PowerDNS zones for #168 2026-04-29 08:36:45 +02:00
preflight-bootstrap-kit.yaml feat(ci): Phase-8a preflight A — bootstrap-kit reconcile dry-run on kind (closes #459) (#467) 2026-05-01 20:01:26 +04:00
preflight-cilium-httproute.yaml feat(ci): Phase-8a preflight C — Cilium Gateway HTTPRoute admission on kind (closes #461) (#465) 2026-05-01 20:01:01 +04:00
preflight-crossplane-hcloud.yaml fix(ci): GHCR auth for bp-crossplane OCI pull in preflight (#460) (#466) 2026-05-01 20:01:15 +04:00
preflight-keycloak-realm.yaml feat(ci): Phase-8a preflight E — Keycloak realm-import + kubectl OIDC client (closes #462) (#468) 2026-05-01 20:01:30 +04:00
services-build.yaml feat(consolidation): move 8 SME backend services + shared module to public repo 2026-04-28 12:30:32 +02:00
test-billing-integration.yaml test: voucher issuance integration test — real Postgres (#147) 2026-04-28 13:53:43 +02:00
test-bootstrap-api.yaml test: dynadot multi-domain DNS write integration test (#146) 2026-04-28 13:46:53 +02:00
test-bootstrap-kit.yaml feat(scripts): bootstrap-kit dependency-graph audit script (W2.K0) (#259) 2026-04-30 17:16:16 +04:00
test-hetzner-e2e.yaml test: Hetzner Sovereign end-to-end provisioning test (#141) 2026-04-28 14:00:29 +02:00
test-strategy-flip.yaml fix(catalyst-chart): annotate api-deployment for Flux strategy-flip recovery 2026-04-29 18:04:07 +02:00