Skip to content

docs(design-proposals): add Proxmox LXC containers for tenants - #117

Open
Marian Koreniuk (themoriarti) wants to merge 1 commit into
cozystack:mainfrom
themoriarti:design/proxmox-lxc-containers
Open

Marian Koreniuk (themoriarti) wants to merge 1 commit into
cozystack:mainfrom
themoriarti:design/proxmox-lxc-containers

Conversation

@themoriarti

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

Copy link
Copy Markdown

What

A design proposal for an lxc-instance tenant application on Proxmox-backed installations: one kubemox Container per release, rendered from a platform catalog image, a size, networks of the tenant's namespace (the zone and pools of #104) and SSH keys. Tenants never choose a node, storage, bridge, VLAN, address, image file or OCI reference.

Why now

#98 lists LXC containers as a non-goal of the support tier. This proposal is where they are handled, and it records why kubemox Container cannot be given to tenants as it is today.

What was tested

kubemox Container was run on a single-node Proxmox VE 9.2 lab: two containers from OCI images, one more from another image, and a full and a linked clone of an unprivileged template. The table in the proposal has the results. The ones that shape the design:

  • Two objects with the same spec.name bind the same container, and deleting one destroys the other's container.
  • A container stopped or deleted outside Kubernetes is not repaired until the spec changes. The watcher compares only cores and memory, against a cached object that a token-authenticated client never refreshes.
  • A delete whose container is already gone returns while holding a package mutex shared with the VM code, and the Container controller stops. This happened twice in one run, after a finalizer update conflict.
  • The clone path ignores template.disk and template.network. The OCI path always renders ip=dhcp on the first NIC. There is no way to set a VLAN, an address or SSH keys.
  • oci-registry-pull needs Sys.AccessNetwork on the node, so an operator token without it cannot pull. The proposal keeps it that way: the admin places images, and tenants pick catalog entries.

The kubemox changes (K1–K7 in the proposal) are listed with what each one fixes. They come first in the rollout, as upstream PRs to alperencelik/kubemox.

Related

Proposes an lxc-instance application that renders one kubemox
Container per release: a catalog image, a size, networks of the
tenant's namespace from the Proxmox tenant networks zone, a static
address from the network's pool and SSH keys. The platform owns the
node, storage, bridge, VLAN and image file.

A live test of kubemox Container on a Proxmox VE 9.2 lab is recorded
in the proposal: two objects can bind one container by hostname, an
out-of-band stop or delete is not repaired, a delete of a missing
container leaks a mutex shared with the VM code, and a container
cannot be put on a VLAN with an address or keys. The kubemox changes
that close these gaps come before the application in the rollout.

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

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

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: e37984a9-efde-4e89-a37b-b7954cbb05b0
  • 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.

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