Bring your own OS (BYOOS)
Versions Supported
- 1.0.x
Reference Custom Image
Different infrastructure providers have different ways of referencing custom images. The following table provides examples of how to reference custom images for different infrastructure providers.
| Provider | Example Image ID | osImageOverride Value | Notes |
|---|---|---|---|
| AWS | ami-0f4804aff4cf9c5a2 | ami-0f4804aff4cf9c5a2 | Ensure the AMI is available in the same region as the workload cluster. |
| Azure | https://docs.blob.core.windows.net/vhds/ubuntu20-1243.vhd | https://docs.blob.core.windows.net/vhds/ubuntu20-1243.vhd | You must reference the Azure blob URL of a Virtual Hard Disk (VHD). Image Gallery ID reference is not supported. |
| Vmware vSphere | r_u-2004-0-k-1243-0-new.ova | path/to/template/r_u-2004-0-k-1243-0-new.ova | Point to the path to where the custom template is located. Palette and VerteX expect OVAs to have the r_u- prefix. |
| Vmware vSphere | rhel-8-kube-v1.27.11 | path/to/template/rhel-8-kube-v1.27.11 | Point to the path to where the custom template is located. |
| MAAS | rhel-9-kube-v1.30.6 | rhel-9-kube-v1.30.6 | Reference an existing image in MAAS by name. You must also set osName and osVersion. Refer to MAAS BYOOS Configuration below. |
| MAAS | https://example.com/rhel-9-kube-v1.30.6.tar.gz | https://example.com/rhel-9-kube-v1.30.6.tar.gz | Palette downloads the image from the HTTP(S) URL and imports it into MAAS. You must also set osName and osVersion. Refer to MAAS BYOOS Configuration below. |
Image creation tools are available to help you create custom OS images for the infrastructure provider you are using. The following is a list of commonly used tools for creating a custom OS:
MAAS BYOOS Configuration
The BYOOS pack for MAAS clusters supports non-Ubuntu operating systems, such as Red Hat Enterprise Linux (RHEL), Rocky Linux, and SUSE Linux Enterprise Server (SLES), in addition to Ubuntu.
BYOOS on MAAS requires setup on the MAAS server before you deploy a cluster. Place the appropriate
curtin_userdata_preseed files for the target OS on the MAAS server so that machine deployment completes
successfully. Refer to this troubleshooting guide for more information.
Configure the following BYOOS pack fields for MAAS:
| Field | Description |
|---|---|
osImageOverride | Reference the custom image as an HTTP(S) URL that Palette downloads and imports into MAAS, or as the name of an existing image in MAAS. |
osName | The OS name that MAAS uses to identify the image. Examples include ubuntu, rhel, rocky, and sles. |
osVersion | The OS version. For non-Ubuntu operating systems, use the numeric version, such as 9.4 or 8. For Ubuntu, use the Ubuntu release codename instead of the numeric version — jammy for 22.04 or noble for 24.04. |
Palette derives the MAAS boot resource name as <osName>/<image-name> and the base_image as <osName>/<osVersion>.
MAAS uses the OS prefix in the boot resource name to recognize the operating system.
For backward compatibility, if Palette does not find an image with the derived prefix in MAAS, it reuses an existing
unprefixed image with the same name. If Palette cannot locate a matching image and no URL is provided for
osImageOverride, cluster provisioning fails and the MAAS validation message is displayed in the cluster events.
When osImageOverride is an HTTP(S) URL for an Ubuntu BYOOS pack, MAAS places the imported image under the
Other/Custom folder instead of the Ubuntu OS family folder.
This capability is available on Palette and VerteX, including airgap deployments.
Terraform
You can retrieve details about the BYOOS pack by using the following Terraform code.
data "spectrocloud_registry" "public_registry" {
name = "Public Repo"
}
data "spectrocloud_pack_simple" "byoos" {
name = "generic-byoi"
version = "1.0.0"
type = "helm"
registry_uid = data.spectrocloud_registry.public_registry.id
}