Skip to content

docs: correct the toolbox attribution and record the deploy-order constraint - #64

Merged
venkatamutyala merged 1 commit into
feat/cli-sso-through-oauth2-proxyfrom
docs/cli-usage-and-ordering
Sep 5, 2026
Merged

docs: correct the toolbox attribution and record the deploy-order constraint#64
venkatamutyala merged 1 commit into
feat/cli-sso-through-oauth2-proxyfrom
docs/cli-usage-and-ordering

Conversation

@venkatamutyala

Copy link
Copy Markdown
Contributor

Into #63, not main. Comments only — no rendered behaviour change.

1. The audience comment credits the wrong repo

It reads "the public toolbox Dex client (GlueOps/toolbox)". The client is created by platform-helm-chart-platform (#1485); GlueOps/toolbox is the CLI that mints and presents the token. As written it sends a reader to the wrong repo to find the definition.

2. The CLI needs the token in two headers, and #63's own snippet shows one

#63's description says:

export ARGOCD_AUTH_TOKEN=$(glueops-token)
argocd app list --grpc-web

That cannot work. ARGOCD_AUTH_TOKEN is sent as gRPC metadata key token (apiclient.go:60,516), which --grpc-web copies to a Token: header — but oauth2-proxy reads only Authorization (jwt_session.go:69-72). So the edge sees no credential, redirects to a login page, and the CLI parses HTML as a gRPC frame:

rpc error: code = Unknown desc = unexpected EOF

GlueOps/toolbox sends both, fresh per invocation, and its README documents this same failure. The comment now records it next to the setting that depends on it.

(glueops-token also does not exist anywhere in the org — the command is toolbox-token.)

3. The Ingress now depends on middlewares this repo does not create

oauth2-with-redirect-bearer and oauth2-api come from the platform chart. The tenant README's upgrade order deploys ArgoCD at step 2 and the platform chart at step 4 — the wrong way round for this change.

Traefik v3.6.7 drops a router whose middleware is missing (middlewares.go:74router.go:166-171 continue) and falls through to http.NotFoundHandler(), so argocd.<domain> answers 404 for the browser UI as well as the CLI until step 4 completes.

Worth being precise: this is fail-closed, not an auth bypass — the router is removed, so no unauthenticated request reaches argocd-server — and it self-heals the moment the platform chart lands. On a fresh cluster the documented order is fine, since nothing is serving yet and ArgoCD must exist before the platform chart's Applications can sync. It is only an upgrade hazard, and nothing said so.

A matching note for tenant-readme.md.tpl is in GlueOps/terraform-module-cloud-multy-prerequisites.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TrpnuCduw2KivngVRQmnG7

…straint

Two comment corrections, no behaviour change.

The audience comment credited the "toolbox" Dex client to GlueOps/toolbox. The
client is created by platform-helm-chart-platform; GlueOps/toolbox is the CLI
that mints and presents the token. Also record that the token has to travel in
BOTH headers - ARGOCD_AUTH_TOKEN becomes "Token:" for ArgoCD, and oauth2-proxy
reads only a separate "Authorization: Bearer". Sending just the env var, as this
PR's own description did, gets a login redirect that the CLI reports as
"rpc error: unexpected EOF", which names nothing.

The Ingress now references middlewares this repo does not create. The documented
upgrade order in the tenant README deploys ArgoCD (step 2) before the platform
chart (step 4), so on an existing cluster that is the wrong way round: Traefik
drops a router whose middleware is missing, and argocd.<domain> answers 404 for
the browser UI as well as the CLI until the platform chart lands. It is
fail-closed rather than an auth bypass, and self-heals, but nothing said so.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TrpnuCduw2KivngVRQmnG7
@venkatamutyala
venkatamutyala merged commit 594038a into feat/cli-sso-through-oauth2-proxy Sep 5, 2026
1 check passed
@venkatamutyala
venkatamutyala deleted the docs/cli-usage-and-ordering branch September 5, 2026 07:25
venkatamutyala added a commit that referenced this pull request Sep 5, 2026
…preserving middlewares (#63)

* feat: accept the toolbox edge token and route the CLI through bearer-preserving middlewares

Ports the argocd.yaml changes that let the argocd CLI work through oauth2-proxy:

- allowedAudiences [argocd, toolbox]: a developer's edge token (minted from the
  public "toolbox" Dex client) authenticates to ArgoCD directly via
  ARGOCD_AUTH_TOKEN, with no loopback callback. The setting REPLACES the default
  audience check rather than extending it, so "argocd" must stay listed or
  browser UI login breaks.

- oauth2-with-redirect-bearer on "/": ArgoCD serves gRPC-web at root paths, so
  this route needs a login redirect for browsers AND the caller's Authorization
  header left intact for CLIs. The old chain unconditionally stripped it.

- oauth2-api on "/api": authenticated the same, but answers 401 instead of an
  HTML redirect, which is what a CLI can act on.

Requires the middlewares and Dex client from
GlueOps/platform-helm-chart-platform#1485.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NiwgsqcQ4JikhFYj4NHEjM

* docs: correct the toolbox attribution and record the deploy-order constraint (#64)

Two comment corrections, no behaviour change.

The audience comment credited the "toolbox" Dex client to GlueOps/toolbox. The
client is created by platform-helm-chart-platform; GlueOps/toolbox is the CLI
that mints and presents the token. Also record that the token has to travel in
BOTH headers - ARGOCD_AUTH_TOKEN becomes "Token:" for ArgoCD, and oauth2-proxy
reads only a separate "Authorization: Bearer". Sending just the env var, as this
PR's own description did, gets a login redirect that the CLI reports as
"rpc error: unexpected EOF", which names nothing.

The Ingress now references middlewares this repo does not create. The documented
upgrade order in the tenant README deploys ArgoCD (step 2) before the platform
chart (step 4), so on an existing cluster that is the wrong way round: Traefik
drops a router whose middleware is missing, and argocd.<domain> answers 404 for
the browser UI as well as the CLI until the platform chart lands. It is
fail-closed rather than an auth bypass, and self-heals, but nothing said so.


Claude-Session: https://claude.ai/code/session_01TrpnuCduw2KivngVRQmnG7

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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