cluster-api-provider-cloudscale

module
v0.1.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2026 License: Apache-2.0

README

Cluster API Provider for cloudscale.ch

Kubernetes Cluster API infrastructure provider for cloudscale.ch.

Status: early development

Features

  • CloudscaleCluster: Network, Subnet, Load Balancer management
  • CloudscaleMachine: Server provisioning with cloud-init
  • CloudscaleMachineTemplate: Immutable machine templates for KubeadmControlPlane/MachineDeployment

Prerequisites

  • Go 1.25+
  • Docker
  • kubectl
  • Access to a Kubernetes cluster (kind for development)
  • cloudscale.ch API token

Development

This is a kubebuilder-scaffolded project. For new APIs, Webhooks, etc. kubebuilder commands should be used.

# Run tests
make test

# Generate manifests
make manifests

# Generate code
make generate

# Run E2E tests (requires CLOUDSCALE_API_TOKEN)
make test-e2e
Tilt

The easiest way to work on this provider is by using the Tilt setup of Cluster-API.

Refer to the linked documentation on how to set up your local tilt. This requires cloning Cluster-API core to your host. The necessary commands need to be executed in the Cluster-API core repository (not in this repository).

An example tilt-settings.yaml, which should also be placed in the Cluster-API core repository, is provided here:

default_registry: "" # change if you use a remote image registry
provider_repos:
  # This refers to your provider directory and loads settings
  # from `tilt-provider.yaml`
  - path/to/local/clone/cluster-api-provider-cloudscale
enable_providers:
  - cloudscale
  - kubeadm-bootstrap
  - kubeadm-control-plane
deploy_cert_manager: true
kustomize_substitutions:
  CLOUDSCALE_API_TOKEN: "INSERT_TOKEN_HERE"
  CLOUDSCALE_SSH_PUBLIC_KEY: "INSERT_SSH_PUBLIC_KEY_HERE"
  CLOUDSCALE_REGION: "lpg"
  CLOUDSCALE_CONTROL_PLANE_MACHINE_FLAVOR: "flex-4-2"
  CLOUDSCALE_WORKER_MACHINE_FLAVOR: "flex-4-2"
  CLOUDSCALE_MACHINE_IMAGE: "IMAGE_NAME"
  CLOUDSCALE_ROOT_VOLUME_SIZE: "50"
extra_args:
  cloudscale:
    - "--zap-log-level=5"
template_dirs:
  docker:
    - ./test/infrastructure/docker/templates
  cloudscale:
    - path/to/local/clone/cluster-api-provider-cloudscale/templates

License

Apache License 2.0

Directories

Path Synopsis
api
v1beta2
Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group.
Package v1beta2 contains API Schema definitions for the infrastructure v1beta2 API group.
internal
credentials
Package credentials handles cloudscale.ch API credential retrieval.
Package credentials handles cloudscale.ch API credential retrieval.

Jump to

Keyboard shortcuts

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