Releases: cloudscale-ch/cluster-api-provider-cloudscale
Release list
v1.0.1
What's Changed
- chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the actions group across 1 directory by @dependabot[bot] in #45
- chore(deps): bump the all-minor-patch group across 1 directory with 8 updates by @dependabot[bot] in #46
- cluster(lb): fix load balancer stuck degraded during bootstrap by @mweibel in #51
- chore(deps): bump the all-minor-patch group with 2 updates by @dependabot[bot] in #49
- chore(deps): bump the actions group with 2 updates by @dependabot[bot] in #50
- chore: adjust linting configuration by @mweibel in #47
Full Changelog: v1.0.0...v1.0.1
v1.0.0
This is the first stable release of CAPCS. 🎉
See docs/getting-started.md for a quick start guide.
What CAPCS provisions on cloudscale.ch
- Servers for control plane and worker
Machines, placed in server groups for anti-affinity. - Networks — either managed by CAPCS or an existing network you supply.
- Load balancers for the control plane endpoint (public or private), with pool members reconciled as machines come and go.
- Floating IPs as an alternative control plane endpoint, either CAPCS-managed or pre-existing.
- Dual-stack (IPv4 + IPv6) where the flavor supports it.
Cluster API features supported
In addition to the standard features required, CAPCS supports:
- ClusterClass / topology: the shipped
quick-startClusterClass (templates/cluster-class.yaml) plus thetopologyflavor. See getting-started → topology flavor. - Scale-from-zero:
CloudscaleMachineTemplatepublishesstatus.capacity(cpu, memory) so the cluster autoscaler can size MachineDeployments from zero replicas. - Per-cluster credentials via
CloudscaleCluster.spec.credentialsRef.
Cluster templates
Five flavors ship as release assets, covering managed and pre-existing networks, public LB and floating-IP endpoints, and private-only nodes behind a NAT gateway. Matrix: getting-started → flavors.
Operations
- Webhooks own all defaulting and validation, including immutability of region/zone/network config.
- Observability: controller-runtime metrics on
:8443, opt-in OpenTelemetry tracing and pprof. Details:docs/observability.md. - Tested against Kubernetes v1.34.x-v1.36.x.
What's Changed since v0.1.0-beta.3
Full Changelog: v0.1.0-beta.3...v1.0.0
v1.0.0-rc.1
What's Changed
Full Changelog: v0.1.0-beta.3...v1.0.0-rc.1
v0.1.0-beta.3
What's Changed
- Kubebuilder upgrade v4.14.0 by @mweibel in #37
- fix AI-quality findings: BeZero endpoint, FloatingIP test coverage, sed/cancel cleanup by @mweibel in #38
- Improve documentation by @mweibel in #33
- chore: add csi and observability addon templates by @mweibel in #39
- chore(deps): bump golang from 1.26 to 1.26.3 by @dependabot[bot] in #40
- chore(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 in the actions group by @dependabot[bot] in #41
- feat: Observability by @mweibel in #36
Full Changelog: v0.1.0-beta.2...v0.1.0-beta.3
v0.1.0-beta.2
What's Changed
- Configuration for the number of concurrent cluster and machine reconciliations is now possible via controller flags.
- ClusterClass support
- Overall controller resiliency has been improved, ensuring that edge cases do not result in logic failure. This includes timeout handling for all reconciles and API calls.
- A bug concerning node upgrades and LoadBalancer has been resolved (reported by @mdnix - thanks!).
- The build now utilizes Go 1.26, along with upgraded dependencies.
⚠️ Breaking Changes
As part of this beta release, the following minor changes have been implemented in CRDs:
- Removal of
CloudscaleCluster.spec.controlPlaneLoadBalancer.ipFamily: This field has been removed because the LoadBalancer’s IP Family is determined dynamically by the network it is provisioned into. - Tightened Validation for
ipFamily: Input validation has been restricted, ensuring that only semantically appropriate values are permitted in certain contexts.
Changelog
- Improve resiliency by @mweibel in #31
- consolidate test helpers and reduce duplication by @mweibel in #35
- feat: add ClusterClass support by @mweibel in #32
- chore(deps): bump the all-minor-patch group across 1 directory with 11 updates by @dependabot[bot] in #34
Full Changelog: v0.1.0-beta.1...v0.1.0-beta.2
v0.1.0-beta.1
⚠️ This is a pre-release. CAPCS v0.1.0-beta.1 is the first public beta and is not recommended for production use.
APIs and behavior may change before the stable v0.1.0 release.
What's New
This is the first release of the Cluster API InfraProvider for cloudscale.ch (CAPCS).
Features
- Cluster Lifecycle —
CloudscaleClustersupports managed networks, pre-existing networks, load balancers, and
floating IPs. - Machine Provisioning —
CloudscaleMachineprovisions cloudscale.ch servers with cloud-init and configurable
network interfaces. - Private Networking — Multiple cluster templates for public-LB/private-nodes and floating-IP topologies.
- Autoscaling from Zero — Machine capacity reporting enables cluster-autoscaler scale-from-zero.
- E2E Test Suite — Lifecycle, HA, upgrade, self-hosted, MD-remediation, and Kubernetes conformance tests.
Cluster Templates
| Flavor | Network | Control-Plane Endpoint | Notes |
|---|---|---|---|
| (default) | Managed (10.100.0.0/24) |
Public LB (DualStack) | — |
fip |
Pre-existing | Floating IP (IPv4) | Requires CLOUDSCALE_NETWORK_UUID |
public-lb-private-nodes |
Pre-existing + NAT | Public LB | Requires NAT gateway |
pre-existing-network |
Pre-existing | Public LB (DualStack) | Requires CLOUDSCALE_NETWORK_UUID |
Quick Start
export CLOUDSCALE_API_TOKEN=<your-api-token>
clusterctl init --infrastructure cloudscale-ch-cloudscaleSee the README for environment variables and cluster generation examples.
Consult the official Cluster-API quickstart documentation for more information.
Known Limitations
- Beta APIs are subject to change.
- Some cloudscale.ch platform features may not yet be exposed.
v0.1.0-alpha.7
internal use only
Do not use yet
v0.1.0-alpha.6
internal use only
Do not use yet