Skip to content

ci: upgrade roundtrip Keycloak to 26.2 and run kcadm in-container (DSPX-3397) - #990

Draft
dmihalcik-virtru wants to merge 1 commit into
dspx-3397-3-access-errorsfrom
dspx-3397-4-ci-keycloak-26
Draft

ci: upgrade roundtrip Keycloak to 26.2 and run kcadm in-container (DSPX-3397)#990
dmihalcik-virtru wants to merge 1 commit into
dspx-3397-3-access-errorsfrom
dspx-3397-4-ci-keycloak-26

Conversation

@dmihalcik-virtru

@dmihalcik-virtru dmihalcik-virtru commented Aug 10, 2026

Copy link
Copy Markdown
Member

Stack 3/6, split out of #939. Base: #989.

What

Keycloak 24.0.5 predates DPoP support, so the roundtrip job cannot exercise DPoP-bound tokens at all. Upgrading to 26.2 is the prerequisite for the DPoP work in stack 5/6; it is separated here so the infrastructure change can be validated on its own.

Changes

kcadm.sh runs in the container now. Keycloak 26's kcadm needs Java 17; the ubuntu-22.04 runner defaults to Java 11 and fails with UnsupportedClassVersionError. config-demo-idp.sh shells into the keycloak container (which ships a matching JRE) through a kcadm.sh shell function. Passing -f makes compose resolve the project from the script's own directory, so the caller's working directory no longer matters.

This also deletes the release-zip download-and-unzip block — one less network dependency in CI, and the version can't drift from the running server.

Health check port. Management endpoints, including /health/live, moved to 9000 in Keycloak 25+.

Drops the keycloakdb postgres service. start-dev uses the embedded H2 database, so the external postgres was already unused. Removes a container from the job.

Adds admin-fine-grained-authz:v1 to KC_FEATURES, which 26.x requires as an explicit flag for the admin API calls this script makes.

Risk

This is CI-only — no lib/, cli/, or web-app/ code is touched. The signal is the roundtrip job itself passing.

How to test

The roundtrip workflow on this PR.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a88a619c-b483-4316-a519-30975dce5ec4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dmihalcik-virtru
dmihalcik-virtru force-pushed the dspx-3397-3-access-errors branch from 2f79465 to 823cce3 Compare August 10, 2026 17:47
@dmihalcik-virtru
dmihalcik-virtru force-pushed the dspx-3397-4-ci-keycloak-26 branch from 3ae0223 to 45582fe Compare August 10, 2026 17:47
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

X-Test Failure Report

opentdf-ctl
opentdf-sdk-lib

…PX-3397)

Keycloak 24.0.5 predates DPoP support, so the roundtrip job cannot exercise
DPoP-bound tokens at all. Upgrade to 26.2.

Two things fall out of the upgrade:

- kcadm.sh can no longer be downloaded and run on the host. Keycloak 26's
  kcadm needs Java 17; the ubuntu-22.04 runner defaults to Java 11 and fails
  with UnsupportedClassVersionError. config-demo-idp.sh now shells into the
  keycloak container, which ships a matching JRE, via a `kcadm.sh` shell
  function. Passing -f to compose makes the project resolve from the script's
  own directory, so the caller's working directory no longer matters. This
  also drops the release-zip download entirely -- one less network dependency
  in CI.
- The management endpoints (including /health/live) moved to port 9000 in
  Keycloak 25+. The healthcheck follows.

Also drops the keycloakdb postgres service: start-dev uses the embedded H2
database, so the external postgres was already unused, and removing it takes
a container out of the job. Adds admin-fine-grained-authz:v1, which 26.x
requires as an explicit feature flag for the admin API calls this script makes.

Signed-off-by: Dave Mihalcik <dmihalcik@virtru.com>
@dmihalcik-virtru
dmihalcik-virtru force-pushed the dspx-3397-3-access-errors branch from 823cce3 to e74922c Compare August 11, 2026 17:54
@dmihalcik-virtru
dmihalcik-virtru force-pushed the dspx-3397-4-ci-keycloak-26 branch from 45582fe to 41dad28 Compare August 11, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant