Skip to content

[Backport release-1.7] fix(kubernetes): run Proxmox CCM v0.16.1 and pin the Proxmox images by digest - #5150

Open
github-actions[bot] wants to merge 2 commits into
release-1.7from
backport-4917-to-release-1.7
Open

github-actions[bot] wants to merge 2 commits into
release-1.7from
backport-4917-to-release-1.7

Conversation

@github-actions

Copy link
Copy Markdown

Description

Backport of #4917 to release-1.7.

… by digest

The Proxmox CCM was referenced by its bare v0.15.0 tag, and that tag no
longer names the image it named when the template was written. It was
re-pushed on 2026-09-27 (index sha256:d81702998ae1, replacing the
2026-08-06 build sha256:fbc553921145) to a binary whose gitVersion is
"0.15.0" without the leading v. component-base v0.37 parses that string
in the init() of its legacy metrics registry and panics:

  panic: version string "0.15.0" doesn't match expected regular
  expression: "^v(\d+\.\d+\.\d+)"

so the Deployment crash-loops, no Node ever loses the
node.cloudprovider.kubernetes.io/uninitialized taint, and workloads on a
new worker stay Pending. Any node that pulls the tag fresh gets it, which
is every fresh install.

v0.16 builds with goreleaser and stamps gitVersion as v{{.Version}}. The
configuration this template writes is read unchanged: the cluster entry
moved to go-proxmox-pool's ClusterConfig with the same url, insecure,
token_id, token_secret and region keys, and features.provider: capmox
still writes proxmox://<SMBIOS UUID>, the providerID capmox puts on the
Machine.

The reference now lives in images/proxmox-cloud-controller-manager.tag
as tag plus digest, the shape the chart already uses for the KubeVirt
cloud provider, so a moving tag can no longer change what runs.

Assisted-by: LLM
Signed-off-by: Marian Koreniuk <moriarti@cp.if.ua>
(cherry picked from commit 05a347e)
…gest

The CSI controller in the management cluster was referenced by the bare
tag ghcr.io/sergelogvinov/proxmox-csi-controller:v0.20.0, and the node
plugin in the tenant by the vendored chart's default, its appVersion as
a bare tag. That registry is the one whose proxmox-cloud-controller-
manager:v0.15.0 was re-pushed to a build that panics, so a tag there is
not a statement of what runs.

Both now carry the v0.20.0 digest: the controller through
images/proxmox-csi-controller.tag, like the cloud-controller-manager, and
the node plugin through repository and tag in the proxmox-csi values,
which also makes it visible to hack/lib/image-refs.sh and therefore to
the release multi-arch gate. Both digests are indexes for linux/amd64
and linux/arm64.

Pinning takes the version out of the vendored chart's hands: a chart
bump would bring a new appVersion while both pins kept naming the old
release, and the controller and the node plugin would drift apart from
the templates and from each other without anything noticing.
hack/proxmox-csi-driver-pin_test.bats fails unless the chart's
appVersion and both pins name the same release.

The sig-storage sidecars stay on tags, as they do for the KubeVirt CSI
driver: registry.k8s.io publishes them through image promotion, which
does not overwrite a tag.

Assisted-by: LLM
Signed-off-by: Marian Koreniuk <moriarti@cp.if.ua>
(cherry picked from commit 780b068)
@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

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
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Marian Koreniuk (themoriarti) added a commit to themoriarti/website that referenced this pull request Oct 30, 2026
The page used the capmox token in step 1 and created it in step 2, and
showed bundles.enabledPackages as a values fragment without saying how to
set it. Order the steps so each uses only what exists, give the Package
patch, and add the CCM Secret the example references. Link the page from
the deployment guide, which had no path to it.

Carry the four v1.7 corrections from cozystack#782 to next/.

v1.7.0 runs proxmox-cloud-controller-manager:v0.15.0, a tag that now
resolves to a build that panics at start, so the v1.7 copy gets the image
override until the backport in cozystack/cozystack#5150 is released.

Assisted-by: LLM
Signed-off-by: Marian Koreniuk <moriarti@cp.if.ua>
@themoriarti

Copy link
Copy Markdown
Collaborator

Aleksei Sviridkin (@lexfrei) myasnikovdaniil this backport missed the v1.7.0 cut, and without it the Proxmox substrate does not work on that release. Could you approve the workflows here and merge it for the next v1.7 patch?

v1.7.0 runs proxmox-cloud-controller-manager:v0.15.0. That tag now resolves to sha256:d81702998ae1…, and the image panics at start:

panic: version string "0.15.0" doesn't match expected regular expression: "^v(\d+\.\d+\.\d+)"

So the CCM of every substrate: proxmox cluster crash-loops, and its workers keep the uninitialized taint.

What I checked on this branch:

CI has not run here: Pull Request, Pre-Commit Checks and API Review Gate are all waiting for approval (action_required), and the checks above don't replace them.

Until a release has this, cozystack/website#761 adds a kubectl set image workaround to the v1.7 docs. The next Helm upgrade of the cluster undoes it.

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