Operator decision. Both are held at every update type and labelled needs-review: - quay.io/oauth2-proxy/oauth2-proxy (render.py constant, rendered sidecars, crafty). Since v7.13.0 oauth2-proxy validates refreshed OIDC sessions against the access token, every sidecar uses --cookie-refresh, and that path is untested against this Keycloak. - ghcr.io/renovatebot/renovate (and renovatebot/github-action if ever reintroduced). Nothing re-validates renovate.json5 against the new version before it takes effect. The validator passes on 44.167.0. Evaluated with Renovate's own packageRules engine: exactly 2 of 29 branch rows change (automerge true -> false, +needs-review); the other 27 are identical. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2.8 KiB
date, branch, title
| date | branch | title |
|---|---|---|
| 2026-10-30 | fix/renovate-hold-auth-and-self | Operator decision — the oauth2-proxy sidecar and Renovate's own version never auto-merge |
What changed
renovate.json5 gains two packageRules. Both set automerge: false and addLabels: ["needs-review"].
They sit after the auto-merge rule, so they override it at every update type. Each rule's
description carries the operator's reason.
-
quay.io/oauth2-proxy/oauth2-proxy. This is the single depName emitted for:catalog/render.pyOAUTH2_PROXY_IMAGE(custom regex manager);- the five rendered
apps/wave-*sidecars; platform/crafty/deployment.yaml(kubernetes manager).
Reason: since v7.13.0, oauth2-proxy validates refreshed OIDC sessions against the access token, not the id_token. Every sidecar sets
--cookie-refresh, and that path is untested against this Keycloak: the platform oauth2-proxy runs v7.15.5 without--cookie-refresh.render-goldenand--selftestpass on the bump, but both check rendered text, not the binary. -
ghcr.io/renovatebot/renovate. This is the jobcontainer.imagein.gitea/workflows/renovate.yaml. The rule also listsrenovatebot/github-action, so a reintroduction would be held too. It is not used anywhere today;ci/lint.shrejects it.Reason: nothing re-validates
renovate.json5against the new version before it takes effect. The 39.xCONFIG_VALIDATIONfailure is the precedent.
What I verified
-
The config validates on the pinned 44.167.0.
renovate-config-validatorprintedConfig validated successfully. The migration diff is only the pre-existing top-leveldockerblock. -
The flag change is exactly the intended one. I used Renovate 44.167.0's own
resolveConfigPresetsandapplyPackageRulesto evaluate b4ff287's config and this branch's config against the same updates (the local dry run of the #86 config). Exactly 2 of 29 branch rows differ:ghcr.io-renovatebot-renovate-44.x:automerge=true labels=→automerge=false labels=needs-review;quay.io-oauth2-proxy-oauth2-proxy-7.x: the same change, and every upgrade in the branch resolvesfalse, thecatalog/render.pyone included.
The other 27 rows are byte-identical.
What I did NOT verify
- The three GitHub-hosted branches in run 357 (
pin-dependencies,kubevirt-cdi,intel-intel-device-plugins-for-kubernetes-0.x) are not in the harness table: my local run has no github.com token. Neither rule's package names can match them. - A live Renovate run with this config. The next debug-level dispatch should show
needs-reviewon both branches. - The oauth2-proxy refresh path itself remains untested. Exercising it on one app is the review the label asks for.