Skip to content

Commit 2595a3b

Browse files
committed
Set up Keycloak in the OpenShift test configuration
* Install cert-manager and Keycloak via Helm in 0_openshift-setup, replacing the manual oc apply step for cert-manager * Expose Keycloak through an OpenShift Route with edge TLS termination at keycloak.apps-crc.testing, serving at root / * Configure the TheiaCloud realm, test users (foo/bar), and admin group membership via the existing modules/keycloak terraform module * Add a null_resource wait loop so the realm setup runs only after Keycloak is fully reachable * Enable Keycloak authentication in 4-01_openshift_monitor via helm set overrides and switch service.protocol to https * Add keycloak values (realm, clientId, clientSecret, cookieSecret) to valuesOpenShiftMonitor.yaml as explicit defaults * Update openshift.md and test.md for the new dependency setup, login flow, and hostname table
1 parent c92ea4b commit 2595a3b

18 files changed

Lines changed: 529 additions & 175 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## [1.3.0] - unreleased
4+
5+
- [java/operator] Add OpenShift support with Route-based session routing [#486](https://github.com/eclipse-theia/theia-cloud/pull/486)
6+
7+
### Breaking Changes in 1.3.0
8+
9+
- [java/operator] Ingress and session URL logic extracted from `LazySessionHandler` and `EagerSessionHandler` into the new `SessionRoutingStrategy` interface. Custom operator extensions that override or extend these handlers may need to inject `SessionRoutingStrategy` instead of directly using `IngressPathProvider` and `TheiaCloudIngressUtil`.
10+
- [java/operator] `TheiaCloudDeploymentUtil.getSessionURL()` methods (which took `IngressPathProvider`) have been removed. Use `SessionRoutingStrategy.getSessionURL()` instead. A new `TheiaCloudDeploymentUtil.extractHost()` utility method is provided.
11+
312
## [1.2.0] - 2026-04-09
413

514
- [java/operator] Fix ingress rules not being fully removed on session deletion [#456](https://github.com/eclipse-theia/theia-cloud/pull/456)

terraform/test-configurations/0_openshift-setup/.terraform.lock.hcl

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

terraform/test-configurations/0_openshift-setup/main.tf

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

terraform/test-configurations/0_openshift-setup/versions.tf

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

terraform/test-configurations/4-01_openshift_monitor/outputs.tf

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

terraform/test-configurations/4_openshift-setup/.terraform.lock.hcl

Lines changed: 110 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: route.openshift.io/v1
2+
kind: Route
3+
metadata:
4+
name: keycloak
5+
namespace: keycloak
6+
spec:
7+
host: ${hostname}
8+
to:
9+
kind: Service
10+
name: keycloak
11+
weight: 100
12+
port:
13+
targetPort: http
14+
wildcardPolicy: None
15+
tls:
16+
termination: edge
17+
insecureEdgeTerminationPolicy: Redirect
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
fullnameOverride: "keycloak"
2+
httpRelativePath: "/"
3+
4+
auth:
5+
adminUser: admin
6+
7+
image:
8+
# Configure using repository bitnamilegacy because bitnami has removed the bitnami repository in favor of a paid service
9+
repository: bitnamilegacy/keycloak
10+
11+
postgresql:
12+
enabled: true
13+
# Configure using repository bitnamilegacy because bitnami has removed the bitnami repository in favor of a paid service
14+
image:
15+
repository: bitnamilegacy/postgresql
16+
volumePermissions:
17+
image:
18+
repository: bitnamilegacy/os-shell
19+
enabled: false
20+
metrics:
21+
image:
22+
repository: bitnamilegacy/bitnami-exporter
23+
primary:
24+
podSecurityContext:
25+
enabled: false
26+
containerSecurityContext:
27+
enabled: false
28+
29+
# Keycloak is exposed via an OpenShift Route, not a Kubernetes Ingress
30+
ingress:
31+
enabled: false
32+
33+
service:
34+
type: ClusterIP
35+
36+
# Keycloak sits behind an OpenShift Route with edge TLS termination,
37+
# so it receives plain HTTP internally
38+
proxy: edge
39+
40+
# OpenShift assigns UIDs from a namespace-specific range via its Security Context
41+
# Constraints (SCC). The Bitnami chart defaults (fsGroup: 1001, runAsUser: 1001)
42+
# are rejected by the restricted SCC. Disabling them lets OpenShift take over.
43+
podSecurityContext:
44+
enabled: false
45+
containerSecurityContext:
46+
enabled: false

0 commit comments

Comments
 (0)