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
- 1.0.x
- Edge
- Non-Edge
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
Parameter | Description | Type |
---|---|---|
pack:content: | Specifies the content of the BYOS Edge OS pack. | map |
pack.content.images | Specifies a list of OS images to use with the pack. | list |
pack.content.images.image | An OS image to use with the pack. | string |
system.uri | Specifies the location of BYOOS image. | string |
providerCredentials.registry | Specifies 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.username | Specifies the username used for authentication with a private registry. | string |
providerCredentials.password | Specifies the password used for authentication with a private registry. | string |
providerCredentials.certificate | Specifies the X509 certificate used for authentication and encryption with a private registry | string |
providerCredentials.encodedPassword | Specifies 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.
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.
Parameter | Description | Type |
---|---|---|
osImageOverride | The 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-0f4804aff4cf9c5a2 | string |
osName | The name of the OS distribution. Example: rhel | string |
osVersion | The 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
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"
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
- Edge
- Non-Edge
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
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