mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-30 17:50:07 +00:00
170 lines
7.2 KiB
Text
170 lines
7.2 KiB
Text
|
#compdef rke
|
||
|
|
||
|
typeset -A opt_args
|
||
|
|
||
|
_arguments -C \
|
||
|
'1:cmd:->cmds' \
|
||
|
'2:subcmd:->subcmds' \
|
||
|
'*:: :->args' \
|
||
|
&& ret=0
|
||
|
|
||
|
case "$state" in
|
||
|
(cmds)
|
||
|
local commands; commands=(
|
||
|
'up:Bring the cluster up'
|
||
|
'remove:Teardown the cluster and clean cluster nodes'
|
||
|
'version:Show cluster Kubernetes version'
|
||
|
'config:Setup cluster configuration'
|
||
|
'etcd:etcd snapshot save/restore operations in k8s cluster'
|
||
|
'cert:Certificates management for RKE cluster'
|
||
|
'encrypt:Manage cluster encryption provider keys'
|
||
|
'help:Shows a list of commands or help for one command'
|
||
|
)
|
||
|
_describe -t commands 'command' commands && ret=0
|
||
|
;;
|
||
|
(subcmds)
|
||
|
case $line[1] in
|
||
|
(up)
|
||
|
local ups; ups=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--local:Deploy Kubernetes cluster locally'
|
||
|
'--dind:Deploy Kubernetes cluster in docker containers (experimental)'
|
||
|
'--dind-storage-driver:Storage driver for the docker in docker containers (experimental)'
|
||
|
'--dind-dns-server:DNS resolver to be used by docker in docker container. Useful if host is running systemd-resovld (default: "8.8.8.8")'
|
||
|
'--update-only:Skip idempotent deployment of control and etcd plane'
|
||
|
'--disable-port-check:Disable port check validation between nodes'
|
||
|
'--init:Initiate RKE cluster'
|
||
|
'--cert-dir:Specify a certificate dir path'
|
||
|
'--custom-certs:Use custom certificates from a cert dir'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t ups 'up' ups && ret=0
|
||
|
;;
|
||
|
(remove)
|
||
|
local removes; removes=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--force:Force removal of the cluster'
|
||
|
'--local:Remove Kubernetes cluster locally'
|
||
|
'--dind:Remove Kubernetes cluster deplozed in dind mode'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t removes 'remove' removes && ret=0
|
||
|
;;
|
||
|
(version)
|
||
|
local versions; versions=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
)
|
||
|
_describe -t versions 'version' versions && ret=0
|
||
|
;;
|
||
|
(config)
|
||
|
local configs; configs=(
|
||
|
'--name:Name of the configuration file (default: "cluster.yml")'
|
||
|
'-n:Name of the configuration file (default: "cluster.yml")'
|
||
|
'--empty:Generate Empty configuration file'
|
||
|
'-e:Generate Empty configuration file'
|
||
|
'--print:Print configuration'
|
||
|
'-p:Print configuration'
|
||
|
'--system-images:Generate the default system images'
|
||
|
'-s:Generate the default system images'
|
||
|
'--list-version:List the default kubernetes version'
|
||
|
'-l:List the default kubernetes version'
|
||
|
'--all:Used with -s and -l, get all available versions'
|
||
|
'-a:Used with -s and -l, get all available versions'
|
||
|
'--version:Generate the default system images for specific k8s versions'
|
||
|
)
|
||
|
_describe -t configs 'config' configs && ret=0
|
||
|
;;
|
||
|
(etcd)
|
||
|
local etcds; etcds=(
|
||
|
'snapshot-save:Take snapshot on all etcd hosts'
|
||
|
'snapshot-restore:Restore existing snapshot'
|
||
|
)
|
||
|
_describe -t etcds 'etcd' etcds && ret=0
|
||
|
;;
|
||
|
(cert)
|
||
|
local certs; certs=(
|
||
|
'rotate:Rotate RKE cluster certificates'
|
||
|
'generate-csr:Generate certificate sign requests for k8s components'
|
||
|
)
|
||
|
_describe -t certs 'cert' certs && ret=0
|
||
|
;;
|
||
|
(encrypt)
|
||
|
local encrypts; encrypts=(
|
||
|
'rotate-key:Rotate cluster encryption provider key'
|
||
|
)
|
||
|
_describe -t encrypts "encrypts" encrypts && ret=0
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
(args)
|
||
|
case $line[2] in
|
||
|
(snapshot-save)
|
||
|
local saveopts; saveopts=(
|
||
|
'--name:Specify snapshot name'
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--s3:Enabled backup to s3'
|
||
|
'--s3-endpoint:Specify s3 endpoint url (default: "s3.amazonaws.com")'
|
||
|
'--s3-endpoint-ca:Specify a custom CA cert to connect to S3 endpoint'
|
||
|
'--access-key:Specify s3 accessKey'
|
||
|
'--secret-key:Specify s3 secretKey'
|
||
|
'--bucket-name:Specify s3 bucket name'
|
||
|
'--region:Specify the s3 bucket location (optional)'
|
||
|
'--folder:Specify s3 folder name'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t saveopts 'snapshot-save' saveopts && ret=0
|
||
|
;;
|
||
|
(snapshot-restore)
|
||
|
local restoreopts; restoreopts=(
|
||
|
'--name:Specify snapshot name'
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--s3:Enabled backup to s3'
|
||
|
'--s3-endpoint:Specify s3 endpoint url (default: "s3.amazonaws.com")'
|
||
|
'--s3-endpoint-ca:Specify a custom CA cert to connect to S3 endpoint'
|
||
|
'--access-key:Specify s3 accessKey'
|
||
|
'--secret-key:Specify s3 secretKey'
|
||
|
'--bucket-name:Specify s3 bucket name'
|
||
|
'--region:Specify the s3 bucket location (optional)'
|
||
|
'--folder:Specify s3 folder name'
|
||
|
'--cert-dir value:Specify a certificate dir path'
|
||
|
'--custom-certs:Use custom certificates from a cert dir'
|
||
|
'--use-local-state:Use local state file (do not check or use snapshot archive for state file)'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t restoreopts 'snapshot-restore' restoreopts && ret=0
|
||
|
;;
|
||
|
(rotate)
|
||
|
local rotateopts; rotateopts=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--service:Specify a k8s service to rotate certs, (allowed values: kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy, etcd)'
|
||
|
'--rotate-ca:Rotate all certificates including CA certs'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t rotateopts 'rotate' rotateopts && ret=0
|
||
|
;;
|
||
|
(generate-csr)
|
||
|
local generatecsropts; generatecsropts=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--cert-dir: Specify a certificate dir path'
|
||
|
)
|
||
|
_describe -t generatecsropts 'generate-csr' generatecsropts && ret=0
|
||
|
;;
|
||
|
(rotate-key)
|
||
|
local rotatekeyopts; rotatekeyopts=(
|
||
|
'--config:Specify an alternate cluster YAML file (default: "cluster.yml") $RKE_CONFIG'
|
||
|
'--ssh-agent-auth:Use SSH Agent Auth defined by SSH_AUTH_SOCK'
|
||
|
'--ignore-docker-version:Disable Docker version check'
|
||
|
)
|
||
|
_describe -t rotatekeyopts 'rotate-key' rotatekeyopts && ret=0
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
return ret
|