Welcome to the Vitistack documentation!
- Quick Start Guide - Get up and running in 5 minutes
- CRD Reference - Complete reference for all Custom Resource Definitions
Vitistack provides the following CRDs for infrastructure management:
| CRD | Purpose | Short Name |
|---|---|---|
| Machine | Virtual machine provisioning | m |
| MachineProvider | Machine provider configuration | mp |
| NetworkConfiguration | Network topology | netconf |
| NetworkNamespace | Network isolation | netns |
| KubernetesCluster | K8s cluster management | kc |
| KubernetesProvider | K8s provider config | kp |
| ControlPlaneVirtualSharedIP | Control plane VIP | cpvip |
| VitiStack | Complete infrastructure stack | vs |
| ProxmoxConfig | Proxmox configuration | pxc |
| KubevirtConfig | KubeVirt configuration | kvc |
- Quick Start Guide - First steps with Vitistack
- CRD Reference - Detailed CRD documentation
- Go Libraries - Complete guide to all Go packages
See the examples directory for working examples.
- Go Package Documentation - Full API reference
- CRD API Types - Go type definitions for CRDs
helm install vitistack-crds oci://ghcr.io/vitistack/vitistack-crds --version 0.1.0kubectl apply -f https://github.com/vitistack/common/releases/latest/download/crds.yamlgo get github.com/vitistack/common@latestUse the Machine CRD to declaratively manage VMs across multiple providers.
kubectl apply -f examples/machine-basic.yamlUse KubernetesCluster to provision and manage K8s clusters.
kubectl apply -f examples/kubernetes-cluster.yamlUse NetworkConfiguration to define network topology and VLANs.
kubectl apply -f examples/network-config.yamlVitistack follows a declarative, Kubernetes-native approach:
- CRDs define the desired state of infrastructure
- Controllers watch CRDs and reconcile actual state
- Providers interact with underlying infrastructure (Proxmox, KubeVirt, etc.)
┌─────────────┐
│ kubectl │
└──────┬──────┘
│
v
┌─────────────┐
│ Kubernetes │
│ API │
└──────┬──────┘
│
v
┌─────────────┐ ┌──────────────┐
│ CRDs │────>│ Controllers │
└─────────────┘ └──────┬───────┘
│
v
┌──────────────┐
│ Providers │
│ (Proxmox, │
│ KubeVirt) │
└──────────────┘
- Go 1.21+
- kubectl
- Access to a Kubernetes cluster
git clone https://github.com/vitistack/common
cd common
make buildmake testmake generateWe welcome contributions! Please see CONTRIBUTING.md for details.
- Define Go types in
pkg/v1alpha1/ - Add appropriate kubebuilder markers
- Run
make generate - Update documentation
- Add examples
- Issues: https://github.com/vitistack/common/issues
- Discussions: https://github.com/vitistack/common/discussions
- Documentation: https://github.com/vitistack/common/tree/main/docs
See LICENSE for details.