Skip to main content

Steward Control Plane Provider

Steward can act as a Cluster API Control Plane provider using the StewardControlPlane custom resource, which defines the control plane of a Tenant Cluster.

Here is an example of a StewardControlPlane:

kind: StewardControlPlane
apiVersion: controlplane.cluster.x-k8s.io/v1alpha1
metadata:
name: '${CLUSTER_NAME}'
namespace: '${CLUSTER_NAMESPACE}'
spec:
apiServer:
extraArgs:
- --cloud-provider=external
controllerManager:
extraArgs:
- --cloud-provider=external
dataStoreName: default
addons:
coreDNS: {}
kubeProxy: {}
konnectivity: {}
kubelet:
cgroupfs: systemd
preferredAddressTypes:
- InternalIP
network:
serviceType: LoadBalancer
version: ${KUBERNETES_VERSION}

You can use this as reference in a standard Cluster custom resource as controlplane provider:

kind: Cluster
apiVersion: cluster.x-k8s.io/v1beta1
metadata:
labels:
cluster.x-k8s.io/cluster-name: '${CLUSTER_NAME}'
name: '${CLUSTER_NAME}'
namespace: '${CLUSTER_NAMESPACE}'
spec:
controlPlaneRef:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: StewardControlPlane
name: '${CLUSTER_NAME}'
clusterNetwork:
pods:
cidrBlocks:
- '${PODS_CIDR}'
services:
cidrBlocks:
- '${SERVICES_CIDR}'
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: ... # your infrastructure kind may vary
name: '${CLUSTER_NAME}'

!!! info "Full Reference" For a full reference of the StewardControlPlane custom resource, please see the Reference APIs.

Getting started with the Steward Control Plane Provider

Cluster API Provider Steward is compliant with the clusterctl contract, which means you can use it with the clusterctl CLI to create and manage your Steward based clusters.

!!! info "Options for install Cluster API" There are two ways to getting started with Cluster API:

* using `clusterctl` to install the Cluster API components.
* using the Cluster API Operator. Please refer to the [Cluster API Operator](https://cluster-api-operator.sigs.k8s.io/) guide for this option.

Prerequisites

  • clusterctl installed in your workstation to handle the lifecycle of your clusters.
  • kubectl installed in your workstation to interact with your clusters.
  • Steward installed in your Management Cluster.

Initialize the Management Cluster

Use clusterctl to initialize the Management Cluster. When executed for the first time, clusterctl init will fetch and install the Cluster API components in the Management Cluster

clusterctl init --control-plane steward

As result, the following Cluster API components will be installed:

  • Cluster API Provider in capi-system namespace
  • Bootstrap Provider in capi-kubeadm-bootstrap-system namespace
  • Steward Control Plane Provider in steward-system namespace

In the next step, we will create a fully functional Kubernetes cluster using the Steward Control Plane Provider and the Infrastructure provider of choice.

For a complete list of supported infrastructure providers, please refer to the other providers page.