Cluster API Provider CloudSigma

Kubernetes Cluster API infrastructure provider for CloudSigma.
Overview
The Cluster API Provider CloudSigma (CAPCS) enables declarative Kubernetes cluster creation, configuration, and management on CloudSigma infrastructure using the Kubernetes Cluster API.
Features
- ✅ Native Kubernetes Integration - Manage CloudSigma infrastructure with Kubernetes APIs
- ✅ Declarative Cluster Management - Define clusters as code using Kubernetes manifests
- ✅ Full Lifecycle Management - Create, scale, upgrade, and delete clusters
- ✅ Multi-Region Support - Deploy across CloudSigma datacenters (Zurich, Las Vegas, San Jose, Tokyo)
- ✅ CloudSigma Go SDK - Built on official CloudSigma Go SDK
- ✅ Cloud Controller Manager - Native Kubernetes cloud provider integration
- ✅ Production Ready - Designed for production workloads
Project Status
🚧 Alpha - Active development, not yet ready for production use.
See ROADMAP.md for planned features and timeline.
Documentation
Architecture
Management Cluster
├── Cluster API Core
├── CAPCS Controllers
│ ├── CloudSigmaMachine Controller
│ └── CloudSigmaCluster Controller
└── CloudSigma SDK Client
│
▼ (CloudSigma API)
CloudSigma Infrastructure
├── Servers (VMs)
├── Networks (VLANs)
└── Storage (Drives)
Custom Resources
CAPCS provides the following Kubernetes custom resources:
- CloudSigmaCluster - Represents a CloudSigma cluster infrastructure
- CloudSigmaMachine - Represents a CloudSigma server (VM)
- CloudSigmaMachineTemplate - Template for creating CloudSigmaMachine instances
See CRD Documentation for detailed specifications.
Prerequisites
- Kubernetes cluster v1.26+ (management cluster)
- Cluster API v1.7.0+ installed
- CloudSigma account with API access
- kubectl v1.26+
- Go 1.21+ (for development)
Quick Start
1. Install CAPCS Provider
# Install the CloudSigma CAPI provider
kubectl apply -f https://raw.githubusercontent.com/kube-dc/cluster-api-provider-cloudsigma/main/config/install.yaml
# Or from local config
kubectl apply -f config/install.yaml
# Create secret with CloudSigma credentials
kubectl create secret generic cloudsigma-credentials \
--namespace=capcs-system \
--from-literal=username='your-email@example.com' \
--from-literal=password='your-api-password' \
--from-literal=region='zrh'
# Verify provider is running
kubectl get pods -n capcs-system
kubectl logs -n capcs-system -l control-plane=controller-manager
3. Install CRDs
# Install CloudSigma CRDs
kubectl apply -f config/crd/bases/
4. Deploy CloudSigma Workers
# Create workers using an example
kubectl apply -f examples/cloudsigma-test-cluster.yaml
# Watch machines being created
kubectl get cloudsigmamachines -A -w
5. Access Worker Nodes
# Check worker nodes joining the cluster
kubectl get nodes
# View machine details
kubectl describe cloudsigmamachine <machine-name>
Example Cluster
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
name: my-cluster
namespace: default
spec:
clusterNetwork:
pods:
cidrBlocks:
- 10.220.0.0/16
services:
cidrBlocks:
- 10.96.0.0/12
controlPlaneRef:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
name: my-cluster-control-plane
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: CloudSigmaCluster
name: my-cluster
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: CloudSigmaCluster
metadata:
name: my-cluster
namespace: default
spec:
region: zrh
vlan:
cidr: "10.220.0.0/16"
credentialsRef:
name: cloudsigma-credentials
namespace: default
See examples/ for more configurations.
Development
Prerequisites
Setup Development Environment
# Clone repository
git clone https://github.com/kube-dc/cluster-api-provider-cloudsigma.git
cd cluster-api-provider-cloudsigma
# Install dependencies
go mod download
# Install CRDs
make install
# Run controller locally
make run
Running Tests
# Unit tests
make test
# Integration tests (requires CloudSigma credentials)
make test-integration
# E2E tests
make test-e2e
Building
# Build binary
make build
# Build Docker image
make docker-build IMG=myrepo/capcs:dev
# Push Docker image
make docker-push IMG=myrepo/capcs:dev
Contributing
Contributions are welcome! Please read our Contributing Guide for details on:
- Code of Conduct
- Development workflow
- Pull request process
- Coding standards
Roadmap
See ROADMAP.md for current status and future plans.
Current Phase: Alpha Development
- Project setup
- CRD definitions
- CloudSigma SDK integration
- Controller implementation
- Worker node images (Ubuntu 24.04 + K8s)
- Docker image build and deployment
- Basic documentation
- Comprehensive testing framework
- E2E test suite
Next Phase: Beta Release
- Cloud Controller Manager (separate project)
- Advanced networking features
- Multi-region support optimization
- Production hardening
- Performance benchmarking
- Security audit
License
Copyright 2025 Kube-DC Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Acknowledgments
Built with: