Skip to content

[DO NOT MERGE] CI validation for oidc2 (llm-proxy on OIDC restructure)#568

Closed
fabianvf wants to merge 15 commits into
konveyor:mainfrom
fabianvf:oidc2-llm-proxy-test
Closed

[DO NOT MERGE] CI validation for oidc2 (llm-proxy on OIDC restructure)#568
fabianvf wants to merge 15 commits into
konveyor:mainfrom
fabianvf:oidc2-llm-proxy-test

Conversation

@fabianvf
Copy link
Copy Markdown
Contributor

@fabianvf fabianvf commented Jun 1, 2026

Draft / do-not-merge. Scratch PR to run the real `llm-proxy-test` CI against Jeff's `oidc2` branch (his OIDC restructure, replaces the older PR #562 line of work).

Contains, on top of `oidc2`:

  • TEST-ONLY image pins → `quay.io/jortel/tackle2-{hub,ui}:oidc` (both rebuilt 2026-05-30; the matching images Jeff is testing with). `konveyor/tackle2-hub:latest` is pre-OIDC (hub PR ✨ builtin OIDC provider. tackle2-hub#1042 still OPEN) so it would crashloop on a Keycloak login.

No other scaffolding has been added — running Jeff's restructured operator as-is to see what happens. Likely failure modes I'm watching for:

  1. Hub crashloops with `[hub] missing issuer` (deployment-hub.yml.j2 doesn't set `OIDC_ISSUER` even though the UI does — may or may not be handled by the newer hub image).
  2. Test passes auth but gets 403 on `llm-proxy:post` because the hub image lacks the scope-registration + roles grant from Grant llm-proxy scope to roles jortel/tackle2-hub#1 (still OPEN).

Refs: `oidc2` branch on Jeff's fork; jortel/tackle2-hub#1; konveyor/tackle2-hub#1042

jortel and others added 12 commits May 28, 2026 17:57
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
Signed-off-by: Jeff Ortel <jortel@redhat.com>
konveyor/tackle2-hub:latest is pre-OIDC (hub PR #1042 still open) and
crashloops on a Keycloak login. Per Jeff's note, the matching test
images for oidc2 are jortel/tackle2-{hub,ui}:oidc (both rebuilt
2026-05-30). Pin them so CI exercises the OIDC stack Jeff intends.

Do not merge -- real bundle must pin published konveyor images.

Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 1, 2026

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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 12401a25-2ddd-44d0-b940-e43664cf6d9a

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

fabianvf added 2 commits June 1, 2026 11:19
The new tackle.konveyor.io CRDs (IdpClient, IdentityProvider,
LdapProvider) are reconciled by the operator. Add them to the Role's
resources list so the operator's service account can manage them;
without this the reconcile fails at the first IdpClient lookup with
"User \"system:serviceaccount:.../tackle-operator\" cannot get
resource \"idpclients\" ... Forbidden".

Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us>
The OIDC UI redirects unauthenticated requests to a login page (302),
so a curl Basic Auth call routed through the UI's /hub proxy never
reaches the hub. Port-forward to service/tackle-hub instead and hit
/services/llm-proxy/* directly, exercising the hub auth + RBAC +
reverse proxy path we actually want to test.

Also capture the HTTP status code on a failed chat-completion request
(so auth/RBAC vs route/forward failures are distinguishable from an
empty body) and dump tackle-hub logs in the debug step on failure.

Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us>
@fabianvf fabianvf changed the title [DO NOT MERGE] CI validation for oidc2 (llm-proxy on Jeff's OIDC restructure) [DO NOT MERGE] CI validation for oidc2 (llm-proxy on OIDC restructure) Jun 1, 2026
…-proxy

Mirror how real clients are expected to talk to the hub: present a
short-lived credential (Basic admin:admin against the seeded user) to
POST /auth/tokens, then use the returned PAT as a Bearer token for the
/services/llm-proxy calls. The previous test sent Basic Auth on every
chat-completion call, which works but isn't representative of the
intended client flow (long-lived API key for service traffic).

Verified locally against jortel/tackle2-hub:oidc: POST /auth/tokens
returns 201 with a token; that token then authenticates the
/services/llm-proxy/v1/chat/completions request.

Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us>
@fabianvf
Copy link
Copy Markdown
Contributor Author

fabianvf commented Jun 1, 2026

Superseded by jortel#3 (clean PR against jortel:oidc2 with the test-only image pins dropped). End-to-end test goes green against jortel/tackle2-hub:oidc with Jeff's auth fix.

@fabianvf fabianvf closed this Jun 1, 2026
@fabianvf
Copy link
Copy Markdown
Contributor Author

fabianvf commented Jun 2, 2026

Reopening to re-verify the updated test (UI-proxy happy path + hub-direct security check) against jortel/tackle2-hub:oidc. The actual fix is jortel#3 — this draft just exists for CI validation.

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.

2 participants