Skip to main content

Edge Installer Configuration Reference

The Edge Installer configuration user data accepts a parameter named stylus. In addition to the stylus parameter, the user data file also supports the use of cloud-init stages and other Kairos-supported parameters. The stylus.site parameter is how you primarily configure the Edge host, but you can also use cloud-init stages to customize the installation. Refer to the Site Parameters for a list of all the parameters supported in the stylus.site parameter block.

info

The #cloud-config value is a required cloud-init header required by the cloud-init standard.

Palette Agent Parameters

These parameters start with the prefix stylus. Palette agent parameters control various aspects of the Edge host's configuration, including networking, logging, services, as well as users and permissions. Parameters in this section are listed in alphabetical order.

ParameterDescriptionDefault
stylus.debugEnable this parameter for debug output. Allowed values are true or false.False
stylus.disablePasswordUpdateDisables the ability to update Operating System (OS) user password from Local UI if set to true. Updating the password through the OS and API is still allowed.False
stylus.includeTuiEnable Palette TUI for initial Edge host configuration. Default value is false. For more information, refer to Initial Edge Host Configuration.false
stylus.installationModeAllowed values are connected and airgap. Default value is connected. connected means that the Edge host has a connection to Palette; airgap means it does not have a connection to Palette.connected
stylus.localUI.portSpecifies the port that Local UI is exposed on.5080
stylus.siteReview Site Parameters for more information.
stylus.registryCredentialsReview External Registry Parameters for more information.None
stylus.traceEnable this parameter to display trace output. Allowed values are true or false.False

External Registry Parameters

You can point the Edge Installer to a non-default registry to load content from another source. Use the registryCredentials parameter object to specify the registry configurations.

If you are using an external registry and want to use content bundles when deploying your Edge cluster, you must also enable the local Harbor registry. For more information, refer to Build Content Bundles and Enable Local Harbor Registry.

ParameterDescriptionDefault
stylus.registryCredentials.domainThe domain of the registry. You can use an IP address plus the port or a domain name.
stylus.registryCredentials.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.False
stylus.registryCredentials.insecureWhether to allow insecure connections to the registry.False
stylus.registryCredentials.passwordThe password to authenticate with the registry.
#cloud-config
stylus:
registryCredentials:
domain: 10.10.254.254:8000/spectro-images
username: ubuntu
password: <yourPassword>
insecure: true

Site Parameters

The stylus.site blocks accept the following parameters.

ParameterDescriptionDefault
stylus.site.caCertsThe Secure Sockets Layer (SSL) certificate authority (CA) certificates.
stylus.site.clusterIdThe ID of the host cluster the edge host belongs to.
stylus.site.clusterNameThe name of the host cluster the edge host belongs to.
stylus.site.deviceUIDPathsSpecify the file path for reading in product or board serial that can be used to set the device ID. The default file path is /sys/class/dmi/id/product_uuid. Refer to the Device ID (UID) Parameters section to learn more.
stylus.site.edgeHostTokenA token created at the tenant scope that is required for auto registration.
stylus.site.insecureSkipVerifyThis controls whether or not a client verifies the server's certificate chain and hostname.
stylus.site.nameFully qualified domain name of the Edge host.
stylus.site.networkThe network configuration settings. Review the Site Network Parameters below for more details.
stylus.site.paletteEndpointThe URL endpoint that points to Palette. Example: api.spectrocloud.com
stylus.site.prefixA prefix prepended to the Edge device hostname to form the Edge device ID. Only alphanumeric characters and the hyphen-minus character are allowed. By default, this value is set to edge.
stylus.site.projectNameThe name of the project.
stylus.site.projectUidThe ID of the project the Edge host will belong to.
stylus.site.registrationURLThe URL that operators use to register the Edge host with Palette.
stylus.site.tagsA parameter object you use to provide optional key-value pairs. Refer to the Tags section to learn more.
stylus.site.tagsFromFileSpecify tags from a file. Refer to the Tags section to learn more.
stylus.site.tagsFromScriptUse a script to generate the tags. Refer to the Tags section to learn more.
info

If you do not specify a hostname for the Edge host with stylus.site.name , the system will generate one from the serial number of the device. If the Edge Installer cannot identify the serial number, it will generate a random ID instead. In cases where the hardware does not have a serial number, we suggest that you specify a value so there is minimal chance of duplication. Use the value "$random" to generate a random ID. You can also use the DeviceUIDPaths to read in a value from a system file.

Device ID (UID) Parameters

The device ID is generated by a specific priority sequence. The below table outlines the priority order from top to bottom when generating a UID for the Edge host. The UID generation starts with priority one, the device name, followed by attributes within the deviceUIDPAths, and lastly generating a random UUID if all other methods are unsuccessful.

PriorityMethodDescription
1nameThe device name is used as the primary identifier for the Edge host.
2deviceUIDPathsSpecifies the paths and associated regular expressions to extract the UID.
3"$random"Assigns a random UUID as the Edge host ID.

By default, the product UID path is set to /sys/class/dmi/id/product_uuid. To modify this path and use other attributes within the same folder, such as the product or board serial, use the regex parameter. For example, instead of the default path /sys/class/dmi/id/product_uuid, you can use the board Serial Number path /sys/class/dmi/id/board_serial by applying a regex parameter. Refer to the regex syntax reference guide to learn more.

ParameterDescription
stylus.site.deviceUIDPaths[*].nameThe path of the file containing the UID.
stylus.site.deviceUIDPaths[*].regexThe regular expression pattern to match the UID.

You can use the regex parameter to remove unsupported characters from attributes to Refer to the warning box below for a list of unsupported characters.

#cloud-config
stylus:
site:
deviceUIDPaths:
- name: /etc/palette/metadata-regex
regex: "edge.*"
warning

The length of the UID truncates to a maximum allowed length of 128 characters. The following characters are unsupported:

/ ? # & + % , $ ~ ! @ * () {} | = ; : <> ' . ^ "

Site Network Parameters

Use the site network parameters to configure network settings so the edge host can communicate with Palette.

ParameterDescription
stylus.site.network.httpProxyThe URL of the HTTP proxy endpoint.
stylus.site.network.httpsProxyThe URL of the HTTPS proxy endpoint.
stylus.site.network.noProxyThe list of IP addresses or CIDR ranges to exclude routing through the network proxy.
stylus.site.network.interfacesThe network settings respective to the interfaces. This parameter accepts a list of objects with keys as follows in this table.
stylus.site.network.interfaces.[NIC-NAME].ipAddressThe assigned IP address to the network interface.
stylus.site.network.interfaces.[NIC-NAME].maskThe network mask for the assigned IP address.
stylus.site.network.interfaces.[NIC-NAME].typeDefines how the IP address is assigned. Allowed values are dhcp or static. Defaults to dhcp.
stylus.site.network.interfaces.[NIC-NAME].gatewayThe network gateway IP address.
stylus.site.network.interfaces.[NIC-NAME].nameserverThe IP address of the DNS nameserver this interface should route requests to.
stylus.site.network.nameserverThe IP address of the global DNS nameserver that requests should be routed to.

Tags

You can specify tags from a file by using the tagsFromFile parameter object or from a script by using the tagsFromScript parameter.

ParameterDescriptionDefault Value
stylus.site.tagFromFile.fileNameThe path to the file containing the tags.''
stylus.site.tagFromFile.delimiterThe delimiter used to separate the key-value pairs.\n
stylus.site.tagFromFile.separatorThe separator used to separate the key from the value.:
stylus.site.tagFromScript.scriptNameThe path to the script that returns a JSON object.''
stylus.site.tagFromScript.timeoutThe timeout value in seconds.60

With tags from a file, you can specify different delimiters and separators to parse the content of a file depending on how the content is formatted. For example, assume the file /etc/palette/tags.txt contains the following content.

Location:Mumbai,India; Latitude:48.856614; Longitude:2.352221; owner:p78125d

The following configuration can produce these tags: Location: Mumbai,India, Latitude: 48.856614, Longitude:2.352221, owner:p78125d, department: sales.

#cloud-config
stylus:
site:
tags:
department: "sales"
tagsFromFile:
fileName: "/etc/palette/tags.txt"
delimiter: ";"
separator: ":"

You can specify tags from a script by using the tagsFromScript parameter object. The script must be executable and return a JSON object that contains the tags in the following format.

{
"key": "value"
}

For example, if you have a Python script that returns the following JSON output:

{
"department": "sales",
"owner": "p78125d"
}

You can configure stylus.site.tagsFromScript to point to the script, and it will add the tags owner:p78125d and department: sales to the Edge host.

Install Parameters

The install block allows you to configure the installer to make bind mounts and disk partitions on the Edge host. In addition, you can specify post-installation behavior, such as instructing the Edge host to power off automatically after installation is complete.

ParameterDescriptionDefault
install.bind_mountsThe list of folders to bind mount from the installer to the Edge hostNone
install.grub_options.extra_cmdlineKernel command-line parameters to add to the installer.None
install.partitions.persistentA persistent partition object. Providing this parameter creates an extra persistent partition on the Edge host. Accepts two parameters as follows in this table.None
install.partitions.persistent.sizeThe size of the persistent partitionNone
install.partitions.persistent.fsThe type of the file system for the persistent partitionNone
install.partitions.extra-partitionsThe list of extra partitions to create. Each list item accepts parameters as follows in this table.None
install.partitions.extra-partitions[*].nameThe name of the extra partitionNone
install.partitions.extra-partitions[*].sizeThe size of the extra partitionNone
install.partitions.extra-partitions[*].fsThe file system of the extra partitionNone
install.partitions.extra-partitions[*].labelThe label of the extra partitionNone
install.poweroffWhether to power off the Edge host after installation is complete.False
install.rebootWhether to reboot the Edge host after installation is completeFalse

Cloud Init Stages

Cloud init stages allow you to automates the initialization of your Edge hosts during various stages of the system boot process. You can perform For more information, refer to Cloud-init Stages.

info

You can configure users during any cloud-init stage. However, we strongly recommend that you use the initramfs stage to configure users, because this is the earliest cloud-init stage.

If you need to debug the Edge host in the event it is unable to progress past a certain stage, you will be able to establish an SSH connection into the Edge host because the users are already there. On the other hand, if you configure users at a later stage and your Edge host is not able to progress to that stage during installation, you will not be able to access your Edge host because there are no users.

ParameterDescriptionDefault
stages.*.usersThe list of users to create at any cloud-init stage. Replace * with the specific stage. Each list item accepts parameters as follows in this table.None
stages.*.users[*].groupsThe list of groups that the user belongs to. Replace * with your username.None
stages.*.users[*].passwdThe password of the user. Replace * with your username.None
stages.initramfsThe initramfs stage during Edge host installation. For more information, refer to Cloud Init Stages.None
stages.rootfsThe rootfs stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.bootThe boot stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.fsThe fs stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.networkThe network stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.reconcileThe reconcile stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.after-installThe after-install stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.after-install-chrootThe after-install-chroot stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.after-resetThe after-reset stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.after-reset-chrootThe after-reset-chroot stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.before-installThe before-install stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.before-upgradeThe before-upgrade stage during Edge host installation. For more information, refer to Cloud Init StagesNone
stages.before-resetThe before-reset stage during Edge host installation. For more information, refer to Cloud Init StagesNone