Update architecture documentation
Change-Id: Ief3fdc4d613524fcc75264b5a80c931c37fc2f38 Relates-To: #427
This commit is contained in:
parent
e075b78d85
commit
2cd2bb5268
@ -7,36 +7,42 @@ 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:
|
||||
In a nutshell, users of `airshipctl` are able to do the following:
|
||||
|
||||
1. Create an `airshipctl` Airship Configuration for their site - sort of like a
|
||||
kubeconfig file. Airshipctl can create a pre-configured config file by
|
||||
running `airshipctl config init`.
|
||||
1. Create a set of declarative documents representing the infrastructure
|
||||
(baremetal, cloud) and software.
|
||||
1. Run `airshipctl document pull` to clone the document repositories in your
|
||||
Airship Configuration.
|
||||
1. 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.
|
||||
1. Create an `airshipctl` configuration file. `airshipctl` can create a default
|
||||
configuration file (`~/.airship/config`) running the command
|
||||
`airshipctl config init`. Users can modify the config file according to
|
||||
their needs.
|
||||
1. Run `airshipctl document pull` to clone the document repositories defined in the
|
||||
`airshipctl` config file. These repositories contain declarative documents which
|
||||
are used to bootstrap and manage infrastructure, kubernetes clusters and workloads.
|
||||
1. 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
|
||||
`airshipctl image build` to generate a self-contained ISO that can be
|
||||
used to bootstrap an ephemeral Kubernetes node on top of a baremetal host.
|
||||
|
||||
**NOTE:** *Most of the `airshipctl` functionality is implemented as phases. When `airshipctl`
|
||||
performs an action, it likely runs a phase or multiple phases defined in phase documents.
|
||||
`airshipctl phase` command can be used to run a specific phase. For example
|
||||
to build the ISO one can run the command `airshipctl phase run bootstrap`*
|
||||
|
||||
1. Once the ISO is generated, run `airshipctl baremetal remotedirect` to remotely
|
||||
provision the ephemeral baremetal node and deploy a Kubernetes
|
||||
instance that `airshipctl` 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.
|
||||
1. 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.
|
||||
1. 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.
|
||||
1. 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.
|
||||
1. 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.
|
||||
with the necessary infrastructure components to provision the target cluster.
|
||||
1. Run `airshipctl phase run clusterctl-init-ephemeral` to install cluster-api components
|
||||
to the ephemeral Kubernetes instance.
|
||||
1. Run `airshipctl phase run controlplane-ephemeral` to create cluster-api objects for the first
|
||||
target cluster which will be deployed using cluster-api.
|
||||
|
||||
Further steps depend on what exactly a user wants to have as a result. Usually, users transform
|
||||
their first target cluster into a cluster-api management cluster and then use it to deploy workload
|
||||
clusters. To transform a Kubernetes cluster into a cluster-api management cluster, it is
|
||||
necessary to deploy infrastructure components and the cluster-api components.
|
||||
|
||||
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.
|
||||
infrastructure, or software declarations, they can create phase definitions to apply those
|
||||
changes to the site using builtin phase executors and run those phases using the command
|
||||
`airshipctl phase run <phasename>`.
|
||||
|
1
docs/source/img/architecture.gliffy
Normal file
1
docs/source/img/architecture.gliffy
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 57 KiB |
Loading…
Reference in New Issue
Block a user