Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
Kubespray
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Mirror
Kubespray
Commits
a03f3739
Commit
a03f3739
authored
9 years ago
by
Smaine Kahlouch
Browse files
Options
Downloads
Patches
Plain Diff
Add kubectl bash completion, missing script
parent
bfe78848
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
roles/kubernetes/master/files/kubectl_bash_completion.sh
+1315
-0
1315 additions, 0 deletions
roles/kubernetes/master/files/kubectl_bash_completion.sh
with
1315 additions
and
0 deletions
roles/kubernetes/master/files/kubectl_bash_completion.sh
0 → 100644
+
1315
−
0
View file @
a03f3739
#!/bin/bash
__debug
()
{
if
[[
-n
${
BASH_COMP_DEBUG_FILE
}
]]
;
then
echo
"
$*
"
>>
"
${
BASH_COMP_DEBUG_FILE
}
"
fi
}
# Homebrew on Macs have version 1.3 of bash-completion which doesn't include
# _init_completion. This is a very minimal version of that function.
__my_init_completion
()
{
COMPREPLY
=()
_get_comp_words_by_ref cur prev words cword
}
__index_of_word
()
{
local
w
word
=
$1
shift
index
=
0
for
w
in
"
$@
"
;
do
[[
$w
=
"
$word
"
]]
&&
return
index
=
$((
index+1
))
done
index
=
-1
}
__contains_word
()
{
local
w
word
=
$1
;
shift
for
w
in
"
$@
"
;
do
[[
$w
=
"
$word
"
]]
&&
return
done
return
1
}
__handle_reply
()
{
__debug
"
${
FUNCNAME
}
"
case
$cur
in
-
*
)
compopt
-o
nospace
local
allflags
if
[
${#
must_have_one_flag
[@]
}
-ne
0
]
;
then
allflags
=(
"
${
must_have_one_flag
[@]
}
"
)
else
allflags
=(
"
${
flags
[*]
}
${
two_word_flags
[*]
}
"
)
fi
COMPREPLY
=(
$(
compgen
-W
"
${
allflags
[*]
}
"
--
"
$cur
"
)
)
[[
$COMPREPLY
==
*
=
]]
||
compopt +o nospace
return
0
;
;;
esac
# check if we are handling a flag with special work handling
local
index
__index_of_word
"
${
prev
}
"
"
${
flags_with_completion
[@]
}
"
if
[[
${
index
}
-ge
0
]]
;
then
${
flags_completion
[
${
index
}
]
}
return
fi
# we are parsing a flag and don't have a special handler, no completion
if
[[
${
cur
}
!=
"
${
words
[cword]
}
"
]]
;
then
return
fi
local
completions
if
[[
${#
must_have_one_flag
[@]
}
-ne
0
]]
;
then
completions
=(
"
${
must_have_one_flag
[@]
}
"
)
elif
[[
${#
must_have_one_noun
[@]
}
-ne
0
]]
;
then
completions
=(
"
${
must_have_one_noun
[@]
}
"
)
else
completions
=(
"
${
commands
[@]
}
"
)
fi
COMPREPLY
=(
$(
compgen
-W
"
${
completions
[*]
}
"
--
"
$cur
"
)
)
if
[[
${#
COMPREPLY
[@]
}
-eq
0
]]
;
then
declare
-F
__custom_func
>
/dev/null
&&
__custom_func
fi
}
# The arguments should be in the form "ext1|ext2|extn"
__handle_filename_extension_flag
()
{
local
ext
=
"
$1
"
_filedir
"@(
${
ext
}
)"
}
__handle_subdirs_in_dir_flag
()
{
local dir
=
"
$1
"
pushd
"
${
dir
}
"
>
/dev/null 2>&1
&&
_filedir
-d
&&
popd
>
/dev/null 2>&1
}
__handle_flag
()
{
__debug
"
${
FUNCNAME
}
: c is
$c
words[c] is
${
words
[c]
}
"
# if a command required a flag, and we found it, unset must_have_one_flag()
local
flagname
=
${
words
[c]
}
# if the word contained an =
if
[[
${
words
[c]
}
==
*
"="
*
]]
;
then
flagname
=
${
flagname
%=*
}
# strip everything after the =
flagname
=
"
${
flagname
}
="
# but put the = back
fi
__debug
"
${
FUNCNAME
}
: looking for
${
flagname
}
"
if
__contains_word
"
${
flagname
}
"
"
${
must_have_one_flag
[@]
}
"
;
then
must_have_one_flag
=()
fi
# skip the argument to a two word flag
if
__contains_word
"
${
words
[c]
}
"
"
${
two_word_flags
[@]
}
"
;
then
c
=
$((
c+1
))
# if we are looking for a flags value, don't show commands
if
[[
$c
-eq
$cword
]]
;
then
commands
=()
fi
fi
# skip the flag itself
c
=
$((
c+1
))
}
__handle_noun
()
{
__debug
"
${
FUNCNAME
}
: c is
$c
words[c] is
${
words
[c]
}
"
if
__contains_word
"
${
words
[c]
}
"
"
${
must_have_one_noun
[@]
}
"
;
then
must_have_one_noun
=()
fi
nouns+
=(
"
${
words
[c]
}
"
)
c
=
$((
c+1
))
}
__handle_command
()
{
__debug
"
${
FUNCNAME
}
: c is
$c
words[c] is
${
words
[c]
}
"
local
next_command
if
[[
-n
${
last_command
}
]]
;
then
next_command
=
"_
${
last_command
}
_
${
words
[c]
}
"
else
next_command
=
"_
${
words
[c]
}
"
fi
c
=
$((
c+1
))
__debug
"
${
FUNCNAME
}
: looking for
${
next_command
}
"
declare
-F
$next_command
>
/dev/null
&&
$next_command
}
__handle_word
()
{
if
[[
$c
-ge
$cword
]]
;
then
__handle_reply
return
fi
__debug
"
${
FUNCNAME
}
: c is
$c
words[c] is
${
words
[c]
}
"
if
[[
"
${
words
[c]
}
"
==
-
*
]]
;
then
__handle_flag
elif
__contains_word
"
${
words
[c]
}
"
"
${
commands
[@]
}
"
;
then
__handle_command
else
__handle_noun
fi
__handle_word
}
# call kubectl get $1,
__kubectl_parse_get
()
{
local
template
template
=
"{{ range .items }}{{ .metadata.name }} {{ end }}"
local
kubectl_out
if
kubectl_out
=
$(
kubectl get
-o
template
--template
=
"
${
template
}
"
"
$1
"
2>/dev/null
)
;
then
COMPREPLY
=(
$(
compgen
-W
"
${
kubectl_out
[*]
}
"
--
"
$cur
"
)
)
fi
}
__kubectl_get_resource
()
{
if
[[
${#
nouns
[@]
}
-eq
0
]]
;
then
return
1
fi
__kubectl_parse_get
"
${
nouns
[
${#
nouns
[@]
}
-1]
}
"
}
__kubectl_get_resource_pod
()
{
__kubectl_parse_get
"pod"
}
__kubectl_get_resource_rc
()
{
__kubectl_parse_get
"rc"
}
# $1 is the name of the pod we want to get the list of containers inside
__kubectl_get_containers
()
{
local
template
template
=
"{{ range .spec.containers }}{{ .name }} {{ end }}"
__debug
"
${
FUNCNAME
}
nouns are
${
nouns
[*]
}
"
local
len
=
"
${#
nouns
[@]
}
"
if
[[
${
len
}
-ne
1
]]
;
then
return
fi
local
last
=
${
nouns
[
${
len
}
-1]
}
local
kubectl_out
if
kubectl_out
=
$(
kubectl get
-o
template
--template
=
"
${
template
}
"
pods
"
${
last
}
"
2>/dev/null
)
;
then
COMPREPLY
=(
$(
compgen
-W
"
${
kubectl_out
[*]
}
"
--
"
$cur
"
)
)
fi
}
# Require both a pod and a container to be specified
__kubectl_require_pod_and_container
()
{
if
[[
${#
nouns
[@]
}
-eq
0
]]
;
then
__kubectl_parse_get pods
return
0
fi
;
__kubectl_get_containers
return
0
}
__custom_func
()
{
case
${
last_command
}
in
kubectl_get
|
kubectl_describe
|
kubectl_delete
|
kubectl_label
|
kubectl_stop
)
__kubectl_get_resource
return
;;
kubectl_logs
)
__kubectl_require_pod_and_container
return
;;
kubectl_exec
)
__kubectl_get_resource_pod
return
;;
kubectl_rolling-update
)
__kubectl_get_resource_rc
return
;;
*
)
;;
esac
}
_kubectl_get
()
{
last_command
=
"kubectl_get"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--all-namespaces"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--label-columns="
)
two_word_flags+
=(
"-L"
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--selector="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
flags+
=(
"--watch"
)
flags+
=(
"-w"
)
flags+
=(
"--watch-only"
)
must_have_one_flag
=()
must_have_one_noun
=()
must_have_one_noun+
=(
"componentstatus"
)
must_have_one_noun+
=(
"daemonset"
)
must_have_one_noun+
=(
"deployment"
)
must_have_one_noun+
=(
"endpoints"
)
must_have_one_noun+
=(
"event"
)
must_have_one_noun+
=(
"horizontalpodautoscaler"
)
must_have_one_noun+
=(
"ingress"
)
must_have_one_noun+
=(
"job"
)
must_have_one_noun+
=(
"limitrange"
)
must_have_one_noun+
=(
"namespace"
)
must_have_one_noun+
=(
"node"
)
must_have_one_noun+
=(
"persistentvolume"
)
must_have_one_noun+
=(
"persistentvolumeclaim"
)
must_have_one_noun+
=(
"pod"
)
must_have_one_noun+
=(
"podtemplate"
)
must_have_one_noun+
=(
"replicationcontroller"
)
must_have_one_noun+
=(
"resourcequota"
)
must_have_one_noun+
=(
"secret"
)
must_have_one_noun+
=(
"service"
)
must_have_one_noun+
=(
"serviceaccount"
)
must_have_one_noun+
=(
"thirdpartyresource"
)
}
_kubectl_describe
()
{
last_command
=
"kubectl_describe"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--selector="
)
two_word_flags+
=(
"-l"
)
must_have_one_flag
=()
must_have_one_noun
=()
must_have_one_noun+
=(
"daemonset"
)
must_have_one_noun+
=(
"deployment"
)
must_have_one_noun+
=(
"endpoints"
)
must_have_one_noun+
=(
"horizontalpodautoscaler"
)
must_have_one_noun+
=(
"ingress"
)
must_have_one_noun+
=(
"job"
)
must_have_one_noun+
=(
"limitrange"
)
must_have_one_noun+
=(
"namespace"
)
must_have_one_noun+
=(
"node"
)
must_have_one_noun+
=(
"persistentvolume"
)
must_have_one_noun+
=(
"persistentvolumeclaim"
)
must_have_one_noun+
=(
"pod"
)
must_have_one_noun+
=(
"replicationcontroller"
)
must_have_one_noun+
=(
"resourcequota"
)
must_have_one_noun+
=(
"secret"
)
must_have_one_noun+
=(
"service"
)
must_have_one_noun+
=(
"serviceaccount"
)
}
_kubectl_create
()
{
last_command
=
"kubectl_create"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--save-config"
)
flags+
=(
"--schema-cache-dir="
)
flags+
=(
"--validate"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--filename="
)
must_have_one_flag+
=(
"-f"
)
must_have_one_noun
=()
}
_kubectl_replace
()
{
last_command
=
"kubectl_replace"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--cascade"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--force"
)
flags+
=(
"--grace-period="
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--save-config"
)
flags+
=(
"--schema-cache-dir="
)
flags+
=(
"--timeout="
)
flags+
=(
"--validate"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--filename="
)
must_have_one_flag+
=(
"-f"
)
must_have_one_noun
=()
}
_kubectl_patch
()
{
last_command
=
"kubectl_patch"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--patch="
)
two_word_flags+
=(
"-p"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--patch="
)
must_have_one_flag+
=(
"-p"
)
must_have_one_noun
=()
}
_kubectl_delete
()
{
last_command
=
"kubectl_delete"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--all"
)
flags+
=(
"--cascade"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--grace-period="
)
flags+
=(
"--ignore-not-found"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--selector="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--timeout="
)
must_have_one_flag
=()
must_have_one_noun
=()
must_have_one_noun+
=(
"componentstatus"
)
must_have_one_noun+
=(
"daemonset"
)
must_have_one_noun+
=(
"deployment"
)
must_have_one_noun+
=(
"endpoints"
)
must_have_one_noun+
=(
"event"
)
must_have_one_noun+
=(
"horizontalpodautoscaler"
)
must_have_one_noun+
=(
"ingress"
)
must_have_one_noun+
=(
"job"
)
must_have_one_noun+
=(
"limitrange"
)
must_have_one_noun+
=(
"namespace"
)
must_have_one_noun+
=(
"node"
)
must_have_one_noun+
=(
"persistentvolume"
)
must_have_one_noun+
=(
"persistentvolumeclaim"
)
must_have_one_noun+
=(
"pod"
)
must_have_one_noun+
=(
"podtemplate"
)
must_have_one_noun+
=(
"replicationcontroller"
)
must_have_one_noun+
=(
"resourcequota"
)
must_have_one_noun+
=(
"secret"
)
must_have_one_noun+
=(
"service"
)
must_have_one_noun+
=(
"serviceaccount"
)
must_have_one_noun+
=(
"thirdpartyresource"
)
}
_kubectl_edit
()
{
last_command
=
"kubectl_edit"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--save-config"
)
flags+
=(
"--windows-line-endings"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_apply
()
{
last_command
=
"kubectl_apply"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--schema-cache-dir="
)
flags+
=(
"--validate"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--filename="
)
must_have_one_flag+
=(
"-f"
)
must_have_one_noun
=()
}
_kubectl_namespace
()
{
last_command
=
"kubectl_namespace"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_logs
()
{
last_command
=
"kubectl_logs"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--container="
)
two_word_flags+
=(
"-c"
)
flags+
=(
"--follow"
)
flags+
=(
"-f"
)
flags+
=(
"--interactive"
)
flags+
=(
"--limit-bytes="
)
flags+
=(
"--previous"
)
flags+
=(
"-p"
)
flags+
=(
"--since="
)
flags+
=(
"--since-time="
)
flags+
=(
"--tail="
)
flags+
=(
"--timestamps"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_rolling-update
()
{
last_command
=
"kubectl_rolling-update"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--deployment-label-key="
)
flags+
=(
"--dry-run"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--image="
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--poll-interval="
)
flags+
=(
"--rollback"
)
flags+
=(
"--schema-cache-dir="
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
flags+
=(
"--timeout="
)
flags+
=(
"--update-period="
)
flags+
=(
"--validate"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--filename="
)
must_have_one_flag+
=(
"-f"
)
must_have_one_flag+
=(
"--image="
)
must_have_one_noun
=()
}
_kubectl_scale
()
{
last_command
=
"kubectl_scale"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--current-replicas="
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--replicas="
)
flags+
=(
"--resource-version="
)
flags+
=(
"--timeout="
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--replicas="
)
must_have_one_noun
=()
}
_kubectl_attach
()
{
last_command
=
"kubectl_attach"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--container="
)
two_word_flags+
=(
"-c"
)
flags+
=(
"--stdin"
)
flags+
=(
"-i"
)
flags+
=(
"--tty"
)
flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_exec
()
{
last_command
=
"kubectl_exec"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--container="
)
two_word_flags+
=(
"-c"
)
flags+
=(
"--pod="
)
two_word_flags+
=(
"-p"
)
flags+
=(
"--stdin"
)
flags+
=(
"-i"
)
flags+
=(
"--tty"
)
flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_port-forward
()
{
last_command
=
"kubectl_port-forward"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--pod="
)
two_word_flags+
=(
"-p"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_proxy
()
{
last_command
=
"kubectl_proxy"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--accept-hosts="
)
flags+
=(
"--accept-paths="
)
flags+
=(
"--address="
)
flags+
=(
"--api-prefix="
)
flags+
=(
"--disable-filter"
)
flags+
=(
"--port="
)
two_word_flags+
=(
"-p"
)
flags+
=(
"--reject-methods="
)
flags+
=(
"--reject-paths="
)
flags+
=(
"--unix-socket="
)
two_word_flags+
=(
"-u"
)
flags+
=(
"--www="
)
two_word_flags+
=(
"-w"
)
flags+
=(
"--www-prefix="
)
two_word_flags+
=(
"-P"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_run
()
{
last_command
=
"kubectl_run"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--attach"
)
flags+
=(
"--command"
)
flags+
=(
"--dry-run"
)
flags+
=(
"--env="
)
flags+
=(
"--expose"
)
flags+
=(
"--generator="
)
flags+
=(
"--hostport="
)
flags+
=(
"--image="
)
flags+
=(
"--labels="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--leave-stdin-open"
)
flags+
=(
"--limits="
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--overrides="
)
flags+
=(
"--port="
)
flags+
=(
"--replicas="
)
two_word_flags+
=(
"-r"
)
flags+
=(
"--requests="
)
flags+
=(
"--restart="
)
flags+
=(
"--save-config"
)
flags+
=(
"--service-generator="
)
flags+
=(
"--service-overrides="
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--stdin"
)
flags+
=(
"-i"
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
flags+
=(
"--tty"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--image="
)
must_have_one_noun
=()
}
_kubectl_expose
()
{
last_command
=
"kubectl_expose"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--container-port="
)
flags+
=(
"--create-external-load-balancer"
)
flags+
=(
"--dry-run"
)
flags+
=(
"--external-ip="
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--generator="
)
flags+
=(
"--labels="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--load-balancer-ip="
)
flags+
=(
"--name="
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--overrides="
)
flags+
=(
"--port="
)
flags+
=(
"--protocol="
)
flags+
=(
"--save-config"
)
flags+
=(
"--selector="
)
flags+
=(
"--session-affinity="
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--target-port="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
flags+
=(
"--type="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_autoscale
()
{
last_command
=
"kubectl_autoscale"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--cpu-percent="
)
flags+
=(
"--dry-run"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--generator="
)
flags+
=(
"--max="
)
flags+
=(
"--min="
)
flags+
=(
"--name="
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--save-config"
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--max="
)
must_have_one_noun
=()
}
_kubectl_label
()
{
last_command
=
"kubectl_label"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--all"
)
flags+
=(
"--dry-run"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--overwrite"
)
flags+
=(
"--resource-version="
)
flags+
=(
"--selector="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_noun
=()
must_have_one_noun+
=(
"componentstatus"
)
must_have_one_noun+
=(
"daemonset"
)
must_have_one_noun+
=(
"deployment"
)
must_have_one_noun+
=(
"endpoints"
)
must_have_one_noun+
=(
"event"
)
must_have_one_noun+
=(
"horizontalpodautoscaler"
)
must_have_one_noun+
=(
"ingress"
)
must_have_one_noun+
=(
"job"
)
must_have_one_noun+
=(
"limitrange"
)
must_have_one_noun+
=(
"namespace"
)
must_have_one_noun+
=(
"node"
)
must_have_one_noun+
=(
"persistentvolume"
)
must_have_one_noun+
=(
"persistentvolumeclaim"
)
must_have_one_noun+
=(
"pod"
)
must_have_one_noun+
=(
"podtemplate"
)
must_have_one_noun+
=(
"replicationcontroller"
)
must_have_one_noun+
=(
"resourcequota"
)
must_have_one_noun+
=(
"secret"
)
must_have_one_noun+
=(
"service"
)
must_have_one_noun+
=(
"serviceaccount"
)
must_have_one_noun+
=(
"thirdpartyresource"
)
}
_kubectl_annotate
()
{
last_command
=
"kubectl_annotate"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--all"
)
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--overwrite"
)
flags+
=(
"--resource-version="
)
flags+
=(
"--selector="
)
two_word_flags+
=(
"-l"
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_view
()
{
last_command
=
"kubectl_config_view"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--flatten"
)
flags+
=(
"--merge"
)
flags+
=(
"--minify"
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--raw"
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_set-cluster
()
{
last_command
=
"kubectl_config_set-cluster"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--api-version="
)
flags+
=(
"--certificate-authority="
)
flags+
=(
"--embed-certs"
)
flags+
=(
"--insecure-skip-tls-verify"
)
flags+
=(
"--server="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_set-credentials
()
{
last_command
=
"kubectl_config_set-credentials"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--client-certificate="
)
flags+
=(
"--client-key="
)
flags+
=(
"--embed-certs"
)
flags+
=(
"--password="
)
flags+
=(
"--token="
)
flags+
=(
"--username="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_set-context
()
{
last_command
=
"kubectl_config_set-context"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--cluster="
)
flags+
=(
"--namespace="
)
flags+
=(
"--user="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_set
()
{
last_command
=
"kubectl_config_set"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_unset
()
{
last_command
=
"kubectl_config_unset"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config_use-context
()
{
last_command
=
"kubectl_config_use-context"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_config
()
{
last_command
=
"kubectl_config"
commands
=()
commands+
=(
"view"
)
commands+
=(
"set-cluster"
)
commands+
=(
"set-credentials"
)
commands+
=(
"set-context"
)
commands+
=(
"set"
)
commands+
=(
"unset"
)
commands+
=(
"use-context"
)
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--kubeconfig="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_cluster-info
()
{
last_command
=
"kubectl_cluster-info"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_api-versions
()
{
last_command
=
"kubectl_api-versions"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_version
()
{
last_command
=
"kubectl_version"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--client"
)
flags+
=(
"-c"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_explain
()
{
last_command
=
"kubectl_explain"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--recursive"
)
must_have_one_flag
=()
must_have_one_noun
=()
}
_kubectl_convert
()
{
last_command
=
"kubectl_convert"
commands
=()
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--filename="
)
flags_with_completion+
=(
"--filename"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
two_word_flags+
=(
"-f"
)
flags_with_completion+
=(
"-f"
)
flags_completion+
=(
"__handle_filename_extension_flag json|yaml|yml"
)
flags+
=(
"--local"
)
flags+
=(
"--no-headers"
)
flags+
=(
"--output="
)
two_word_flags+
=(
"-o"
)
flags+
=(
"--output-version="
)
flags+
=(
"--schema-cache-dir="
)
flags+
=(
"--show-all"
)
flags+
=(
"-a"
)
flags+
=(
"--sort-by="
)
flags+
=(
"--template="
)
two_word_flags+
=(
"-t"
)
flags+
=(
"--validate"
)
must_have_one_flag
=()
must_have_one_flag+
=(
"--filename="
)
must_have_one_flag+
=(
"-f"
)
must_have_one_noun
=()
}
_kubectl
()
{
last_command
=
"kubectl"
commands
=()
commands+
=(
"get"
)
commands+
=(
"describe"
)
commands+
=(
"create"
)
commands+
=(
"replace"
)
commands+
=(
"patch"
)
commands+
=(
"delete"
)
commands+
=(
"edit"
)
commands+
=(
"apply"
)
commands+
=(
"namespace"
)
commands+
=(
"logs"
)
commands+
=(
"rolling-update"
)
commands+
=(
"scale"
)
commands+
=(
"attach"
)
commands+
=(
"exec"
)
commands+
=(
"port-forward"
)
commands+
=(
"proxy"
)
commands+
=(
"run"
)
commands+
=(
"expose"
)
commands+
=(
"autoscale"
)
commands+
=(
"label"
)
commands+
=(
"annotate"
)
commands+
=(
"config"
)
commands+
=(
"cluster-info"
)
commands+
=(
"api-versions"
)
commands+
=(
"version"
)
commands+
=(
"explain"
)
commands+
=(
"convert"
)
flags
=()
two_word_flags
=()
flags_with_completion
=()
flags_completion
=()
flags+
=(
"--alsologtostderr"
)
flags+
=(
"--api-version="
)
flags+
=(
"--certificate-authority="
)
flags+
=(
"--client-certificate="
)
flags+
=(
"--client-key="
)
flags+
=(
"--cluster="
)
flags+
=(
"--context="
)
flags+
=(
"--insecure-skip-tls-verify"
)
flags+
=(
"--kubeconfig="
)
flags+
=(
"--log-backtrace-at="
)
flags+
=(
"--log-dir="
)
flags+
=(
"--log-flush-frequency="
)
flags+
=(
"--logtostderr"
)
flags+
=(
"--match-server-version"
)
flags+
=(
"--namespace="
)
flags+
=(
"--password="
)
flags+
=(
"--server="
)
two_word_flags+
=(
"-s"
)
flags+
=(
"--stderrthreshold="
)
flags+
=(
"--token="
)
flags+
=(
"--user="
)
flags+
=(
"--username="
)
flags+
=(
"--v="
)
flags+
=(
"--vmodule="
)
must_have_one_flag
=()
must_have_one_noun
=()
}
__start_kubectl
()
{
local
cur prev words cword
if
declare
-F
_init_completions
>
/dev/null 2>&1
;
then
_init_completion
-s
||
return
else
__my_init_completion
||
return
fi
local
c
=
0
local
flags
=()
local
two_word_flags
=()
local
flags_with_completion
=()
local
flags_completion
=()
local
commands
=(
"kubectl"
)
local
must_have_one_flag
=()
local
must_have_one_noun
=()
local
last_command
local
nouns
=()
__handle_word
}
complete
-F
__start_kubectl kubectl
# ex: ts=4 sw=4 et filetype=sh
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment