Bare Metal Provider APIs

The Bare Metal Infrastructure Provider builds on elemental-operator and Cluster API. Operators interact with two CRD groups, both documented here:

  • infrastructure.cluster.x-k8s.io/v1beta1 — the provider's own resources.
  • elemental.cattle.io/v1beta1 — owned by elemental-operator; operators author registration and seed objects and may declare inventory-owned managed storage, while the provider reads, annotates, plans against, and updates storage lifecycle status on inventory objects.

Custom Resources

Provider resources (infrastructure.cluster.x-k8s.io/v1beta1)

ResourceDescriptionDocumentation
BaremetalClusterCluster-level infrastructure: control-plane VIP, endpoint, network type.BaremetalCluster
BaremetalMachineSingle infra machine bound to one MachineInventory.BaremetalMachine
BaremetalMachineTemplateTemplate that binds a pool to a KubeadmControlPlane or MachineDeployment.BaremetalMachineTemplate
MachineInventoryPoolAllowed set of MachineInventory names for a cluster.MachineInventoryPool

Elemental resources (elemental.cattle.io/v1beta1)

ResourceDescriptionDocumentation
MachineRegistrationRegistration URL + first-install cloud-config. Authored once per cluster.MachineRegistration
SeedImageTriggers ISO build with the registration baked in.SeedImage
MachineInventoryLong-lived host identity consumed by MachineInventoryPool; carries observed network, optional managed-storage desired state, objective storage observations, and provider-owned storage lifecycle status.MachineInventory

Upstream Cluster API resources

The provider also composes the following upstream resources without changing their schemas. Refer to the Cluster API reference for full schemas.

ResourceAPI groupPurpose
Clustercluster.x-k8s.io/v1beta1Top-level CAPI resource; carries the bare-metal-specific cpaas.io/* annotations.
KubeadmControlPlanecontrolplane.cluster.x-k8s.io/v1beta1Owns control-plane Machine lifecycle and kubeadm config.
MachineDeploymentcluster.x-k8s.io/v1beta1Owns worker Machine lifecycle.
KubeadmConfigTemplatebootstrap.cluster.x-k8s.io/v1beta1Worker cloud-init user-data template.