
This commit cleans up the command constructors in an attempt to make the codebase more uniform and approachable. This includes several refactors: * Removed the FlagConstants - this makes the help messages and examples significantly more readable without needed to compile and run airshipctl * Long help messages and examples are now constant * Short, Long, and Examples all begin with a capitol letter * Flag descriptions begin with a lowercase letter. This matches the flag description for the builtin "help" flag, making formatting uniform for all flags * Removed redundant unit tests on non-leaf commands This change also updates the documentation for the affected commands. Change-Id: I8b9dcbfd9846b3deaab06dec17f80643dae78de9
9.7 KiB
AirshipCTL CLI
The AirshipCTL CLI is used in conjunction with the binary created by
running make build
. This binary, by default, is created in
the airshipctl/bin/
directory.
CLI Options
-h / \-\-help
Prints help for a specific command or command group.
\-\-debug (default: false)
Enables verbose output of commands.
\-\-airshipconf (default: $HOME/.airship/config)
Path to file for airshipctl configuration.
\-\-kubeconfig (default: $HOME/.airship/kubeconfig)
Path to kubeconfig associated with airshipctl configuration.
Root Group
Allows you to perform top level commands
airshipctl <command>
Version
Output the version of the airshipctl binary.
Usage:
airshipctl version
Completion
Generate completion script for airshipctl for the specified shell (bash or zsh).
shell (Required)
Shell to generate completion script for. Supported values are bash and zsh
Usage:
airshipctl completion <shell>
Examples
Save shell completion to a file
$ airshipctl completion bash > $HOME/.airship_completions
Apply completions to the current shell
$ source <(airshipctl completion bash)
Bootstrap Group
Used to bootstrap the ephemeral Kubernetes cluster.
ISOgen
Generate bootstrap ISO image.
Usage:
airshipctl bootstrap isogen
RemoteDirect
Bootstrap ephemeral node.
Usage:
airshipctl bootstrap remotedirect
Cluster Group
This command provides capabilities for interacting with a Kubernetes cluster, such as getting status and deploying initial infrastructure.
InitInfra
Deploy initinfra components to cluster.
cluster-type (default:"ephemeral")
Select cluster type to deploy initial infrastructure to, currently only ephemeral is supported.
\-\-dry-run
Don't deliver documents to the cluster, simulate the changes instead.
\-\-prune (default: false)
If set to true, command will delete all kubernetes resources that are not defined in airship documents and have airshipit.org/deployed=initinfra label
Usage:
airshipctl cluster initinfra <flags>
Config Group
Manage the airshipctl config file
Get-Cluster
Get cluster information from the airshipctl config.
name (Optional, default: all defined clusters)
Display a specific cluster or all defined clusters if no name is provided.
\-\-cluster-type (Required if name is provided).
The type of the desired cluster. Valid values are from [ephemeral|target].
Usage:
airshipctl config get-cluster <name> --cluster-type=<cluster-type>
Examples
List all the clusters:
airshipctl config get-cluster
Display a specific cluster:
airshipctl config get-cluster e2e --cluster-type=ephemeral
Get-Context
Display information about contexts such as associated manifests, users, and clusters.
name (Optional, default: all defined contexts)
Displays a named context, if no name is provided display all defined contexts.
\-\-current-context (default: false)
Display the current context, supersedes the name argument.
Usage:
airshipctl config get-context
Examples
For all contexts:
airshipctl config get-context
For the current context:
airshipctl config get-context --current
For a named context:
airshipctl config get-context exampleContext
Get-Credentials
Get user credentials from the airshipctl config.
name (Optional, default: all defined users)
Display a specific user's credentials, or all defined user credentials if no name is provided.
Usage:
airshipctl config get-credentials <name>
Examples
List all user credentials:
airshipctl config get-credentials
Display a specific user's credentials:
airshipctl config get-credentials exampleUser
Init
Generate an airshipctl config file and its associated kubeConfig file. These files will be written to the $HOME/.airship directory, and will contain default configurations.
Note
This will overwrite any existing config files in $HOME/.airship
Usage:
airshipctl config init
Set-Cluster
Create or modify a cluster in the airshipctl config files.
Since a cluster can be either "ephemeral" or "target", you must specify cluster-type when managing clusters.
name (Required)
The name of the cluster to add or modify in the airshipctl config file.
\-\-certificate-authority
Path to a certificate authority file
\-\-certificate-authority (Required)
The type of the cluster to add or modify
\-\-embed-certs (default: false)
If set, embed the client certificate/key into the cluster
\-\-insecure-skip-tls-verify (default: true)
If set, disable certificate checking
\-\-server
Server to use for the cluster
Usage:
airshipctl config set-cluster <name> <flags>
Examples
Set the server field on the ephemeral exampleCluster:
airshipctl config set-cluster exampleCluster \
--cluster-type=ephemeral \
--server=https://1.2.3.4
Embed certificate authority data for the target exampleCluster:
airshipctl config set-cluster exampleCluster \
--cluster-type=target \
--client-certificate-authority=$HOME/.airship/ca/kubernetes.ca.crt \
--embed-certs
Disable certificate checking for the target exampleCluster:
airshipctl config set-cluster exampleCluster
--cluster-type=target \
--insecure-skip-tls-verify
Configure client certificate for the target exampleCluster:
airshipctl config set-cluster exampleCluster \
--cluster-type=target \
--embed-certs \
--client-certificate=$HOME/.airship/cert_file
Set-Context
Create or modify a context in the airshipctl config files.
name (Required)
The name of the context to add or modify in the airshipctl config file.
\-\-cluster
Set the cluster for the specified context.
\-\-cluster-type
Set the cluster-type for the specified context.
\-\-current
Update the current context.
\-\-manifest
Set the manifest for the specified context.
\-\-namespace
Set the namespace for the specified context.
\-\-user
Set the user for the specified context.
Usage:
airshipctl config set-context <name> <flags>
Examples
Create a new context named "exampleContext":
airshipctl config set-context exampleContext \
--namespace=kube-system \
--manifest=exampleManifest \
--user=exampleUser
--cluster-type=target
Update the manifest of the current-context:
airshipctl config set-context \
--current \
--manifest=exampleManifest
Set-Credentials
Create or modify a user credential in the airshipctl config file.
Note
Specifying more than one authentication method is an error.
name (Required)
The user entry to update in airshipctl config.
\-\-client-certificate
Path to a certificate file.
\-\-client-key
Path to a key file.
\-\-embed-certs
If set, embed the client certificate/key into the credential.
\-\-password
Password for the credential
Note
Username and Password flags are mutually exclusive with Token flag
\-\-token
Token to use for the credential
Note
Username and Password flags are mutually exclusive with Token flag
\-\-username
Username for the credential
Note
Username and Password flags are mutually exclusive with Token flag
Usage:
airshipctl config set-credentials <name> <flags>
Examples
Create a new user credential with basic auth:
airshipctl config set-credentials exampleUser \
--username=exampleUser \
--password=examplePassword
Change the client-key of a user named admin
airshipctl config set-credentials admin \
--client-key=$HOME/.kube/admin.key
Change the username and password of the admin user
airshipctl config set-credentials admin \
--username=admin \
--password=uXFGweU9l35qcif
Embed client certificate data of the admin user
airshipctl config set-credentials admin \
--client-certificate=$HOME/.kube/admin.crt \
--embed-certs
Document Group
Manages deployment documents.
Pull
Pulls documents from remote git repository.
Usage:
airshipctl document pull
Render
Render documents from model.
-a / \-\-annotation
Filter documents by Annotations.
-g / \-\-apiversion
Filter documents by API version.
-f / \-\-filter
Logical expression for document filtering.
-k / \-\-kind
Filter documents by Kinds.
-l / \-\-label
Filter documents by Labels.
Usage:
airshipctl document render <flags>
Secret Group
Manages secrets.
Generate
Generates various secrets.
MasterPassphrase
Generates a secure master passphrase.
Usage:
airshipctl secret generate masterpassphrase