Skip to content

chore(deps): update dependency alex1989hu/kubelet-serving-cert-approver to v0.12.0 - #3594

Merged
devantler merged 4 commits into
mainfrom
renovate/alex1989hu-kubelet-serving-cert-approver-0.x
Sep 5, 2026
Merged

chore(deps): update dependency alex1989hu/kubelet-serving-cert-approver to v0.12.0#3594
devantler merged 4 commits into
mainfrom
renovate/alex1989hu-kubelet-serving-cert-approver-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
alex1989hu/kubelet-serving-cert-approver minor 0.11.00.12.0

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

alex1989hu/kubelet-serving-cert-approver (alex1989hu/kubelet-serving-cert-approver)

v0.12.0

Compare Source

Chore
  • upgrade golangci-lint v2.13.2
  • upgrade controller-runtime v0.24.1
  • upgrade testify v1.12.1
  • upgrade zap v1.28.0
  • bump github/codeql-action from 4.37.7 to 4.37.8
Ci
  • add kubernetes 1.36.4 e2e image
  • update nancy ignore
Fix
  • set prometheus validation scheme in e2e tests

v0.11.1

Compare Source

Chore
  • bump github/codeql-action from 4.37.6 to 4.37.7
  • upgrade go 1.26.7
  • bump docker/setup-buildx-action from 4.2.0 to 4.3.0
  • upgrade golang.org/x/net v0.58.0
  • upgrade go 1.26.6
  • bump github/codeql-action from 4.37.4 to 4.37.6
  • bump github/codeql-action from 4 to 4.37.4
  • bump docker/login-action from 4.5.2 to 4.6.0
  • upgrade golang.org/x/net v0.57.0
  • update golang.org/x/text v0.40.0
  • bump docker/login-action from 4.4.0 to 4.5.2
  • bump actions/setup-go from 6 to 7
  • upgrade go 1.26.5
  • bump docker/login-action from 4.3.0 to 4.4.0
  • bump docker/metadata-action from 6.1.0 to 6.2.0
  • bump docker/login-action from 4.2.0 to 4.3.0
  • bump docker/setup-buildx-action from 4.1.0 to 4.2.0
  • bump docker/setup-qemu-action from 4.1.0 to 4.2.0
  • bump docker/build-push-action from 7.2.0 to 7.3.0
  • bump actions/checkout from 6 to 7
  • bump codecov/codecov-action from 6 to 7
  • upgrade controller-runtime v0.22.5
  • upgrade go 1.26.4
  • bump docker/login-action from 4.1.0 to 4.2.0
  • bump docker/setup-buildx-action from 4.0.0 to 4.1.0
  • bump docker/metadata-action from 6.0.0 to 6.1.0
  • bump docker/setup-qemu-action from 4.0.0 to 4.1.0
  • upgrade golang.org/x/net v0.55.0
Ci
  • update nancy ignore
  • update nancy ignore
  • migrate to helm/kind-action
  • update nancy ignore
  • update nancy ignore

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@botantler-1
botantler-1 Bot enabled auto-merge September 4, 2026 20:26
@devantler
devantler marked this pull request as draft September 4, 2026 21:14
auto-merge was automatically disabled September 4, 2026 21:14

Pull request was converted to draft

…o v0.12.0

The RGD static-scan gate fails a Kustomization resource that is not a local
path or a reviewed remote, and the reviewed baseline still pinned v0.11.0, so
the URL bump could not pass its own guard.

Upstream diff between the two tags is a single line - the container image tag
0.11.0 -> 0.12.0. No RBAC, resource, webhook or label change. The PDB selector
in this directory still matches the upstream Deployment matchLabels.

The digest method is proven by control: re-fetching v0.11.0 reproduces the
baseline digest 60b0f272... exactly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Why this PR now carries a second commit

The URL bump could not pass its own guard. scripts/scan-rgd-templates.sh fails closed on a
Kustomization resource that is neither a local path nor a reviewed remote, and the reviewed
baseline scripts/rgd-template-static-scan-remote-resources.tsv still pinned v0.11.0:

FAIL: Kustomization resource is not a local path or reviewed remote
(https://raw.githubusercontent.com/alex1989hu/kubelet-serving-cert-approver/v0.12.0/deploy/ha-install.yaml)

That is the control working as designed — a new upstream revision is not trusted until someone looks
at it. So this commit does the looking, rather than just silencing the check.

What actually changed upstream

The whole diff between v0.11.0 and v0.12.0 of deploy/ha-install.yaml is one line:

-        image: ghcr.io/alex1989hu/kubelet-serving-cert-approver:0.11.0
+        image: ghcr.io/alex1989hu/kubelet-serving-cert-approver:0.12.0

Both files are 260 lines. No RBAC rule, ClusterRole, RoleBinding, Service, webhook, namespace or
label changed; no resource was added or removed.

The digest is proven by control, not asserted

Re-fetching the old revision with the same method reproduces the reviewed baseline digest exactly:

revision digest source
v0.11.0 60b0f27269792f72ecdc2e617d3fe908ebd2f152280edce96c1b006f5723baa3 matches the committed baseline ✅
v0.12.0 44d74b38379d96572c434290732092f577ee4835392b36922a72c406ee406139 new row

A method that reproduces a known-good digest is what makes the new one trustworthy; without that
control the new digest would only be a record of whatever the endpoint served.

The directory's own checklist item

kustomization.yaml carries the instruction "On a bump, re-check the PDB selector still matches the
upstream labels."
It does: pod-disruption-budget.yaml selects
app.kubernetes.io/name + app.kubernetes.io/instance = kubelet-serving-cert-approver, and the
upstream Deployment's matchLabels in v0.12.0 are exactly those two, unchanged from v0.11.0.

Consequences

  • The PR was converted to draft and its auto-merge request cleared before the push, so automation
    cannot merge a head that has not been re-reviewed.
  • An agent commit restores the ordinary current-head review gate; a review will be requested once CI
    settles green.

@renovate

renovate Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

The render-remote-resource guard fails a row whose URL is no longer
referenced, by design, so re-pinning only the static-scan baseline would have
traded one red check for another. Both lists name the same URL and both have
to move with the kustomization.

Row semantics are unchanged: still a tracked exception owned by #3196, not an
approval, and still the same manifest - only the tag it names moved.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

A second list pins the same URL — re-pinning one would have traded one red check for another

scripts/render-remote-resource-exceptions.tsv names the identical URL, and its own header states the
rule that makes the omission fatal: "The guard fails on a row whose URL is no longer referenced, so
this list cannot rot."
Moving only the static-scan baseline would have left that row unreferenced and
produced a fresh failure on a different check.

Both lists now name v0.12.0. The exception row's semantics are unchanged — still a tracked exception
owned by #3196, still explicitly not an approval; only the tag moved. I checked every other file that
mentions this controller (README.md, ksail.prod.yaml, the cluster-security-exception bases, the
Kubescape exceptions ConfigMap): none carries a version-pinned reference, so these two lists plus
kustomization.yaml are the complete set.

The recorded maintainer gate on this package — flagging, not deciding

.github/renovate.json pins automerge: false for alex1989hu/kubelet-serving-cert-approver
specifically, with the reason recorded in the config:

Keep Renovate visibility, but require maintainer review for every release bump so the upstream
manifest and local PDB selector are re-checked before deployment.

Both of those re-checks are done and evidenced above: the upstream diff is one image-tag line, and the
PDB selector still matches the upstream matchLabels. But the recorded intent names a maintainer
review before deployment, for a manifest that contributes ServiceAccount / ClusterRole /
(Cluster)RoleBinding documents to the prod authorization surface.

So I am taking this PR to green-CI-plus-green-review and stopping there rather than merging it. That
is a deliberate, named gate recorded in this repository, not an unowned park — everything mechanical
is finished, and the remaining step is the one the config asks a human to take.

@devantler this is a one-click merge whenever you are happy with the upstream delta above.

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@devantler, I will perform a full review of the current PR head.

✅ Action performed

Full review finished.

@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Team

Run ID: cb47f354-0f5a-43b7-93e3-01b32214ffd6

📥 Commits

Reviewing files that changed from the base of the PR and between c0b7473 and 389a59b.

⛔ Files ignored due to path filters (2)
  • scripts/render-remote-resource-exceptions.tsv is excluded by !**/*.tsv
  • scripts/rgd-template-static-scan-remote-resources.tsv is excluded by !**/*.tsv
📒 Files selected for processing (1)
  • k8s/providers/hetzner/infrastructure/controllers/kubelet-serving-cert-approver/kustomization.yaml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: 🔍 Detect Changes
🧰 Additional context used
📓 Path-based instructions (1)
Never run a cluster Put a change in the layer that matches its scope

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • k8s/providers/hetzner/infrastructure/controllers/kubelet-serving-cert-approver/kustomization.yaml
🔇 Additional comments (1)
k8s/providers/hetzner/infrastructure/controllers/kubelet-serving-cert-approver/kustomization.yaml (1)

21-21: LGTM!


📝 Walkthrough

Walkthrough

The Kustomize configuration now references the kubelet-serving-cert-approver HA manifest at release v0.12.0 instead of v0.11.0.

Merge Risk: ⚪ Minimal · up to 389a5

This updates the kubelet serving certificate approver HA manifest to v0.12.0. No current merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the dependency and the version update from the changeset.
Description check ✅ Passed The description directly explains the dependency update, release notes, and related configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Readiness at 62490389529330f3286739670609043cf7d2e8f5

Programmatically tested. All checks green — 19 pass, 7 skipped, 0 failing — including
🧪 Validate Manifests and 🔐 Validate Production Authorization, the two that were red before.
Both guard lists now name v0.12.0, and no other file in the repository carries a version-pinned
reference to this controller (README.md, ksail.prod.yaml, the cluster-security-exception bases and
the Kubescape exceptions ConfigMap all reference it by name only).

The digest is proven by control rather than asserted: re-fetching v0.11.0 with the same method
reproduces the committed baseline 60b0f272… exactly, so the v0.12.0 digest 44d74b38… is a
verified value and not simply a record of what the endpoint served.

Reviewed. CodeRabbit green at this head — its auto-generated summary was refreshed at 21:38:36Z,
after this round's request marker, names the full head sha, and reads "No actionable comments were
generated in the recent review."
The head's CodeRabbit status corroborates with Review completed,
and the same-head command-invocation reply carries no rate-limit or did-not-run marker. Zero review
threads, zero body findings. mergeStateStatus is CLEAN.

Evaluated. The upstream delta is a single image-tag line and the PDB selector still matches the
upstream matchLabels — the two re-checks .github/renovate.json names for this package, both done
against the actual manifests rather than reasoned from the version numbers.

Deliberately left as a draft

This is ready, and I am not promoting or merging it. automerge: true is armed on this repository
generally, so promoting it out of draft would let automation merge it — and merging deploys to prod.
.github/renovate.json records the opposite intent for this package specifically:

Keep Renovate visibility, but require maintainer review for every release bump so the upstream
manifest and local PDB selector are re-checked before deployment.

Draft state is therefore the fence that keeps that gate real. @devantler: mark ready and merge when you
are happy with the one-line upstream delta above, and it will go straight through.

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Maintainer-review gate: the two named checks are now done

.github/renovate.json sets automerge: false for this package specifically, so that
"the upstream manifest and local PDB selector are re-checked before deployment".
Both re-checks are complete; evidence below. Left as a draft — the rule reserves the
merge to you, and this comment exists to make that a one-click.

1. Upstream manifest / privileged RBAC surface — no change

Two independent signals agree:

  • 🔐 Validate Production Authorization passed with no authorization-digest change in
    this PR.
    The PR touches only three files (the kustomization URL and the two tracked
    remote-resource TSVs); no grant-bearing identity digest needed re-approval. Had
    v0.12.0 altered the ServiceAccount / ClusterRole / (Cluster)RoleBinding documents this
    remote resource contributes, that check would have required a re-approval commit.
  • The upstream changelog for v0.11.0 → v0.12.0 carries no manifest change — it is
    entirely Go dependency bumps (controller-runtime, zap, testify, golangci-lint), CI
    changes, and one test-only fix (prometheus validation scheme in e2e tests).

The rgd-template-static-scan-remote-resources.tsv digest changed as expected — the
image tag inside the manifest moves with the release.

2. Local PDB selector still matches upstream labels — verified live

Read from prod (read-only) rather than reasoned from the manifest:

Surface Value
Deployment pod-template labels app.kubernetes.io/name + app.kubernetes.io/instance = kubelet-serving-cert-approver
PDB spec.selector.matchLabels identical pair
PDB status expectedPods: 2, currentHealthy: 2, disruptionsAllowed: 1
Running image ghcr.io/alex1989hu/kubelet-serving-cert-approver:0.11.0

expectedPods: 2 is the decisive reading: a selector matching nothing reports
expectedPods: 0 while still being valid YAML that renders and scans clean. The
contract holds on the deployed version.

Residual, stated honestly

I verified the selector against the currently deployed v0.11.0, not against
v0.12.0's rendered manifest — the changelog is strong evidence that the deploy manifests
did not change, but it is not a diff. If you want that closed mechanically rather than
by inference, #3446 is the durable fix — it vendors this bundle so the manifest diff
becomes reviewable in the PR itself, and it explicitly carries the PDB-selector re-check
forward. It is blocked on the same out-of-org artifact-fetch clearance that stopped me
diffing the upstream manifest directly here.

Separately, nothing in CI asserts that a PDB's selector matches the workload it
protects, so this condition depends on a human remembering the rule on every bump. That
detector needs no upstream fetch and is therefore not blocked by #3446 — filed as #3596.

Pentad at 62490389: checks green (19 success / 7 skipped), 0 unresolved threads,
0 body findings, CLEAN, CodeRabbit green at head.

@devantler

devantler commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

@coderabbitai full review

Please review current head 389a59b after the base refresh.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

@devantler, I will perform a full review of the current PR head after the base refresh.

✅ Action performed

Full review finished.

@devantler
devantler marked this pull request as ready for review September 5, 2026 02:40
@devantler
devantler added this pull request to the merge queue Sep 5, 2026
Merged via the queue into main with commit 2f69838 Sep 5, 2026
27 checks passed
@devantler
devantler deleted the renovate/alex1989hu-kubelet-serving-cert-approver-0.x branch September 5, 2026 03:05
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant