cluster-api-provider-cloudsigma

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2025 License: Apache-2.0

README

Cluster API Provider CloudSigma

Go Report Card License

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
2. Configure CloudSigma Credentials
# 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

Community

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:

Directories

Path Synopsis
api
v1beta1
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +kubebuilder:object:generate=true +groupName=infrastructure.cluster.x-k8s.io
ccm
cmd command
csi
cmd/controller command
cmd/node command
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL