OSAC-4913,OSAC-4915: fix bundled OpenBao OIDC issuer + vault endpoint namespace mismatch on OpenShift - #752
Conversation
Keycloak reports the external route hostname as its OIDC issuer regardless of the network path used to reach it, so the bundled OpenBao JWT auth backend's oidc_discovery_url must match that same external hostname. Add service.vault.keycloakIssuerUrl to the existing DOMAIN-based --set override list in install-osac, alongside service.auth.issuerUrl and service.idp.url. Assisted-by: Claude Code <noreply@anthropic.com> Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
|
@ygalblum: This pull request references OSAC-4913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the bug to target the "5.1.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ygalblum The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: osac-project/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 12 included reviews per hour; 9 remain after this review. WalkthroughWhen a cluster domain is available, the OSAC Helm install command sets ChangesOSAC installation configuration
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to The installation configuration now supplies the OpenBao endpoint for the target namespace, with no remaining identified merge-readiness risk. Suggested labels: Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error)
✅ Passed checks (10 passed)
Full details: No-Sensitive-Data-In-LogsExplanation The pull request adds Resolution Prevent the Helm command from being printed with its internal endpoint. Prefix the recipe with
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
E2E on CodeRabbit approvalCodeRabbit APPROVED — starting expensive e2e (PR run replay).
|
fulfillment-controller failed to log in to the bundled OpenBao vault because service.vault.endpoint was hardcoded to openbao.osac.svc.cluster.local in every CI profile's instance.yaml, while CI actually installs OSAC into the osac-e2e-ci namespace. Extend the same DOMAIN-conditional --set block in install-osac (already overriding service.auth.issuerUrl and service.vault.keycloakIssuerUrl per OSAC-4913) to also override service.vault.endpoint using the Makefile's existing $(NS) variable. Assisted-by: Claude Code <noreply@anthropic.com> Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
|
@ygalblum: This pull request references OSAC-4913 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the bug to target the "5.1.0" version, but no target version was set. This pull request references OSAC-4915 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the bug to target the "5.1.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
Additional fix: OSAC-4915Same root cause category and same Makefile line — Fixed by extending the same Verified via Fixes: https://redhat.atlassian.net/browse/OSAC-4915 Assisted-by: Claude Code noreply@anthropic.com |
|
Closing as it is addressed in #730 |
Pull request was closed
Summary
issuer(portable tokens), andinstall-osac'sinstall-osactarget already overridesservice.auth.issuerUrl/service.idp.urlat install time to match. Howeverservice.vault.keycloakIssuerUrl— the OIDC issuer URL the bundled OpenBao'sinit.shuses forauth/jwt/config oidc_discovery_url=...— was missing from that same$(DOMAIN)-based override list, so it stayed pinned to the static internal cluster-local hostname from each CI profile'sinstance.yaml. This mismatched Keycloak's actual discovery-document issuer and made OpenBao's OIDC discovery validation fail forever (issuer did not match the returned issuer), so thelifecycleJWT auth role never got created on any OpenShift-deployed cluster.$(if $(DOMAIN), ...)--setblock inosac-installer/Makefile'sinstall-osactarget to also setservice.vault.keycloakIssuerUrl=https://keycloak-keycloak.$(DOMAIN)/realms/osac, matching the pattern already used forservice.auth.issuerUrl. The static per-profileinstance.yamlvalues become dead defaults at install time, same asservice.auth.issuerUrltoday — left as-is for consistency/fallback.Test plan
yamllint --strict -c .yamllint.yaml osac-installerpassespre-commit run --all-filespassesmake helm-lint/make helm-validatefail only with the pre-existing, unrelatedservice.externalHostname/service.internalHostnameschema error already present onmain(confirmed before this change)helm template charts/osac -f values/vmaas-ci/instance.yamlwith the same--setflagsinstall-osacwould pass (mockedDOMAIN) confirmsKEYCLOAK_ISSUER_URLinbundled-openbao.yaml's init container now renders as the external route URL (https://keycloak-keycloak.<domain>/realms/osac), matching Keycloak's actual discovery-document issuerFixes: https://redhat.atlassian.net/browse/OSAC-4913
Assisted-by: Claude Code noreply@anthropic.com
Deployment and authentication
install-osacHelm overrides.$(NS).Tests and CI
API surface, controllers, database, and documentation
Backward compatibility
DOMAINis available.Risk classification