BootEnv¶
The bootenv object defines an environment to boot a machine. It has two main components: an OS information section, and a templates list. The OS information section defines what makes up the installation base for this bootenv. It defines the install ISO, a URL to get the ISO, and SHA256 checksum to validate the image. These are used to provide the basic install image, kernel, and base packages for the bootenv.
Field | Definition |
---|---|
BootParams | A template that will be expanded to create the full list of boot parameters for the environment. This list will generally be passed as command line arguments to the Kernel as it boots up. required: true |
Description | Description is a string for providing a simple description |
Documentation | Documentation is a string for providing additional in depth information. |
EndDelimiter | EndDelimiter is an optional end delimiter. required: false |
Initrds | Partial paths to the initrds that should be loaded for the boot environment. These should be paths that the initrds are located at in the OS ISO or install archive. required: true |
Kernel | The partial path to the kernel for the boot environment. This should be path that the kernel is located at in the OS ISO or install archive. Kernel must be non-empty for a BootEnv to be considered net bootable. required: true |
Loaders | Loaders contains the boot loaders that should be used for various different network boot scenarios. It consists of a map of machine type -> partial paths to the bootloaders. Valid machine types are: - 386-pcbios for x86 devices using the legacy bios. - amd64-uefi for x86 devices operating in UEFI mode - arm64-uefi for arm64 devices operating in UEFI mode Other machine types will be added as dr-provision gains support for them. If this map does not contain an entry for the machine type, the DHCP server will fall back to the following entries in this order: - The Loader specified in the ArchInfo struct from this BootEnv, if it exists. - The value specified in the bootloaders param for the machine type specified on the machine, if it exists. - The value specified in the bootloaders param in the global profile, if it exists. - The value specified in the default value for the bootloaders param. - One of the following vaiues: - lpxelinux.0 for 386-pcbios - ipxe.efi for amd64-uefi - ipxe-arm64.efi for arm64-uefi required: true |
Meta | Meta contains the meta data of the object. The type of this field is a key / value map/dictionary. The key type is string. The value type is also string. The general content of the field is undefined and can be an arbritary store. There are some common known keys: color - The color the UX uses when displaying icon - The icon the UX uses when displaying * title - The UX uses this for additional display information. Often the source of the object. Specific Object types use additional meta data fields. These are described at: https://docs.rackn.io/stable/redirect/?ref=rs_object_metadata |
Name | Name is the name of the boot environment. Boot environments that install an operating system must end in '-install'. All boot environment names must be unique. required: true |
OS | OS is the operating system specific information for the boot environment. |
OS/Codename | The codename of the OS, if any. |
OS/Family | The family of operating system (linux distro lineage, etc) |
OS/IsoFile | The name of the ISO that the OS should install from. If non-empty, this is assumed to be for the amd64 hardware architecture. |
OS/IsoSha256 | The SHA256 of the ISO file. Used to check for corrupt downloads. If non-empty, this is assumed to be for the amd64 hardware architecture. |
OS/IsoUrl | The URL that the ISO can be downloaded from, if any. If non-empty, this is assumed to be for the amd64 hardware architecture. swagger:strfmt uri |
OS/Name | The name of the OS this BootEnv has. It should be formatted as family-version. required: true |
OS/SupportedArchitectures | SupportedArchitectures maps from hardware architecture (named according to the distro architecture naming scheme) to the architecture-specific parameters for this OS. If SupportedArchitectures is left empty, then the system assumes that the BootEnv only supports amd64 platforms. |
OS/SupportedArchitectures/BootParams | A template that will be expanded to create the full list of boot parameters for the environment. If empty, this will fall back to the top-level BootParams field in the BootEnv required: true |
OS/SupportedArchitectures/Initrds | Partial paths to the initrds that should be loaded for the boot environment. These should be paths that the initrds are located at in the OS ISO or install archive. If empty, this will fall back to the top-level Initrds field in the BootEnv required: true |
OS/SupportedArchitectures/IsoFile | IsoFile is the name of the ISO file (or other archive) that contains all the necessary information to be able to boot into this BootEnv for a given arch. At a minimum, it must contain a kernel and initrd that can be booted over the network. |
OS/SupportedArchitectures/IsoUrl | IsoUrl is the location that IsoFile can be downloaded from, if any. This must be a full URL, including the filename. dr-provision does not use this field internally. drpcli and the UX use this field to provide a default source for downloading the IsoFile. swagger:strfmt url |
OS/SupportedArchitectures/Kernel | The partial path to the kernel for the boot environment. This should be path that the kernel is located at in the OS ISO or install archive. If empty, this will fall back to the top-level Kernel field in the BootEnv required: true |
OS/SupportedArchitectures/Loader | Loader is the bootloader that should be used for this boot environment. If left unspecified and not overridden by a subnet or reservation option, the following boot loaders will be used: lpxelinux.0 on 386-pcbios platforms that are not otherwise using ipxe. ipxe.pxe on 386-pcbios platforms that already use ipxe. ipxe.efi on amd64 EFI platforms. ipxe-arm64.efi on arm64 EFI platforms. This setting will be overridden by Subnet and Reservation options, and it will also only be in effect when dr-provision is the DHCP server of record. It will also be overridden by the corresponding entry in the Loaders field of the BootEnv, if present and secure boot is enabled by the license. |
OS/SupportedArchitectures/Sha256 | Sha256 should contain the SHA256 checksum for the IsoFile. If it does, the IsoFile will be checked upon upload to make sure it has not been corrupted. |
OS/Version | The version of the OS, if any. |
OnlyUnknown | OnlyUnknown indicates whether this bootenv can be used without a machine. Only bootenvs with this flag set to true be used forthe unknownBootEnv preference. If this flag is set to True, then the Templates provided byt this boot environment must take care to be able to chainload into the appropriate boot environments for other machines if the bootloader that machine is using does not support it natively. The built-in ignore boot environment and the discovery boot environment provided by the community content bundle should be used as references for satisfying that requirement. required: true |
OptionalParams | The list of extra optional parameters for this boot environment. They can be present as Machine.Params when the bootenv is applied to the machine. These are more other consumers of the bootenv to know what parameters could additionally be applied to the bootenv by the renderer based upon the Machine.Params |
RequiredParams | The list of extra required parameters for this boot environment. They should be present as Machine.Params when the bootenv is applied to the machine. required: true |
StartDelimiter | StartDelimiter is an optional start delimiter. required: false |
Templates | Templates contains a list of templates that should be expanded into files for the boot environment. These expanded templates will be available via TFTP and static HTTP from dr-provision. You should take care that the final paths for the temmplates do not overlap with ones provided by other boot environments. required: true |
Templates/Contents | Contents that should be used when this template needs to be expanded. Either this or ID should be set. required: false |
Templates/EndDelimiter | EndDelimiter is an optional end delimiter. required: false |
Templates/ID | ID of the template that should be expanded. Either this or Contents should be set required: false |
Templates/Link | Link optionally references another file to put at the path location. |
Templates/Meta | Meta for the TemplateInfo. This can be used by the job running system and the bootenvs to handle OS, arch, and firmware differences. required: false |
Templates/Name | Name of the template required: true |
Templates/Path | A text/template that specifies how to create the final path the template should be written to. required: true |
Templates/StartDelimiter | StartDelimiter is an optional start delimiter. required: false |