Skip to content

ServerBootConfigurations

The ServerBootConfiguration Custom Resource Definition (CRD) is a Kubernetes resource used to signal the need to initiate a boot process for a bare metal server. It serves as an indicator for external components responsible for configuring network boot environments, such as PXE or HTTPBoot servers. The ServerBootConfiguration resource allows the metal-operator to delegate the boot preparation process to third-party operators like the boot-operator or tools like OpenStack Ironic.

Example ServerBootConfiguration Resource

apiVersion: metal.ironcore.dev/v1alpha1
kind: ServerBootConfiguration
metadata:
  name: my-server-boot-config
  namespace: defauilt
spec:
  serverRef:
    name: my-server
  image: my-osimage:latest
  ignitionSecretRef:
    name: my-ignition-secret

Integration with Third-Party Components

The actual preparation of the boot environment is performed by external components, which may include: - boot-operator: A custom operator that handles boot environment preparation as part of the IronCore project. - OpenStack Ironic: A service for managing and provisioning bare metal servers.

These components watch for ServerBootConfiguration resources and perform the necessary actions to set up the boot environment according to the specifications provided.

Why externalizing the boot preparation to a Third-Party?

Separation of Concerns: By abstracting the boot preparation into a separate resource, the metal-operator remains agnostic to the specifics of the boot process, allowing for flexibility in different deployment scenarios.

Custom Implementations: Users can implement their own components to handle the ServerBootConfiguration, enabling integration with various provisioning systems or custom workflows.

Reconciliation Process

The ServerReconciler checks the ServerBootConfiguration status before powering on the server. Servers are not powered on until the boot environment is confirmed to be ready.