Skip to main content

Bring Your Own Operating System (BYOOS)

The Bring Your Own Operating System (BYOOS) enables you to use a custom Operating System (OS) with Palette. Palette comes with several operating systems out-of-the-box, but the existing OS list may not meet all users' needs.

Using your custom OS provides several benefits, including the ability to control your own dependencies, improve performance, and ensure compatibility with your existing applications. With BYOOS, you can choose the OS that best fits your needs, whether it's a commercial or open-source distribution, and integrate it with your Kubernetes clusters. The BYOOS pack can be used with both Edge and non-Edge environments.

Versions Supported


Prerequisites


  • The Edge Provider images you have created and uploaded to a container registry. Refer to the Build Edge Artifacts guide for steps on how to create the Edge artifacts and how to upload your custom OS to a registry.

  • Palette 3.3.0 or greater.

Parameters

The BYOS Edge OS pack supports the following parameters.

Parameters

ParameterDescriptionType
pack:content:Specifies the content of the BYOS Edge OS pack.map
pack.content.imagesSpecifies a list of OS images to use with the pack.list
pack.content.images.imageAn OS image to use with the pack.string
system.uriSpecifies the location of BYOOS image.string
providerCredentials.registrySpecifies the private registry for the cluster from which to pull images. If you are using a Harbor registry, provide the Harbor domain and the project's name. For example, harbor.spectrocloud.com/default. If you are using a Docker registry, provide the domain of the registry. For example, registry-1.docker.io.string
providerCredentials.usernameSpecifies the username used for authentication with a private registry.string
providerCredentials.passwordSpecifies the password used for authentication with a private registry.string
providerCredentials.certificateSpecifies the X509 certificate used for authentication and encryption with a private registrystring
providerCredentials.encodedPasswordSpecifies whether the password as given is base64 encoded.true means that the provided password is base64 encoded and that when using the password to authenticate, the password must be decoded first. false means the password is not encoded and must be used as is to authenticate with the registry. Default is false.bool
pack:
content:
images:
- image: '{{.spectro.pack.edge-native-byoi.options.system.uri}}'
# - image: example.io/my-other-images/example:v1.0.0
# - image: example.io/my-super-other-images/example:v1.0.0
providerCredentials:
registry: registry-1.docker.io
user: user
password: ******
certificates: |
-----BEGIN CERTIFICATE-----
MIIDVzCCAj+gAwIBAgIRANtGPo/hFkZtYRNw0KaeW54wDQYJKoZIhvcNAQELBQAw
----------------------------------------------------------------
7OicCaV35lje5FSl0owu74ghAlCgMyAdKsJf615g1kKO4V5E2BMErd9Ibw==
-----END CERTIFICATE-----


options:
system.uri: example.io/my-images/example-custom-os:v1.4.5

Usage

BYOOS enables you to use a custom OS for your Edge host. You can use this feature to customize the desired specifications of your OS layer in the Edge host. You can reference the custom OS through the BYOOS pack.

To use a custom OS, you must include all the Edge artifacts and provider images required by the Edge Installer in the custom OS. Refer to the Build Edge Artifacts guide for steps on how to create a custom OS that includes all the required components for the Edge Installer.

Select the BYOOS pack and fill out the required parameters during the cluster profile creation process. The system.uri parameter specifies the location of the BYOOS image. Refer to the Build Edge Artifacts guide to learn how to create Edge Artifacts.

A view of the Kubernetes pack editor with a YAML configuration

Prerequisites

To use the non-Edge BYOOS pack, you must have the following:


  • A custom OS that you created. Refer to the Build Edge Artifacts guide to learn how to create a custom OS for Palette.

Parameters

The following is a list of parameters required when using the BYOOS pack.


ParameterDescriptionType
osImageOverrideThe image ID used as the base OS layer. This is the image ID as assigned in the infrastructure environment the image belongs to. Example: ami-0f4804aff4cf9c5a2string
osNameThe name of the OS distribution. Example: rhelstring
osVersionThe version of the OS distribution. Example: "8"string

Usage

Use the BYOOS pack when selecting the OS layer during the cluster profile creation. Use the following information to find the BYOOS pack.

  • Pack Type: OS
  • Registry: Public Repo
  • Pack Name: Bring Your Own OS (BYO-OS)
  • Pack Version: 1.0.x or higher
info

Check out the Cluster Profiles reference to learn about profile types and how to create a cluster profile.


Fill out the required parameters with information about your custom OS, such as the ID, OS distribution, and version.


pack:
osImageOverride: "ami-0f4804aff4cf9c5a2"
osName: "rhel"
osVersion: "8"

View of the cluster profile wizard

Check out the Build Edge Artifacts guide to learn to create a custom image for Palette.



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:


Terraform

You can retrieve details about the BYOOS Edge OS agent pack using the following Terraform code.


data "spectrocloud_registry" "public_registry" {
name = "Public Repo"
}

data "spectrocloud_pack_simple" "byoos" {
name = "edge-native-byoi"
version = "1.0.0"
type = "helm"
registry_uid = data.spectrocloud_registry.public_registry.id

References