Skip to content

docs(kubernetes): describe the Proxmox VE substrate for tenant clusters - #761

Open
Marian Koreniuk (themoriarti) wants to merge 2 commits into
cozystack:mainfrom
themoriarti:docs/proxmox-substrate
Open

Marian Koreniuk (themoriarti) wants to merge 2 commits into
cozystack:mainfrom
themoriarti:docs/proxmox-substrate

Conversation

@themoriarti

@themoriarti Marian Koreniuk (themoriarti) commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Adds docs/next/kubernetes/proxmox-substrate.md: an operator page for substrate: proxmox on the kubernetes / kubernetes-nodes applications (cozystack/cozystack#4087, #4088, #4089, #4742), which ships opt-in in v1.7.0-rc.1.

The page covers:

  • what runs where (capmox, in-cluster IPAM, Proxmox CCM and CSI controller in the management cluster; only the CSI node plugin in the tenant), and that the hypervisor token never enters the tenant;
  • a support matrix (Cozystack v1.7 / main, Proxmox VE 9.2.x verified, capmox v0.7.7);
  • enabling cozystack.capi-provider-infra-proxmox and the capmox-config Secret, with the three mistakes the chart comments call out (PROXMOX_URL without /api2/json, full token id, rotation needs a restart);
  • Proxmox user, tokens, resource pool and the per-tenant ACL table from the kubernetes chart README;
  • building the Talos template with hack/proxmox-talos-template.sh and why not from the bare-metal nocloud image;
  • Kubernetes and KubernetesNodes examples with the proxmox.* values as documented in values.yaml;
  • verification commands, the isolation model, the v1.7 limitations, and a troubleshooting table built from the failure modes described in the three PRs.

It is placed under Managed Kubernetes because substrate is a property of a tenant cluster; the provider guides under Install are about hosting Cozystack itself.

The steps are ordered so each uses only what already exists: capmox token, capmox-config Secret, then the kubectl patch on the Platform Package. install/_index.md gets a Proxmox VE section, since the page was not reachable from the deployment guide.

v1.7

The page reached v1.7/ through #782, which also corrected four lines; this carries those to next/ and applies the changes above to both copies.

The v1.7/ copy also warns about the CCM image: v1.7.0 runs proxmox-cloud-controller-manager:v0.15.0, and that tag now resolves to sha256:d81702998ae1…, which panics at start (version string "0.15.0" doesn't match expected regular expression). The warning gives a kubectl set image to v0.16.1 until cozystack/cozystack#5150 is released; remove it then.

What it does not do

Checks

  • Values and keys verified against packages/apps/kubernetes{,-nodes}/values.yaml and the kubernetes chart README on main (aed7fa896).
  • capmox privileges and env vars match the provider's docs/Usage.md; the CCM/CSI region meaning matches proxmox-cloud-controller-manager docs/config.md.
  • All hostnames, pools and address ranges in the examples are placeholders.
  • The Kubernetes and KubernetesNodes examples render with helm template on the v1.7.0 charts. The Deployment names come from that render.
  • Both CCM images were run: the v0.15.0 tag panics, v0.16.1 starts. The substrate itself has not been run live on the v1.7.0 tag.
  • Not built locally (no Hugo here); relying on the Netlify deploy preview.

Related: cozystack/cozystack#3481, cozystack/community#98, #741.

@netlify

netlify Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit c6c4e9c
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6ae4fd563320d8888221fe71
😎 Deploy Preview https://deploy-preview-761--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 539907a9-b63c-4a82-b238-345cda392f36
  • 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.

myasnikovdaniil added a commit that referenced this pull request Oct 30, 2026
v1.7.0 ships the Proxmox VE substrate for tenant Kubernetes workers and
its release notes lead with it, yet the v1.7 docs have no page for it:
#761 adds one to next/ only.

The page is #761's with the rewrite release_next.sh applies, checked
against the v1.7.0 tag. Four things did not hold there and are
corrected in this copy:

- KubernetesNodes has no replicas field; a pool is sized by minReplicas
  and maxReplicas, which the tag's own Proxmox e2e manifest sets.
- The CCM and CSI controller Deployments are <release>-pccm and
  <release>-pcsi-controller, and a Kubernetes release is named
  kubernetes-<name>, so the cluster px runs kubernetes-px-pccm. The
  verify command and the troubleshooting row now name those.
- bundles.enabledPackages is read only from the platform values on the
  cozystack.cozystack-platform Package; no cozystack ConfigMap feeds it.
- The CSI HelmRelease depends on the tenant's Cilium release, not on the
  CCM, which is a plain Deployment, so the troubleshooting fix only says
  to wait for the CCM.

next/ stays with #761.

Assisted-By: LLM
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
myasnikovdaniil added a commit that referenced this pull request Oct 30, 2026
v1.7.0 ships the Proxmox VE substrate for tenant Kubernetes workers and
its release notes lead with it, yet the v1.7 docs have no page for it:
#761 adds one to next/ only.

The page is #761's with the rewrite release_next.sh applies, checked
against the v1.7.0 tag. Four things did not hold there and are
corrected in this copy:

- KubernetesNodes has no replicas field; a pool is sized by minReplicas
  and maxReplicas, which the tag's own Proxmox e2e manifest sets.
- The CCM and CSI controller Deployments are <release>-pccm and
  <release>-pcsi-controller, and a Kubernetes release is named
  kubernetes-<name>, so the cluster px runs kubernetes-px-pccm. The
  verify command and the troubleshooting row now name those.
- bundles.enabledPackages is read only from the platform values on the
  cozystack.cozystack-platform Package; no cozystack ConfigMap feeds it.
- The CSI HelmRelease depends on the tenant's Cilium release, not on the
  CCM, which is a plain Deployment, so the troubleshooting fix only says
  to wait for the CCM.

next/ stays with #761.

Assisted-By: LLM
Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
myasnikovdaniil added a commit that referenced this pull request Oct 30, 2026
)

The v1.7 docs were cut from `next/` in
#780 while several docs PRs
about v1.7.0 behaviour were still open against `next/` only, so
`/docs/v1.7/` and the stable `/docs/` copy miss them. This adds their
content to `content/en/docs/v1.7/`, checked against the v1.7.0 tag.
Every page is the source PR's `next/` file with the same `/docs/next/`
rewrite that `hack/release_next.sh` does, except where noted.

- #763
- #747, hand-merged after
`networking.kubeovn.MASTER_NODES` because main got the
`networking.encryption.enabled` row after its base
- #761, with four corrections
below
- #762
- #766
- #764, the HTTPCache section
of the upgrade guide, in both `next/` and `v1.7/` on top of the fixes
from #781. I'm not carrying 764
further, this PR takes over its content.

Four lines of the Proxmox page are wrong for v1.7.0 and are fixed in the
v1.7 copy only. `replicas: 2` in the KubernetesNodes example is now
`minReplicas: 2` and `maxReplicas: 2`, there is no `replicas` field. The
CCM and CSI controller Deployments are `kubernetes-<cluster>-pccm` and
`kubernetes-<cluster>-pcsi-controller`. `bundles.enabledPackages` is set
on the `cozystack.cozystack-platform` Package, no ConfigMap feeds it.
The CSI release depends only on the tenant Cilium release, not on the
CCM, so I cut that clause. The `next/` copy in 761 needs the same fixes.

The `next/` side of 763, 747, 761, 762 and 766 and the `v1.6/` side of
763, 762 and 766 stay in their own PRs, so they still merge without
conflicts with this one. Nothing generated is committed, the stable
`/docs/` copies are built from `v1.7/` at build time.

Hugo production and preview builds, `hack/check-i18n.sh` and a link and
anchor check of every changed page pass locally, with the same Hugo
warnings as main.
Add a page under Managed Kubernetes for substrate: proxmox, the opt-in
option that runs the workers of a tenant cluster on an external Proxmox VE
cluster through capmox: what runs where, the support matrix, enabling the
packages, Proxmox user/token/pool setup with the privileges the charts
document, the Talos template script, Kubernetes and KubernetesNodes values,
verification, the isolation model, limitations and troubleshooting.

Assisted-by: LLM
Signed-off-by: Marian Koreniuk <moriarti@cp.if.ua>
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>

This branch has not been deployed

No deployments
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