
This introduces airshipctl integration with image-builder [0], which replaces the existing isogen tool for ephemeral ISO generation. The airshipctl isogen executor has been updated for building ephemeral ISOs using the image-builder container. The ability for user-declared filenames for cloud-init user data and network data was removed, since the user's only interest is in supplying the relevant overrides, not in transparent naming coordination with the image-builder container. A new object is added to the document package to identify the document kind, label, and key to retrieve data from since this is pattern we will reuse elsewhere. Progress flag removed as requsted. Progress is reported directly by the image-builder container. Isogen debug flag removed in favor of using log.DebugEnabled() [0] https://review.opendev.org/#/c/730777/ Depends-On: https://review.opendev.org/c/airship/images/+/730777/ Change-Id: I545004feaf2116f8ffb29faf6f7f7f5fcfe24fff
2.2 KiB
2.2 KiB
Architecture
The airshipctl
tool is designed to work against declarative infrastructure
housed in source control and manage the lifecycle of a site.
Example Usage
In a nutshell, users of airshipctl
should be able to do the following:
- Create an
airshipctl
Airship Configuration for their site - sort of like a kubeconfig file. Airshipctl can create a pre-configured config file by runningairshipctl config init
. - Create a set of declarative documents representing the infrastructure (baremetal, cloud) and software.
- Run
airshipctl document pull
to clone the document repositories in your Airship Configuration. - Run
airshipctl image build
to generate a self-contained ISO that can be used to boot the first host in the cluster into an ephemeral Kubernetes node. - When deploying against baremetal infrastructure, run
airshipctl baremetal remotedirect
to remotely provision the first machine in the cluster using the generated ISO, providing an ephemeral Kubernetes instance thatairshipctl
can communicate with for subsequent steps. This ephemeral host provides a foothold in the target environment so we can follow the standard cluster-api bootstrap flow. - Run
airshipctl phase run initinfra-ephemeral
to bootstrap the new ephemeral cluster with enough of the chosen cluster-api provider components to provision the target cluster. - Run
airshipctl clusterctl
to use the ephemeral Kubernetes host to provision at least one node of the target cluster using the cluster-api bootstrap flow. - Run
airshipctl cluster initinfra --clustertype=target
to bootstrap the new target cluster with any remaining infrastructure necessary to begin running more complex workflows such as Argo. - Run
airshipctl workflow submit sitemanage
to run the out of the box sitemanage workflow, which will leverage Argo to handle bootstrapping the remaining infrastructure as well as deploying and/or updating software.
As users evolve their sites declaration, whether adding additional
infrastructure, or software declarations, they can re-run airshipctl workflow submit sitemanage
to introduce those changes to the site.