Back

Self-managed Kubernetes on evroc: An Introduction to CAPE

#Engineering
Self-managed Kubernetes on evroc: An Introduction to CAPE

If you want to run Kubernetes on evroc, you broadly have two choices. You can build a cluster by hand — provisioning VMs, installing kubeadm, joining nodes, and wiring up networking yourself — or you can let automation handle the heavy lifting. Today, we announce CAPE, the Cluster API Infrastructure Provider for evroc, the automated way to deploy a self-managed Kubernetes cluster on evroc.

In this post, we'll dig into what CAPE is, how it fits into the wider Cluster API ecosystem, and why it's the natural path for those interested in self-managed Kubernetes on evroc.

The trouble with hand-rolled clusters

Building a Kubernetes cluster manually is fine for a proof of concept. It doesn't scale well beyond that:

  • Repetition - every cluster means the same manual steps, which invites drift and mistakes.
  • No declarative lifecycle - upgrades, scaling, and teardowns become bespoke scripts.
  • No recovery story - if a node dies, rebuilding it consistently is on you.

What you really want is to treat a Kubernetes cluster the way you treat the workloads running on it: as a declarative resource that a controller reconciles for you.

Cluster API in one minute

Cluster API (CAPI) is a Kubernetes project that does exactly that. It defines custom resources — Cluster, Machine, MachineDeployment, and friends — that describe the shape of a cluster, and a set of controllers that reconcile those resources into a real, running cluster.

CAPI splits the work across providers:

A Tour of the evroc Cloud(11).png

  • Control Plane provider - handles the Kubernetes control plane and node configuration.
  • Infrastructure provider - handles the VMs, networks, and load balancers the cluster runs on.
  • Bootstrap provider - handles turning a blank VM into a Kubernetes node (usually using cloud-init and kubeadm).

CAPE is the infrastructure provider for evroc. It knows how to create evroc VMs and the supporting resources a cluster needs, and hands them back to CAPI to be bootstrapped into nodes.

The "bottom turtle" pattern

Here's the part that trips people up the first time. Cluster API needs a Kubernetes cluster to run in — the controllers and CRDs have to live somewhere. That somewhere is called the management cluster. The clusters it creates are workload clusters.

So you start with one small cluster (the "bottom turtle") and use it to stamp out as many workload clusters as you need. On evroc, CAPE runs inside that management cluster and talks to the evroc API on your behalf to stand up the VMs that become your workload clusters.

Why use CAPE on evroc?

  • Declarative clusters - define a cluster in YAML, apply it, and let CAPE converge reality to match.
  • Repeatable and versionable - your cluster definition lives in Git alongside your application manifests.
  • Native tooling - clusterctl, kubectl, and the wider CAPI ecosystem all work out of the box.
  • Day-2 operations - scaling nodes, upgrading Kubernetes, and rolling out new machine deployments are first-class workflows, not ad-hoc scripts.
  • Define highly-available cross-zone clusters - CAPI is built on top of evroc's regional load balancer service, and multi-zone compute service, which allows for virtual machines to be deployed into geographically isolated zones, unlocking the ability to deploy high-availability applications on top of the highly available infrastructure.

How to get started

CAPE's Quick Start guide walks through the end-to-end flow:

  1. Set up a management cluster.
  2. Install CAPE and the Cluster API core providers into that cluster.
  3. Create an evroc service account and store its credentials as a secret in the management cluster.
  4. Apply Cluster and related resources describing the workload cluster you want.
  5. CAPE provisions the evroc VMs and CAPI bootstraps them into a running cluster.

Once the cluster is up, CAPE writes a kubeconfig to a secret in the management cluster, so clusterctl and kubectl can talk to the new cluster right away.

Where to go next

Happy clustering!

Written by

Andrew Lee is a Senior Software Engineer at evroc in London. He builds evroc’s compute and network offerings. Before joining evroc, Andrew worked at Microsoft on Azure 5G. Outside work, Andrew performs improv, plays cricket, and builds contraptions for escape rooms.

Computenetworking

The European Cloud

A better cloud. Built for AI.

Evroc logo

The European Cloud

© 2026 evroc AB
Cloud 1Cloud 2