bootctl¶
Installation¶
Install the bootctl
CLI from source without cloning the repository. Requires Go to be installed.
go install https://github.com/ironcore-dev/boot-operator/cmd/bootctl@latest
Commands¶
move¶
The bootctl move
command allows to move the boot Custom Resources which are HTTPBootConfigs
and IPXEBootConfigs
from one cluster to another.
Warning!: Before running
bootctl move
, the user should take care of preparing the target cluster, including also installing all the required Custom Resources Definitions.
You can use:
bootctl move --source-kubeconfig="path-to-source-kubeconfig.yaml" --target-kubeconfig="path-to-target-kubeconfig.yaml"
--namespace
flag.
Secrets referred in the specification and ownership of a boot Custom Resource is also moved. If for a moved boot Custom Resource with an ownership there is no ServerBootConfiguration
matching resource name on the target cluster, the owner won't be set and the move operation will succeed. To fail when such situation occurs set --require-owners
to true. If a boot Custom Resource present on the source cluster exists on the target cluster with identical specification it and its secret won't be moved and no ownership of this object will be set on the target cluster. If the boot Custom Resource is absent on the target cluster but its secret is present, there will be no errors and the move operation will succeed. In case of any errors during the process there will be performed a cleanup and the target cluster will be restored to its previous state.
Warning!:
bootctl move
has been designed and developed around the bootstrap use case described below, and currently this is the only use case verified.If someone intends to use
bootctl move
outside of this scenario, it's recommended to set up a custom validation pipeline of it before using the command on a production environment.Also, it is important to notice that move has not been designed for being used as a backup/restore solution and it has several limitation for this scenario, like e.g. the implementation assumes the cluster must be stable while doing the move operation, and possible race conditions happening while the cluster is upgrading, scaling up, remediating etc. has never been investigated nor addressed.
Pivot¶
Pivoting is a process for moving the Custom Resources and install Custom Resource Definitions from a source cluster to a target cluster.
This can now be achieved with the following procedure:
- Use
make install
to install the boot Custom Resource Definitions into the target cluster - Use
bootctl move
to move the boot Custom Resources from a source cluster to a target cluster
Dry run¶
With --dry-run
option you can dry-run the move action by only printing logs without taking any actual actions. Use
--verbose
flag to enable verbose logging.