Skip to content

[Feature]: Kubernetes cluster deployment and lifecycle management #515

Description

@sysamu

Feature Description

Native Kubernetes cluster deployment and lifecycle management integrated into ProxCenter UI. Users would provision K8s-ready VM clusters (K3s or kubeadm) directly from the dashboard — defining cluster topology, VM sizes, node placement, and optional DNS records — then bootstrap Kubernetes with one click.

Problem / Use Case

Deploying Kubernetes on Proxmox today requires stitching together multiple CLI tools manually: Terraform for VMs, Ansible for K3s/kubeadm bootstrap, separate DNS configuration, and manual MetalLB/ingress setup. There is no unified tool that leverages Proxmox's native capabilities (pools, templates, cloud-init, DRS, HA) to orchestrate this end-to-end. ProxCenter already sits as the management layer above Proxmox — it is the natural place to close this gap.

Proposed Solution

A cluster wizard in the UI that lets users define cluster name, manager/worker count, VM size presets (S/M/L/XL), IP allocation, Proxmox node placement (round-robin or pinned), and template. ProxCenter would create VMs via the Proxmox API, group them in a pool, optionally create DNS records (pluggable: PowerDNS, Cloudflare, etc.), and bootstrap K3s, it can add to HA too or define affinity or anti affinity rules as already does. Day-2 operations would include scaling workers, downloading kubeconfig, upgrading K3s, and destroying the cluster. An open-source reference implementation already exists at github.com/sysamu/kluxter covering the Terraform + Ansible workflow that could serve as a starting point.

Alternatives Considered

No response

Category

Infrastructure Management

How important is this feature to you?

Nice to have

Additional Context

Hi Emmanuel,

First of all, great work on ProxCenter UI — having a single pane of glass for multi-cluster Proxmox management is exactly what the community needs.

The idea: Add native support for deploying and managing Kubernetes clusters (K3s or K8s) directly from the ProxCenter UI, similar to what Rancher does but tightly integrated with Proxmox as the hypervisor layer.

Why this would be valuable:

Today, deploying a K8s cluster on Proxmox requires stitching together multiple tools manually — Terraform to provision VMs, Ansible to bootstrap K3s/K8s, PowerDNS or similar for DNS records, plus manual MetalLB and ingress configuration. There is no unified tool that leverages Proxmox's native capabilities (pools, templates, cloud-init, HA, node affinity) to orchestrate this end-to-end.

ProxCenter is already positioned as the management layer above Proxmox — adding K8s lifecycle management would make it unique in the ecosystem.

Proposed workflow (from the UI):

Cluster wizard — User defines:

Cluster name, environment (dev/staging/prod)
Number of control plane nodes and workers
VM size (S/M/L/XL presets or custom CPU/RAM/disk)
IP range allocation (managers, workers, LoadBalancer VIPs)
Target Proxmox nodes for placement (round-robin or manual pinning)
Template to clone (Debian, Ubuntu, etc.)
K8s distribution: K3s (default) or kubeadm
Provisioning — ProxCenter handles:

VM creation with cloud-init (leveraging existing Proxmox API integration)
Proxmox pool creation for the cluster
Optional DNS record creation (PowerDNS, Cloudflare, etc.)
DNS collision safety check (refuse to overwrite existing records)
K3s/K8s bootstrap: init first server, extract join token, join agents
Kubeconfig extraction and download
Day-2 operations:

Scale workers up/down (add/remove VMs + join/drain nodes)
Cluster overview dashboard: node status, resource usage, pod count
Kubeconfig download button
Upgrade K3s/K8s version (rolling restart)
Destroy cluster (with confirmation and optional DNS cleanup)
Optional add-ons (post-deploy):

MetalLB (L2 mode, user-defined IP pool)
Ingress controller (Traefik or Nginx)
Monitoring stack (kube-prometheus-stack)
ArgoCD
ExternalDNS
Why ProxCenter specifically:

You already have the Proxmox API integration, multi-cluster support, RBAC, and VM console access
Proxmox lacks a native Cluster Autoscaler, but ProxCenter could implement VM-level scaling triggered by K8s metrics
The VM placement logic (node affinity, anti-affinity for HA) maps naturally to Proxmox node selection
Pool management is already in scope — grouping K8s VMs into a Proxmox pool is a natural extension
Multi-tenant support could map to isolated K8s clusters per tenant
Comparable tools (and why they don't solve this):

Rancher: Great for K8s management, but has no Proxmox integration — can't provision VMs
Harvester: Requires dedicated bare metal, doesn't work on top of existing Proxmox clusters
Talos/Sidero: Bare-metal focused, complex setup on Proxmox
Terraform + Ansible: Works but requires CLI expertise, no UI, no day-2 management
This would position ProxCenter as the first Proxmox-native tool that provides a full Kubernetes lifecycle — from VM provisioning through cluster management — in a single UI.

Thanks!

Contribution

  • I would be willing to help implement this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions