From 0d7dc4de24eee613618026490518f3bd3d5aa812 Mon Sep 17 00:00:00 2001 From: Drew Walters Date: Tue, 12 May 2020 17:47:43 +0000 Subject: [PATCH] Add automated CLI documentation This change creates a tool that generates CLI documentation each time `make update-golden` is executed. Change-Id: I4bcdf299cd424f4cff1ecf6503822d304e9a3947 Signed-off-by: Drew Walters --- Makefile | 10 + docs/source/cli/airshipctl.md | 28 + docs/source/cli/airshipctl_baremetal.md | 33 + .../cli/airshipctl_baremetal_ejectmedia.md | 33 + .../source/cli/airshipctl_baremetal_isogen.md | 30 + .../cli/airshipctl_baremetal_poweroff.md | 33 + .../cli/airshipctl_baremetal_poweron.md | 33 + .../cli/airshipctl_baremetal_powerstatus.md | 33 + .../source/cli/airshipctl_baremetal_reboot.md | 33 + .../cli/airshipctl_baremetal_remotedirect.md | 30 + docs/source/cli/airshipctl_cluster.md | 30 + docs/source/cli/airshipctl_cluster_init.md | 77 +++ .../cli/airshipctl_cluster_initinfra.md | 44 ++ docs/source/cli/airshipctl_completion.md | 43 ++ docs/source/cli/airshipctl_config.md | 35 ++ .../cli/airshipctl_config_get-cluster.md | 48 ++ .../cli/airshipctl_config_get-context.md | 47 ++ .../cli/airshipctl_config_get-credential.md | 44 ++ docs/source/cli/airshipctl_config_import.md | 40 ++ docs/source/cli/airshipctl_config_init.md | 35 ++ .../cli/airshipctl_config_set-cluster.md | 67 ++ .../cli/airshipctl_config_set-context.md | 55 ++ .../cli/airshipctl_config_set-credentials.md | 64 ++ .../cli/airshipctl_config_use-context.md | 40 ++ docs/source/cli/airshipctl_document.md | 29 + docs/source/cli/airshipctl_document_plugin.md | 64 ++ docs/source/cli/airshipctl_document_pull.md | 30 + docs/source/cli/airshipctl_document_render.md | 35 ++ docs/source/cli/airshipctl_phase.md | 29 + docs/source/cli/airshipctl_phase_apply.md | 42 ++ docs/source/cli/airshipctl_secret.md | 27 + docs/source/cli/airshipctl_secret_generate.md | 27 + ...hipctl_secret_generate_masterpassphrase.md | 30 + docs/source/cli/airshipctl_version.md | 30 + docs/source/cli/cli.rst | 573 ------------------ docs/source/index.rst | 2 +- docs/tools/generate_cli_docs.go | 40 ++ go.sum | 4 + 38 files changed, 1353 insertions(+), 574 deletions(-) create mode 100644 docs/source/cli/airshipctl.md create mode 100644 docs/source/cli/airshipctl_baremetal.md create mode 100644 docs/source/cli/airshipctl_baremetal_ejectmedia.md create mode 100644 docs/source/cli/airshipctl_baremetal_isogen.md create mode 100644 docs/source/cli/airshipctl_baremetal_poweroff.md create mode 100644 docs/source/cli/airshipctl_baremetal_poweron.md create mode 100644 docs/source/cli/airshipctl_baremetal_powerstatus.md create mode 100644 docs/source/cli/airshipctl_baremetal_reboot.md create mode 100644 docs/source/cli/airshipctl_baremetal_remotedirect.md create mode 100644 docs/source/cli/airshipctl_cluster.md create mode 100644 docs/source/cli/airshipctl_cluster_init.md create mode 100644 docs/source/cli/airshipctl_cluster_initinfra.md create mode 100644 docs/source/cli/airshipctl_completion.md create mode 100644 docs/source/cli/airshipctl_config.md create mode 100644 docs/source/cli/airshipctl_config_get-cluster.md create mode 100644 docs/source/cli/airshipctl_config_get-context.md create mode 100644 docs/source/cli/airshipctl_config_get-credential.md create mode 100644 docs/source/cli/airshipctl_config_import.md create mode 100644 docs/source/cli/airshipctl_config_init.md create mode 100644 docs/source/cli/airshipctl_config_set-cluster.md create mode 100644 docs/source/cli/airshipctl_config_set-context.md create mode 100644 docs/source/cli/airshipctl_config_set-credentials.md create mode 100644 docs/source/cli/airshipctl_config_use-context.md create mode 100644 docs/source/cli/airshipctl_document.md create mode 100644 docs/source/cli/airshipctl_document_plugin.md create mode 100644 docs/source/cli/airshipctl_document_pull.md create mode 100644 docs/source/cli/airshipctl_document_render.md create mode 100644 docs/source/cli/airshipctl_phase.md create mode 100644 docs/source/cli/airshipctl_phase_apply.md create mode 100644 docs/source/cli/airshipctl_secret.md create mode 100644 docs/source/cli/airshipctl_secret_generate.md create mode 100644 docs/source/cli/airshipctl_secret_generate_masterpassphrase.md create mode 100644 docs/source/cli/airshipctl_version.md delete mode 100644 docs/source/cli/cli.rst create mode 100644 docs/tools/generate_cli_docs.go diff --git a/Makefile b/Makefile index 17e0814db..bea589d8e 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,9 @@ USE_PROXY ?= false # Godoc server options GD_PORT ?= 8080 +# Documentation location +DOCS_DIR ?= docs + .PHONY: depend depend: @go mod download @@ -154,6 +157,12 @@ godoc: @echo "Follow this link to package documentation: http://localhost:${GD_PORT}/pkg/opendev.org/airship/airshipctl/" @godoc -http=":${GD_PORT}" +.PHONY: cli-docs +cli-docs: + @echo "Generating CLI documentation..." + @go run $(DOCS_DIR)/tools/generate_cli_docs.go + @echo "CLI documentation generated" + .PHONY: releasenotes releasenotes: @echo "TODO" @@ -169,6 +178,7 @@ update-golden: delete-golden update-golden: TESTFLAGS += -update update-golden: PKG = opendev.org/airship/airshipctl/cmd/... update-golden: unit-tests +update-golden: cli-docs # The delete-golden target is a utility for update-golden .PHONY: delete-golden diff --git a/docs/source/cli/airshipctl.md b/docs/source/cli/airshipctl.md new file mode 100644 index 000000000..314b7624b --- /dev/null +++ b/docs/source/cli/airshipctl.md @@ -0,0 +1,28 @@ +## airshipctl + +A unified entrypoint to various airship components + +### Synopsis + +A unified entrypoint to various airship components + +### Options + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + -h, --help help for airshipctl + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts +* [airshipctl cluster](airshipctl_cluster.md) - Manage Kubernetes clusters +* [airshipctl completion](airshipctl_completion.md) - Generate completion script for the specified shell (bash or zsh) +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file +* [airshipctl document](airshipctl_document.md) - Manage deployment documents +* [airshipctl phase](airshipctl_phase.md) - Manage phases +* [airshipctl secret](airshipctl_secret.md) - Manage secrets +* [airshipctl version](airshipctl_version.md) - Show the version number of airshipctl + diff --git a/docs/source/cli/airshipctl_baremetal.md b/docs/source/cli/airshipctl_baremetal.md new file mode 100644 index 000000000..635cc49ba --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal.md @@ -0,0 +1,33 @@ +## airshipctl baremetal + +Perform actions on baremetal hosts + +### Synopsis + +Perform actions on baremetal hosts + +### Options + +``` + -h, --help help for baremetal +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl baremetal ejectmedia](airshipctl_baremetal_ejectmedia.md) - Eject media attached to a baremetal host +* [airshipctl baremetal isogen](airshipctl_baremetal_isogen.md) - Generate baremetal host ISO image +* [airshipctl baremetal poweroff](airshipctl_baremetal_poweroff.md) - Shutdown a baremetal host +* [airshipctl baremetal poweron](airshipctl_baremetal_poweron.md) - Power on a host +* [airshipctl baremetal powerstatus](airshipctl_baremetal_powerstatus.md) - Retrieve the power status of a baremetal host +* [airshipctl baremetal reboot](airshipctl_baremetal_reboot.md) - Reboot a host +* [airshipctl baremetal remotedirect](airshipctl_baremetal_remotedirect.md) - Bootstrap the ephemeral host + diff --git a/docs/source/cli/airshipctl_baremetal_ejectmedia.md b/docs/source/cli/airshipctl_baremetal_ejectmedia.md new file mode 100644 index 000000000..91ac6a4c2 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_ejectmedia.md @@ -0,0 +1,33 @@ +## airshipctl baremetal ejectmedia + +Eject media attached to a baremetal host + +### Synopsis + +Eject media attached to a baremetal host + +``` +airshipctl baremetal ejectmedia [flags] +``` + +### Options + +``` + -h, --help help for ejectmedia + -l, --labels string Label(s) to filter desired baremetal host documents + -n, --name string Name to filter desired baremetal host document + --phase string airshipctl phase that contains the desired baremetal host document(s) (default "bootstrap") +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_isogen.md b/docs/source/cli/airshipctl_baremetal_isogen.md new file mode 100644 index 000000000..5f874db70 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_isogen.md @@ -0,0 +1,30 @@ +## airshipctl baremetal isogen + +Generate baremetal host ISO image + +### Synopsis + +Generate baremetal host ISO image + +``` +airshipctl baremetal isogen [flags] +``` + +### Options + +``` + -h, --help help for isogen +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_poweroff.md b/docs/source/cli/airshipctl_baremetal_poweroff.md new file mode 100644 index 000000000..2b253f9b6 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_poweroff.md @@ -0,0 +1,33 @@ +## airshipctl baremetal poweroff + +Shutdown a baremetal host + +### Synopsis + +Shutdown a baremetal host + +``` +airshipctl baremetal poweroff [flags] +``` + +### Options + +``` + -h, --help help for poweroff + -l, --labels string Label(s) to filter desired baremetal host documents + -n, --name string Name to filter desired baremetal host document + --phase string airshipctl phase that contains the desired baremetal host document(s) (default "bootstrap") +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_poweron.md b/docs/source/cli/airshipctl_baremetal_poweron.md new file mode 100644 index 000000000..6fe8f4057 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_poweron.md @@ -0,0 +1,33 @@ +## airshipctl baremetal poweron + +Power on a host + +### Synopsis + +Power on a host + +``` +airshipctl baremetal poweron [flags] +``` + +### Options + +``` + -h, --help help for poweron + -l, --labels string Label(s) to filter desired baremetal host documents + -n, --name string Name to filter desired baremetal host document + --phase string airshipctl phase that contains the desired baremetal host document(s) (default "bootstrap") +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_powerstatus.md b/docs/source/cli/airshipctl_baremetal_powerstatus.md new file mode 100644 index 000000000..7af252349 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_powerstatus.md @@ -0,0 +1,33 @@ +## airshipctl baremetal powerstatus + +Retrieve the power status of a baremetal host + +### Synopsis + +Retrieve the power status of a baremetal host + +``` +airshipctl baremetal powerstatus [flags] +``` + +### Options + +``` + -h, --help help for powerstatus + -l, --labels string Label(s) to filter desired baremetal host documents + -n, --name string Name to filter desired baremetal host document + --phase string airshipctl phase that contains the desired baremetal host document(s) (default "bootstrap") +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_reboot.md b/docs/source/cli/airshipctl_baremetal_reboot.md new file mode 100644 index 000000000..bbf3f8979 --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_reboot.md @@ -0,0 +1,33 @@ +## airshipctl baremetal reboot + +Reboot a host + +### Synopsis + +Reboot a host + +``` +airshipctl baremetal reboot [flags] +``` + +### Options + +``` + -h, --help help for reboot + -l, --labels string Label(s) to filter desired baremetal host documents + -n, --name string Name to filter desired baremetal host document + --phase string airshipctl phase that contains the desired baremetal host document(s) (default "bootstrap") +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_baremetal_remotedirect.md b/docs/source/cli/airshipctl_baremetal_remotedirect.md new file mode 100644 index 000000000..e3b8670ea --- /dev/null +++ b/docs/source/cli/airshipctl_baremetal_remotedirect.md @@ -0,0 +1,30 @@ +## airshipctl baremetal remotedirect + +Bootstrap the ephemeral host + +### Synopsis + +Bootstrap the ephemeral host + +``` +airshipctl baremetal remotedirect [flags] +``` + +### Options + +``` + -h, --help help for remotedirect +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl baremetal](airshipctl_baremetal.md) - Perform actions on baremetal hosts + diff --git a/docs/source/cli/airshipctl_cluster.md b/docs/source/cli/airshipctl_cluster.md new file mode 100644 index 000000000..68e30a648 --- /dev/null +++ b/docs/source/cli/airshipctl_cluster.md @@ -0,0 +1,30 @@ +## airshipctl cluster + +Manage Kubernetes clusters + +### Synopsis + +This command provides capabilities for interacting with a Kubernetes cluster, +such as getting status and deploying initial infrastructure. + + +### Options + +``` + -h, --help help for cluster +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl cluster init](airshipctl_cluster_init.md) - Deploy cluster-api provider components +* [airshipctl cluster initinfra](airshipctl_cluster_initinfra.md) - Deploy initinfra components to cluster + diff --git a/docs/source/cli/airshipctl_cluster_init.md b/docs/source/cli/airshipctl_cluster_init.md new file mode 100644 index 000000000..2aeb88c98 --- /dev/null +++ b/docs/source/cli/airshipctl_cluster_init.md @@ -0,0 +1,77 @@ +## airshipctl cluster init + +Deploy cluster-api provider components + +### Synopsis + + +Initialize cluster-api providers based on airshipctl document set. +document set must contain document of Kind: Clusterctl in phase initinfra. +Path to initinfra phase is built based on airshipctl config +//ephemeral/initinfra. +Clusterctl document example: +--- +apiVersion: airshipit.org/v1alpha1 +kind: Clusterctl +metadata: + labels: + airshipit.org/deploy-k8s: "false" + name: clusterctl-v1 +init-options: + core-provider: "cluster-api:v0.3.3" + bootstrap-providers: + - "kubeadm:v0.3.3" + infrastructure-providers: + - "metal3:v0.3.1" + control-plane-providers: + - "kubeadm:v0.3.3" +providers: + - name: "metal3" + type: "InfrastructureProvider" + versions: + v0.3.1: manifests/function/capm3/v0.3.1 + - name: "kubeadm" + type: "BootstrapProvider" + versions: + v0.3.3: manifests/function/cabpk/v0.3.3 + - name: "cluster-api" + type: "CoreProvider" + versions: + v0.3.3: manifests/function/capi/v0.3.3 + - name: "kubeadm" + type: "ControlPlaneProvider" + versions: + v0.3.3: manifests/function/cacpk/v0.3.3 + + +``` +airshipctl cluster init [flags] +``` + +### Examples + +``` + +# Initialize clusterctl providers and components +airshipctl cluster init + +``` + +### Options + +``` + -h, --help help for init +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl cluster](airshipctl_cluster.md) - Manage Kubernetes clusters + diff --git a/docs/source/cli/airshipctl_cluster_initinfra.md b/docs/source/cli/airshipctl_cluster_initinfra.md new file mode 100644 index 000000000..3f6772090 --- /dev/null +++ b/docs/source/cli/airshipctl_cluster_initinfra.md @@ -0,0 +1,44 @@ +## airshipctl cluster initinfra + +Deploy initinfra components to cluster + +### Synopsis + +Deploy initial infrastructure to kubernetes cluster such as +metal3.io, argo, tiller and other manifest documents with appropriate labels + + +``` +airshipctl cluster initinfra [flags] +``` + +### Examples + +``` + +# Deploy infrastructure to a cluster +airshipctl cluster initinfra + +``` + +### Options + +``` + --cluster-type string select cluster type to deploy initial infrastructure to; currently only ephemeral is supported (default "ephemeral") + --dry-run don't deliver documents to the cluster, simulate the changes instead + -h, --help help for initinfra + --prune if set to true, command will delete all kubernetes resources that are not defined in airship documents and have airshipit.org/deployed=initinfra label +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl cluster](airshipctl_cluster.md) - Manage Kubernetes clusters + diff --git a/docs/source/cli/airshipctl_completion.md b/docs/source/cli/airshipctl_completion.md new file mode 100644 index 000000000..0d1da69b0 --- /dev/null +++ b/docs/source/cli/airshipctl_completion.md @@ -0,0 +1,43 @@ +## airshipctl completion + +Generate completion script for the specified shell (bash or zsh) + +### Synopsis + +Generate completion script for airshipctl for the specified shell (bash or zsh). + + +``` +airshipctl completion SHELL [flags] +``` + +### Examples + +``` + +# Save shell completion to a file +airshipctl completion bash > $HOME/.airship_completions + +# Apply completions to the current shell +source <(airshipctl completion bash) + +``` + +### Options + +``` + -h, --help help for completion +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components + diff --git a/docs/source/cli/airshipctl_config.md b/docs/source/cli/airshipctl_config.md new file mode 100644 index 000000000..195034dab --- /dev/null +++ b/docs/source/cli/airshipctl_config.md @@ -0,0 +1,35 @@ +## airshipctl config + +Manage the airshipctl config file + +### Synopsis + +Manage the airshipctl config file + +### Options + +``` + -h, --help help for config +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl config get-cluster](airshipctl_config_get-cluster.md) - Get cluster information from the airshipctl config +* [airshipctl config get-context](airshipctl_config_get-context.md) - Get context information from the airshipctl config +* [airshipctl config get-credential](airshipctl_config_get-credential.md) - Get user credentials from the airshipctl config +* [airshipctl config import](airshipctl_config_import.md) - Merge information from a kubernetes config file +* [airshipctl config init](airshipctl_config_init.md) - Generate initial configuration files for airshipctl +* [airshipctl config set-cluster](airshipctl_config_set-cluster.md) - Manage clusters +* [airshipctl config set-context](airshipctl_config_set-context.md) - Manage contexts +* [airshipctl config set-credentials](airshipctl_config_set-credentials.md) - Manage user credentials +* [airshipctl config use-context](airshipctl_config_use-context.md) - Switch to a different context + diff --git a/docs/source/cli/airshipctl_config_get-cluster.md b/docs/source/cli/airshipctl_config_get-cluster.md new file mode 100644 index 000000000..858c53478 --- /dev/null +++ b/docs/source/cli/airshipctl_config_get-cluster.md @@ -0,0 +1,48 @@ +## airshipctl config get-cluster + +Get cluster information from the airshipctl config + +### Synopsis + +Display a specific cluster or all defined clusters if no name is provided. + +Note that if a specific cluster's name is provided, the --cluster-type flag +must also be provided. +Valid values for the --cluster-type flag are [ephemeral|target]. + + +``` +airshipctl config get-cluster [NAME] [flags] +``` + +### Examples + +``` + +# List all clusters +airshipctl config get-clusters + +# Display a specific cluster +airshipctl config get-cluster --cluster-type=ephemeral exampleCluster + +``` + +### Options + +``` + --cluster-type string type of the desired cluster + -h, --help help for get-cluster +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_get-context.md b/docs/source/cli/airshipctl_config_get-context.md new file mode 100644 index 000000000..7d5df5bb5 --- /dev/null +++ b/docs/source/cli/airshipctl_config_get-context.md @@ -0,0 +1,47 @@ +## airshipctl config get-context + +Get context information from the airshipctl config + +### Synopsis + +Display information about contexts such as associated manifests, users, and clusters. + + +``` +airshipctl config get-context [NAME] [flags] +``` + +### Examples + +``` + +# List all contexts +airshipctl config get-contexts + +# Display the current context +airshipctl config get-context --current + +# Display a specific context +airshipctl config get-context exampleContext + +``` + +### Options + +``` + --current get the current context + -h, --help help for get-context +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_get-credential.md b/docs/source/cli/airshipctl_config_get-credential.md new file mode 100644 index 000000000..5a4908d62 --- /dev/null +++ b/docs/source/cli/airshipctl_config_get-credential.md @@ -0,0 +1,44 @@ +## airshipctl config get-credential + +Get user credentials from the airshipctl config + +### Synopsis + +Display a specific user's credentials, or all defined user +credentials if no name is provided. + + +``` +airshipctl config get-credential [NAME] [flags] +``` + +### Examples + +``` + +# List all user credentials +airshipctl config get-credentials + +# Display a specific user's credentials +airshipctl config get-credential exampleUser + +``` + +### Options + +``` + -h, --help help for get-credential +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_import.md b/docs/source/cli/airshipctl_config_import.md new file mode 100644 index 000000000..d02c2ebba --- /dev/null +++ b/docs/source/cli/airshipctl_config_import.md @@ -0,0 +1,40 @@ +## airshipctl config import + +Merge information from a kubernetes config file + +### Synopsis + +Merge the clusters, contexts, and users from an existing kubeConfig file into the airshipctl config file. + + +``` +airshipctl config import [flags] +``` + +### Examples + +``` + +# Import from a kubeConfig file" +airshipctl config import $HOME/.kube/config + +``` + +### Options + +``` + -h, --help help for import +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_init.md b/docs/source/cli/airshipctl_config_init.md new file mode 100644 index 000000000..c3c536e39 --- /dev/null +++ b/docs/source/cli/airshipctl_config_init.md @@ -0,0 +1,35 @@ +## airshipctl config init + +Generate initial configuration files for airshipctl + +### Synopsis + +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 + + +``` +airshipctl config init [flags] +``` + +### Options + +``` + -h, --help help for init +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_set-cluster.md b/docs/source/cli/airshipctl_config_set-cluster.md new file mode 100644 index 000000000..8857d2f85 --- /dev/null +++ b/docs/source/cli/airshipctl_config_set-cluster.md @@ -0,0 +1,67 @@ +## airshipctl config set-cluster + +Manage clusters + +### Synopsis + +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. + + +``` +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 + +``` + +### Options + +``` + --certificate-authority string path to a certificate authority + --cluster-type string the type of the cluster to add or modify + --embed-certs if set, embed the client certificate/key into the cluster + -h, --help help for set-cluster + --insecure-skip-tls-verify if set, disable certificate checking (default true) + --server string server to use for the cluster +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_set-context.md b/docs/source/cli/airshipctl_config_set-context.md new file mode 100644 index 000000000..855817b72 --- /dev/null +++ b/docs/source/cli/airshipctl_config_set-context.md @@ -0,0 +1,55 @@ +## airshipctl config set-context + +Manage contexts + +### Synopsis + +Create or modify a context in the airshipctl config files. + + +``` +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 + +``` + +### Options + +``` + --cluster string set the cluster for the specified context + --cluster-type string set the cluster-type for the specified context + --current update the current context + -h, --help help for set-context + --manifest string set the manifest for the specified context + --namespace string set the namespace for the specified context + --user string set the user for the specified context +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_set-credentials.md b/docs/source/cli/airshipctl_config_set-credentials.md new file mode 100644 index 000000000..1c4a6aaab --- /dev/null +++ b/docs/source/cli/airshipctl_config_set-credentials.md @@ -0,0 +1,64 @@ +## airshipctl config set-credentials + +Manage user credentials + +### Synopsis + +Create or modify a user credential in the airshipctl config file. + +Note that specifying more than one authentication method is an error. + + +``` +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 + +``` + +### Options + +``` + --client-certificate string path to a certificate + --client-key string path to a key file + --embed-certs if set, embed the client certificate/key into the credential + -h, --help help for set-credentials + --password string password for the credential; mutually exclusive with token flag. + --token string token to use for the credential; mutually exclusive with username and password flags. + --username string username for the credential; mutually exclusive with token flag. +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_config_use-context.md b/docs/source/cli/airshipctl_config_use-context.md new file mode 100644 index 000000000..81027d9d9 --- /dev/null +++ b/docs/source/cli/airshipctl_config_use-context.md @@ -0,0 +1,40 @@ +## airshipctl config use-context + +Switch to a different context + +### Synopsis + +Switch to a different context defined in the airshipctl config file. + + +``` +airshipctl config use-context NAME [flags] +``` + +### Examples + +``` + +# Switch to a context named "exampleContext" +airshipctl config use-context exampleContext + +``` + +### Options + +``` + -h, --help help for use-context +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl config](airshipctl_config.md) - Manage the airshipctl config file + diff --git a/docs/source/cli/airshipctl_document.md b/docs/source/cli/airshipctl_document.md new file mode 100644 index 000000000..9b0e20fc6 --- /dev/null +++ b/docs/source/cli/airshipctl_document.md @@ -0,0 +1,29 @@ +## airshipctl document + +Manage deployment documents + +### Synopsis + +Manage deployment documents + +### Options + +``` + -h, --help help for document +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl document plugin](airshipctl_document_plugin.md) - Run as a kustomize exec plugin +* [airshipctl document pull](airshipctl_document_pull.md) - Pulls documents from remote git repository +* [airshipctl document render](airshipctl_document_render.md) - Render documents from model + diff --git a/docs/source/cli/airshipctl_document_plugin.md b/docs/source/cli/airshipctl_document_plugin.md new file mode 100644 index 000000000..7fd39ae80 --- /dev/null +++ b/docs/source/cli/airshipctl_document_plugin.md @@ -0,0 +1,64 @@ +## airshipctl document plugin + +Run as a kustomize exec plugin + +### Synopsis + +This command is meant to be used as a kustomize exec plugin. + +The command reads the configuration file CONFIG passed as a first argument and +determines a particular plugin to execute. Additional arguments may be passed +to this command and can be used by the particular plugin. + +CONFIG must be a structured kubernetes manifest (i.e. resource) and must have +'apiVersion' and 'kind' keys. If the appropriate plugin was not found, the +command returns an error. + + +``` +airshipctl document plugin CONFIG [ARGS] [flags] +``` + +### Examples + +``` + +# Perform a replacement on a deployment. Prior to running this command, +# the file '/tmp/replacement.yaml' should be created as follows: +--- +apiVersion: airshipit.org/v1alpha1 +kind: ReplacementTransformer +metadata: + name: notImportantHere +replacements: +- source: + value: nginx:newtag + target: + objref: + kind: Deployment + fieldrefs: + - spec.template.spec.containers[name=nginx-latest].image + +# The replacement can then be performed. Output defaults to stdout. +airshipctl document plugin /tmp/replacement.yaml + +``` + +### Options + +``` + -h, --help help for plugin +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl document](airshipctl_document.md) - Manage deployment documents + diff --git a/docs/source/cli/airshipctl_document_pull.md b/docs/source/cli/airshipctl_document_pull.md new file mode 100644 index 000000000..086c240e4 --- /dev/null +++ b/docs/source/cli/airshipctl_document_pull.md @@ -0,0 +1,30 @@ +## airshipctl document pull + +Pulls documents from remote git repository + +### Synopsis + +Pulls documents from remote git repository + +``` +airshipctl document pull [flags] +``` + +### Options + +``` + -h, --help help for pull +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl document](airshipctl_document.md) - Manage deployment documents + diff --git a/docs/source/cli/airshipctl_document_render.md b/docs/source/cli/airshipctl_document_render.md new file mode 100644 index 000000000..15c1b6e0d --- /dev/null +++ b/docs/source/cli/airshipctl_document_render.md @@ -0,0 +1,35 @@ +## airshipctl document render + +Render documents from model + +### Synopsis + +Render documents from model + +``` +airshipctl document render [flags] +``` + +### Options + +``` + -a, --annotation stringArray filter documents by Annotations + -g, --apiversion stringArray filter documents by API version + -f, --filter string logical expression for document filtering + -h, --help help for render + -k, --kind stringArray filter documents by Kinds + -l, --label stringArray filter documents by Labels +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl document](airshipctl_document.md) - Manage deployment documents + diff --git a/docs/source/cli/airshipctl_phase.md b/docs/source/cli/airshipctl_phase.md new file mode 100644 index 000000000..263ce9e88 --- /dev/null +++ b/docs/source/cli/airshipctl_phase.md @@ -0,0 +1,29 @@ +## airshipctl phase + +Manage phases + +### Synopsis + +This command provides capabilities for interacting with phases, +such as getting list and applying specific one. + + +### Options + +``` + -h, --help help for phase +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl phase apply](airshipctl_phase_apply.md) - Apply phase to a cluster + diff --git a/docs/source/cli/airshipctl_phase_apply.md b/docs/source/cli/airshipctl_phase_apply.md new file mode 100644 index 000000000..7ebb768a5 --- /dev/null +++ b/docs/source/cli/airshipctl_phase_apply.md @@ -0,0 +1,42 @@ +## airshipctl phase apply + +Apply phase to a cluster + +### Synopsis + +Apply specific phase to kubernetes cluster such as control-plane, workloads, initinfra + + +``` +airshipctl phase apply PHASE_NAME [flags] +``` + +### Examples + +``` + +# Apply initinfra phase to a cluster +airshipctl phase apply initinfra + +``` + +### Options + +``` + --dry-run don't deliver documents to the cluster, simulate the changes instead + -h, --help help for apply + --prune if set to true, command will delete all kubernetes resources that are not defined in airship documents and have airshipit.org/deployed=apply label +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl phase](airshipctl_phase.md) - Manage phases + diff --git a/docs/source/cli/airshipctl_secret.md b/docs/source/cli/airshipctl_secret.md new file mode 100644 index 000000000..02812df4c --- /dev/null +++ b/docs/source/cli/airshipctl_secret.md @@ -0,0 +1,27 @@ +## airshipctl secret + +Manage secrets + +### Synopsis + +Manage secrets + +### Options + +``` + -h, --help help for secret +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components +* [airshipctl secret generate](airshipctl_secret_generate.md) - Generate various secrets + diff --git a/docs/source/cli/airshipctl_secret_generate.md b/docs/source/cli/airshipctl_secret_generate.md new file mode 100644 index 000000000..342940939 --- /dev/null +++ b/docs/source/cli/airshipctl_secret_generate.md @@ -0,0 +1,27 @@ +## airshipctl secret generate + +Generate various secrets + +### Synopsis + +Generate various secrets + +### Options + +``` + -h, --help help for generate +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl secret](airshipctl_secret.md) - Manage secrets +* [airshipctl secret generate masterpassphrase](airshipctl_secret_generate_masterpassphrase.md) - Generates a secure master passphrase + diff --git a/docs/source/cli/airshipctl_secret_generate_masterpassphrase.md b/docs/source/cli/airshipctl_secret_generate_masterpassphrase.md new file mode 100644 index 000000000..2d2c2a157 --- /dev/null +++ b/docs/source/cli/airshipctl_secret_generate_masterpassphrase.md @@ -0,0 +1,30 @@ +## airshipctl secret generate masterpassphrase + +Generates a secure master passphrase + +### Synopsis + +Generates a secure master passphrase + +``` +airshipctl secret generate masterpassphrase [flags] +``` + +### Options + +``` + -h, --help help for masterpassphrase +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl secret generate](airshipctl_secret_generate.md) - Generate various secrets + diff --git a/docs/source/cli/airshipctl_version.md b/docs/source/cli/airshipctl_version.md new file mode 100644 index 000000000..86404889f --- /dev/null +++ b/docs/source/cli/airshipctl_version.md @@ -0,0 +1,30 @@ +## airshipctl version + +Show the version number of airshipctl + +### Synopsis + +Show the version number of airshipctl + +``` +airshipctl version [flags] +``` + +### Options + +``` + -h, --help help for version +``` + +### Options inherited from parent commands + +``` + --airshipconf string Path to file for airshipctl configuration. (default "$HOME/.airship/config") + --debug enable verbose output + --kubeconfig string Path to kubeconfig associated with airshipctl configuration. (default "$HOME/.airship/kubeconfig") +``` + +### SEE ALSO + +* [airshipctl](airshipctl.md) - A unified entrypoint to various airship components + diff --git a/docs/source/cli/cli.rst b/docs/source/cli/cli.rst deleted file mode 100644 index 3569d3057..000000000 --- a/docs/source/cli/cli.rst +++ /dev/null @@ -1,573 +0,0 @@ -.. - All Rights Reserved. - - Licensed under the Apache License, Version 2.0 (the "License"); you may - not use this file except in compliance with the License. You may obtain - a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - License for the specific language governing permissions and limitations - under the License. - -.. _airshipctl-cli: - -============== -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: - -Root Group -========== - -Allows you to perform top level commands - -:: - - airshipctl - -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 - -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: - -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: - -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 - -.. _config-group: - -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 --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 - -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 - -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 - -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 - -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: - -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 - -.. _secret-group: - -Secret Group -============ - -Manages secrets. - -Generate --------- - -Generates various secrets. - -MasterPassphrase -^^^^^^^^^^^^^^^^ - -Generates a secure master passphrase. - -Usage: - -:: - - airshipctl secret generate masterpassphrase diff --git a/docs/source/index.rst b/docs/source/index.rst index f874a49ac..2489a0406 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -28,4 +28,4 @@ Welcome to airshipctl's Documentation! developers plugins testing-guidelines - cli/cli + Commands diff --git a/docs/tools/generate_cli_docs.go b/docs/tools/generate_cli_docs.go new file mode 100644 index 000000000..a40cfc7ca --- /dev/null +++ b/docs/tools/generate_cli_docs.go @@ -0,0 +1,40 @@ +/* + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package main + +import ( + "fmt" + "os" + + "github.com/spf13/cobra/doc" + + "opendev.org/airship/airshipctl/cmd" +) + +func main() { + rootCmd, _, err := cmd.NewAirshipCTLCommand(os.Stdout) + if err != nil { + fmt.Fprintln(os.Stdout, err) + os.Exit(1) + } + + // Remote auto-generated notice + rootCmd.DisableAutoGenTag = true + + if err := doc.GenMarkdownTree(rootCmd, "./docs/source/cli"); err != nil { + fmt.Fprintln(os.Stdout, err) + os.Exit(1) + } +} diff --git a/go.sum b/go.sum index 087b10202..c04a97e1f 100644 --- a/go.sum +++ b/go.sum @@ -94,7 +94,9 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -495,6 +497,7 @@ github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYe github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= @@ -504,6 +507,7 @@ github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lz github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=