Skip to content

chore(kamaji): bump kamaji to 26.6.4-edge - #3013

Closed
Aleksei Sviridkin (lexfrei) wants to merge 1 commit into
mainfrom
chore/bump-kamaji
Closed

Aleksei Sviridkin (lexfrei) wants to merge 1 commit into
mainfrom
chore/bump-kamaji

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Jun 23, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Refreshes the kamaji control-plane manager onto current upstream (26.3.5-edge → 26.6.4-edge).

  • images/kamaji/Dockerfile: ARG VERSION 26.3.5-edge → 26.6.4-edge. The rebuild on golang:1.26 + gcr.io/distroless/static:nonroot clears the Go stdlib advisory. The OS-package advisories from the scan (libpython3.13, libexpat, libgnutls30, krb5, sqlite, curl, libgcrypt, libcap2, nghttp2) apply to a Debian-based image, not the distroless manager cozystack actually ships.
  • charts/: re-vendored from 26.6.4-edge. The TenantControlPlane CRD picks up the upstream dual-stack networking update — new podCidrs / serviceCidrs array fields alongside the retained singular podCidr / serviceCidr, and the object-level CEL rule tying dnsServiceIPs to the singular serviceCidr replaced by per-field isCIDR validation — plus an additive securityContext on the konnectivity-server container. These are backward-compatible: existing TenantControlPlanes keep validating (the singular fields stay accepted and the dropped rule only relaxes validation). The new certManager / selfSignedCertificates value blocks default to the chart's existing cert-manager + self-signed-issuer behaviour, so the webhook cert flow is unchanged. kamaji-etcd stays disabled.
  • values.yaml: re-pinned the image and the --migrate-image arg to the rebuilt multi-arch digest (linux/amd64 + linux/arm64).

The fix-kubelet-config-compat patch (k8s 1.35+ kubelet defaults) still applies cleanly on the new source.

Closes #2885

Release note

chore(kamaji): bump kamaji to 26.6.4-edge

Summary by CodeRabbit

Release Notes

  • New Features
    • Expanded TenantControlPlane security configuration with pod-level and per-component (API server, controller manager, scheduler) container security context options, plus Konnectivity add-on server security context support.
    • Added support for multiple pod and service CIDR ranges (podCidrs/serviceCidrs) while keeping deprecated single-CIDR fields for compatibility.
    • Added networkProfile.advertiseAddress (including certificate SAN-related documentation).
  • Chores
    • Updated Helm dependency requirements and default certificate provisioning settings (cert-manager enabled; self-signed disabled).
    • Refreshed Kamaji image build/version and related migration image reference.

@github-actions github-actions Bot added area/uncategorized PR auto-labeler could not map title scope to a known area/*; please review kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt labels Jun 23, 2026
@coderabbitai

coderabbitai Bot commented Jun 23, 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 64f99c94-837f-4784-b7af-1996f11878d1

📥 Commits

Reviewing files that changed from the base of the PR and between e124487 and 46b1967.

⛔ Files ignored due to path filters (1)
  • packages/system/kamaji/charts/kamaji/Chart.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml
  • packages/system/kamaji/charts/kamaji/Chart.yaml
  • packages/system/kamaji/charts/kamaji/README.md
  • packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml
  • packages/system/kamaji/charts/kamaji/values.yaml
  • packages/system/kamaji/images/kamaji/Dockerfile
  • packages/system/kamaji/values.yaml
✅ Files skipped from review due to trivial changes (4)
  • packages/system/kamaji/images/kamaji/Dockerfile
  • packages/system/kamaji/charts/kamaji/values.yaml
  • packages/system/kamaji/values.yaml
  • packages/system/kamaji/charts/kamaji/README.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • packages/system/kamaji/charts/kamaji/Chart.yaml
  • packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml
  • packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml

📝 Walkthrough

Walkthrough

Bumps the Kamaji system package: updates the image build version to 26.6.4-edge, refreshes the v1.5.0 image digest, raises the kamaji-etcd dependency minimum to >=0.15.0, switches kamaji-etcd certificate issuance to cert-manager, and expands the TenantControlPlane CRD schema with container/pod security contexts, advertiseAddress, plural CIDR fields, and minor doc cleanups.

Changes

Kamaji Version Bump and CRD Schema Update

Layer / File(s) Summary
Kamaji image and etcd dependency version bump
packages/system/kamaji/images/kamaji/Dockerfile, packages/system/kamaji/values.yaml, packages/system/kamaji/charts/kamaji/Chart.yaml, packages/system/kamaji/charts/kamaji/README.md
Bumps the Kamaji builder VERSION from 26.3.5-edge to 26.6.4-edge, updates the container image and --migrate-image argument to the new v1.5.0 sha256 digest, and raises the kamaji-etcd dependency minimum from >=0.11.0 to >=0.15.0 in the chart and README.
kamaji-etcd cert-manager configuration
packages/system/kamaji/charts/kamaji/values.yaml, packages/system/kamaji/charts/kamaji/README.md
Adds selfSignedCertificates: enabled: false and certManager: enabled: true with issuerRef pointing to kamaji-selfsigned-issuer Issuer in the kamaji-etcd subchart values; README Values table updated to match.
CRD: security context fields for Konnectivity and control plane
packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml, packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml
Adds securityContext sub-schema to spec.addons.konnectivity.server and introduces spec.controlPlane.containerSecurityContexts (per apiServer, controllerManager, scheduler) and spec.controlPlane.podSecurityContext in both the hack spec source and the chart CRD.
CRD: networkProfile advertiseAddress and plural CIDR fields
packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml, packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml
Adds spec.networkProfile.advertiseAddress (with SAN notes), new podCidrs and serviceCidrs array fields with per-entry CEL CIDR validation, and updates deprecated podCidr/serviceCidr field descriptions to reflect precedence rules.
CRD: description and doc wording cleanups
packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml, packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml
Removes ProcMountType feature-flag notes from procMount descriptions (two locations), removes noexec from OCI volume docs, removes CSIMigrationPortworx feature-gate phrasing from portworxVolume, and adjusts Gateway route status namespace-access wording in two places.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

area/platform, size/L

Suggested reviewers

  • lllamnyp
  • androndo
  • IvanHunters
  • kvaps
  • sircthulhu
  • myasnikovdaniil

Poem

🐇 Hoppin' through the charts today,
New digests and versions on the way!
Security contexts, CIDR arrays galore,
cert-manager certs — who could ask for more?
The rabbit stamps this bump with cheer,
v1.5.0 has finally appeared! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: bumping kamaji from 26.3.5-edge to 26.6.4-edge, which aligns with the main objective and changeset.
Linked Issues check ✅ Passed The PR fully addresses issue #2885 by updating kamaji to 26.6.4-edge to resolve 17 known CVEs, updating related charts, and ensuring backward compatibility through relaxed validation.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the kamaji version bump objective: Dockerfile update, chart re-vendoring (CRD/values), and image reference pinning. No extraneous modifications present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-kamaji

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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request upgrades the Kamaji control-plane manager to version 26.6.4-edge. The changes include updating the Dockerfile build argument, re-pinning container image digests in the values configuration, and re-vendoring the associated Helm charts to incorporate upstream networking and security enhancements while maintaining backward compatibility.

Highlights

  • Kamaji Version Bump: Updated the Kamaji control-plane manager version from 26.3.5-edge to 26.6.4-edge.
  • Image and Digest Updates: Re-pinned the container image and migration argument to the new multi-arch digest to ensure compatibility and security.
  • Chart Re-vendoring: Re-vendored Helm charts to include upstream improvements, including dual-stack networking support and enhanced security contexts.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: **/charts/** (6)
    • packages/system/kamaji/charts/kamaji-crds/hack/kamaji.clastix.io_tenantcontrolplanes_spec.yaml
    • packages/system/kamaji/charts/kamaji/Chart.lock
    • packages/system/kamaji/charts/kamaji/Chart.yaml
    • packages/system/kamaji/charts/kamaji/README.md
    • packages/system/kamaji/charts/kamaji/crds/kamaji.clastix.io_tenantcontrolplanes.yaml
    • packages/system/kamaji/charts/kamaji/values.yaml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment Gemini (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the Kamaji builder image version in the Dockerfile to 26.6.4-edge, and updates the Kamaji image and migration image digests in values.yaml to sha256:30f19facd2820e3861d0ae29e2d3462db29b1464c6ba6524056e982a19657ec5. I have no feedback to provide as there are no review comments.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@myasnikovdaniil myasnikovdaniil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — approving. Reviewed in an isolated worktree + validated on a dev cluster against a live TenantControlPlane.

Version / build

  • Dockerfile VERSION 26.3.5-edge → 26.6.4-edge; -edge tracking is the package norm (Makefile update filters for *-edge), so this is intentional, not an accidental pre-release pin.
  • Repinned digest sha256:30f19fa… confirmed a real multi-arch manifest list (amd64 + arm64), distroless static nonroot, CGO off. CVE rationale checks out: #2885's list is 16 OS-package (Debian) advisories not present in distroless + 1 Go stdlib cleared by the golang:1.26 rebuild.
  • fix-kubelet-config-compat.diff applies cleanly against fetched 26.6.4-edge source (git apply --check ✓); required fmt/blang/semver imports already exist upstream.

CRD additivity (the central risk) — verified backward-compatible

  • podCidr/serviceCidr retained (description gains a "Deprecated" note; field-level isCIDR CEL unchanged). podCidrs/serviceCidrs/advertiseAddress are new and optional. The new containerSecurityContexts/konnectivity securityContext blocks account for most of the +1010; every added required: is nested inside those new optional sub-objects, not at spec level. The one removed object-level CEL rule (dnsServiceIPs ⊆ serviceCidr) is a relaxation.
  • On a dev cluster: applied the new CRD --server-side --dry-run=server → accepted. Offline-validated an existing TenantControlPlane CR (which uses the singular podCidr/serviceCidr) against the new schema — strict superset, no field pruned, spec.required unchanged, no required tightening. Re-applied the live CR --dry-run=server → clean. Existing tenant control planes stay valid.

I did not roll the operator against the live tenant (a concurrent coredns roll was in flight); the server-dry-run CRD validation + offline schema proof + verified image manifest are sufficient.

Nits (non-blocking): chart values.yaml adds a kamaji-etcd.certManager block but kamaji-etcd.deploy: false, so it's inert. Branch is ~2 commits behind main (kubevirt-instancetypes only, no kamaji overlap, merges clean) — a rebase is optional, not required.

@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as draft June 23, 2026 11:34
Refreshes the kamaji control-plane manager onto current upstream.

- images/kamaji/Dockerfile: ARG VERSION 26.3.5-edge -> 26.6.4-edge. The rebuild
  on golang:1.26 + distroless/static clears the Go stdlib advisory; the
  OS-package advisories from the scan apply to a debian-based image, not the
  distroless manager cozystack actually ships.
- charts/: re-vendored from 26.6.4-edge. The TenantControlPlane CRD picks up the
  upstream dual-stack networking update -- new podCidrs / serviceCidrs array
  fields alongside the retained singular podCidr / serviceCidr, and the
  object-level CEL rule tying dnsServiceIPs to the singular serviceCidr replaced
  by per-field isCIDR validation -- plus an additive securityContext on the
  konnectivity-server container. These are backward-compatible: existing
  TenantControlPlanes keep validating (the singular fields stay accepted and the
  dropped rule only relaxes validation). The new certManager /
  selfSignedCertificates value blocks default to the chart's existing
  cert-manager + self-signed-issuer behaviour, so the webhook cert flow is
  unchanged. kamaji-etcd stays disabled.
- values.yaml: re-pinned the image and the --migrate-image arg to the rebuilt
  multi-arch digest.

The fix-kubelet-config-compat patch (k8s 1.35+ kubelet defaults) still applies
cleanly on the new source.

Assisted-By: Claude <[email protected]>
Signed-off-by: Aleksei Sviridkin <[email protected]>
@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as ready for review June 23, 2026 11:52

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the Kamaji package by bumping the builder version in the Dockerfile to 26.6.4-edge and updating the image tag and migration image digests in values.yaml. There are no review comments to evaluate, and I have no additional feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@lexfrei

Copy link
Copy Markdown
Contributor Author

Closing. This kamaji bump is both unnecessary for #2885 and harmful.

Unnecessary: the #2885 CVE list was scanned against a Debian/Alpine image, but the kamaji image shipped here is distroless/static (trivy reports 0 OS-package vulnerabilities on the pinned digest), so 16 of the 17 CVEs are not present. The one real CVE is in the Go stdlib (go1.26.3 -> 1.26.4), which a plain rebuild on the current golang:1.26 closes with no version jump.

Harmful: 26.6.4-edge vendors a k8s v1.36 kubeadm that dropped the kubeadm:cluster-admins Organization from the apiserver-kubelet-client certificate and moved that grant into a kubeadm:apiserver-kubelet-client -> system:kubelet-api-admin ClusterRoleBinding which kamaji never creates, so tenant control planes lose apiserver-to-kubelet authorization (kubectl logs/exec return Forbidden). Tracked upstream in clastix/kamaji#1171, fix in clastix/kamaji#1172.

#2885 will instead be closed by rebuilding the current 26.3.5-edge. No version bump is needed.

@lexfrei Aleksei Sviridkin (lexfrei) added area/kamaji Issues or PRs related to Kamaji (hosted control planes for tenant Kubernetes) and removed area/uncategorized PR auto-labeler could not map title scope to a known area/*; please review labels Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/kamaji Issues or PRs related to Kamaji (hosted control planes for tenant Kubernetes) kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt size/XS This PR changes 0-9 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(kamaji): bump system/kamaji images to current upstream release

2 participants