Commit 7d05f5f137b5

Vincent Demeester <vincent@sbr.pm>
2019-09-05 10:27:47
profiles.kubernetes: embedded completion script
small loading optim. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent b344145
Changed files (3)
modules
modules/profiles/assets/zsh/_kubectl
@@ -0,0 +1,8634 @@
+#compdef kubectl
+
+# Copyright 2016 The Kubernetes Authors.
+#
+# 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.
+
+__kubectl_bash_source() {
+	alias shopt=':'
+	alias _expand=_bash_expand
+	alias _complete=_bash_comp
+	emulate -L sh
+	setopt kshglob noshglob braceexpand
+
+	source "$@"
+}
+
+__kubectl_type() {
+	# -t is not supported by zsh
+	if [ "$1" == "-t" ]; then
+		shift
+
+		# fake Bash 4 to disable "complete -o nospace". Instead
+		# "compopt +-o nospace" is used in the code to toggle trailing
+		# spaces. We don't support that, but leave trailing spaces on
+		# all the time
+		if [ "$1" = "__kubectl_compopt" ]; then
+			echo builtin
+			return 0
+		fi
+	fi
+	type "$@"
+}
+
+__kubectl_compgen() {
+	local completions w
+	completions=( $(compgen "$@") ) || return $?
+
+	# filter by given word as prefix
+	while [[ "$1" = -* && "$1" != -- ]]; do
+		shift
+		shift
+	done
+	if [[ "$1" == -- ]]; then
+		shift
+	fi
+	for w in "${completions[@]}"; do
+		if [[ "${w}" = "$1"* ]]; then
+			echo "${w}"
+		fi
+	done
+}
+
+__kubectl_compopt() {
+	true # don't do anything. Not supported by bashcompinit in zsh
+}
+
+__kubectl_ltrim_colon_completions()
+{
+	if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
+		# Remove colon-word prefix from COMPREPLY items
+		local colon_word=${1%${1##*:}}
+		local i=${#COMPREPLY[*]}
+		while [[ $((--i)) -ge 0 ]]; do
+			COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"}
+		done
+	fi
+}
+
+__kubectl_get_comp_words_by_ref() {
+	cur="${COMP_WORDS[COMP_CWORD]}"
+	prev="${COMP_WORDS[${COMP_CWORD}-1]}"
+	words=("${COMP_WORDS[@]}")
+	cword=("${COMP_CWORD[@]}")
+}
+
+__kubectl_filedir() {
+	local RET OLD_IFS w qw
+
+	__kubectl_debug "_filedir $@ cur=$cur"
+	if [[ "$1" = \~* ]]; then
+		# somehow does not work. Maybe, zsh does not call this at all
+		eval echo "$1"
+		return 0
+	fi
+
+	OLD_IFS="$IFS"
+	IFS=$'\n'
+	if [ "$1" = "-d" ]; then
+		shift
+		RET=( $(compgen -d) )
+	else
+		RET=( $(compgen -f) )
+	fi
+	IFS="$OLD_IFS"
+
+	IFS="," __kubectl_debug "RET=${RET[@]} len=${#RET[@]}"
+
+	for w in ${RET[@]}; do
+		if [[ ! "${w}" = "${cur}"* ]]; then
+			continue
+		fi
+		if eval "[[ \"\${w}\" = *.$1 || -d \"\${w}\" ]]"; then
+			qw="$(__kubectl_quote "${w}")"
+			if [ -d "${w}" ]; then
+				COMPREPLY+=("${qw}/")
+			else
+				COMPREPLY+=("${qw}")
+			fi
+		fi
+	done
+}
+
+__kubectl_quote() {
+    if [[ $1 == \'* || $1 == \"* ]]; then
+        # Leave out first character
+        printf %q "${1:1}"
+    else
+	printf %q "$1"
+    fi
+}
+
+autoload -U +X bashcompinit && bashcompinit
+
+# use word boundary patterns for BSD or GNU sed
+LWORD='[[:<:]]'
+RWORD='[[:>:]]'
+if sed --help 2>&1 | grep -q GNU; then
+	LWORD='\<'
+	RWORD='\>'
+fi
+
+__kubectl_convert_bash_to_zsh() {
+	sed \
+	-e 's/declare -F/whence -w/' \
+	-e 's/_get_comp_words_by_ref "\$@"/_get_comp_words_by_ref "\$*"/' \
+	-e 's/local \([a-zA-Z0-9_]*\)=/local \1; \1=/' \
+	-e 's/flags+=("\(--.*\)=")/flags+=("\1"); two_word_flags+=("\1")/' \
+	-e 's/must_have_one_flag+=("\(--.*\)=")/must_have_one_flag+=("\1")/' \
+	-e "s/${LWORD}_filedir${RWORD}/__kubectl_filedir/g" \
+	-e "s/${LWORD}_get_comp_words_by_ref${RWORD}/__kubectl_get_comp_words_by_ref/g" \
+	-e "s/${LWORD}__ltrim_colon_completions${RWORD}/__kubectl_ltrim_colon_completions/g" \
+	-e "s/${LWORD}compgen${RWORD}/__kubectl_compgen/g" \
+	-e "s/${LWORD}compopt${RWORD}/__kubectl_compopt/g" \
+	-e "s/${LWORD}declare${RWORD}/builtin declare/g" \
+	-e "s/\\\$(type${RWORD}/\$(__kubectl_type/g" \
+	<<'BASH_COMPLETION_EOF'
+# bash completion for kubectl                              -*- shell-script -*-
+
+__kubectl_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.
+__kubectl_init_completion()
+{
+    COMPREPLY=()
+    _get_comp_words_by_ref "$@" cur prev words cword
+}
+
+__kubectl_index_of_word()
+{
+    local w word=$1
+    shift
+    index=0
+    for w in "$@"; do
+        [[ $w = "$word" ]] && return
+        index=$((index+1))
+    done
+    index=-1
+}
+
+__kubectl_contains_word()
+{
+    local w word=$1; shift
+    for w in "$@"; do
+        [[ $w = "$word" ]] && return
+    done
+    return 1
+}
+
+__kubectl_handle_reply()
+{
+    __kubectl_debug "${FUNCNAME[0]}"
+    case $cur in
+        -*)
+            if [[ $(type -t compopt) = "builtin" ]]; then
+                compopt -o nospace
+            fi
+            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") )
+            if [[ $(type -t compopt) = "builtin" ]]; then
+                [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace
+            fi
+
+            # complete after --flag=abc
+            if [[ $cur == *=* ]]; then
+                if [[ $(type -t compopt) = "builtin" ]]; then
+                    compopt +o nospace
+                fi
+
+                local index flag
+                flag="${cur%=*}"
+                __kubectl_index_of_word "${flag}" "${flags_with_completion[@]}"
+                COMPREPLY=()
+                if [[ ${index} -ge 0 ]]; then
+                    PREFIX=""
+                    cur="${cur#*=}"
+                    ${flags_completion[${index}]}
+                    if [ -n "${ZSH_VERSION}" ]; then
+                        # zsh completion needs --flag= prefix
+                        eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )"
+                    fi
+                fi
+            fi
+            return 0;
+            ;;
+    esac
+
+    # check if we are handling a flag with special work handling
+    local index
+    __kubectl_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
+    completions=("${commands[@]}")
+    if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then
+        completions=("${must_have_one_noun[@]}")
+    fi
+    if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then
+        completions+=("${must_have_one_flag[@]}")
+    fi
+    COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") )
+
+    if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then
+        COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") )
+    fi
+
+    if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+        declare -F __custom_func >/dev/null && __custom_func
+    fi
+
+    # available in bash-completion >= 2, not always present on macOS
+    if declare -F __ltrim_colon_completions >/dev/null; then
+        __ltrim_colon_completions "$cur"
+    fi
+
+    # If there is only 1 completion and it is a flag with an = it will be completed
+    # but we don't want a space after the =
+    if [[ "${#COMPREPLY[@]}" -eq "1" ]] && [[ $(type -t compopt) = "builtin" ]] && [[ "${COMPREPLY[0]}" == --*= ]]; then
+       compopt -o nospace
+    fi
+}
+
+# The arguments should be in the form "ext1|ext2|extn"
+__kubectl_handle_filename_extension_flag()
+{
+    local ext="$1"
+    _filedir "@(${ext})"
+}
+
+__kubectl_handle_subdirs_in_dir_flag()
+{
+    local dir="$1"
+    pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1
+}
+
+__kubectl_handle_flag()
+{
+    __kubectl_debug "${FUNCNAME[0]}: 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]}
+    local flagvalue
+    # if the word contained an =
+    if [[ ${words[c]} == *"="* ]]; then
+        flagvalue=${flagname#*=} # take in as flagvalue after the =
+        flagname=${flagname%=*} # strip everything after the =
+        flagname="${flagname}=" # but put the = back
+    fi
+    __kubectl_debug "${FUNCNAME[0]}: looking for ${flagname}"
+    if __kubectl_contains_word "${flagname}" "${must_have_one_flag[@]}"; then
+        must_have_one_flag=()
+    fi
+
+    # if you set a flag which only applies to this command, don't show subcommands
+    if __kubectl_contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then
+      commands=()
+    fi
+
+    # keep flag value with flagname as flaghash
+    # flaghash variable is an associative array which is only supported in bash > 3.
+    if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+        if [ -n "${flagvalue}" ] ; then
+            flaghash[${flagname}]=${flagvalue}
+        elif [ -n "${words[ $((c+1)) ]}" ] ; then
+            flaghash[${flagname}]=${words[ $((c+1)) ]}
+        else
+            flaghash[${flagname}]="true" # pad "true" for bool flag
+        fi
+    fi
+
+    # skip the argument to a two word flag
+    if __kubectl_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
+
+    c=$((c+1))
+
+}
+
+__kubectl_handle_noun()
+{
+    __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+    if __kubectl_contains_word "${words[c]}" "${must_have_one_noun[@]}"; then
+        must_have_one_noun=()
+    elif __kubectl_contains_word "${words[c]}" "${noun_aliases[@]}"; then
+        must_have_one_noun=()
+    fi
+
+    nouns+=("${words[c]}")
+    c=$((c+1))
+}
+
+__kubectl_handle_command()
+{
+    __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+    local next_command
+    if [[ -n ${last_command} ]]; then
+        next_command="_${last_command}_${words[c]//:/__}"
+    else
+        if [[ $c -eq 0 ]]; then
+            next_command="_kubectl_root_command"
+        else
+            next_command="_${words[c]//:/__}"
+        fi
+    fi
+    c=$((c+1))
+    __kubectl_debug "${FUNCNAME[0]}: looking for ${next_command}"
+    declare -F "$next_command" >/dev/null && $next_command
+}
+
+__kubectl_handle_word()
+{
+    if [[ $c -ge $cword ]]; then
+        __kubectl_handle_reply
+        return
+    fi
+    __kubectl_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+    if [[ "${words[c]}" == -* ]]; then
+        __kubectl_handle_flag
+    elif __kubectl_contains_word "${words[c]}" "${commands[@]}"; then
+        __kubectl_handle_command
+    elif [[ $c -eq 0 ]]; then
+        __kubectl_handle_command
+    else
+        __kubectl_handle_noun
+    fi
+    __kubectl_handle_word
+}
+
+# call kubectl get $1,
+__kubectl_override_flag_list=(--kubeconfig --cluster --user --context --namespace --server -n -s)
+__kubectl_override_flags()
+{
+    local ${__kubectl_override_flag_list[*]##*-} two_word_of of var
+    for w in "${words[@]}"; do
+        if [ -n "${two_word_of}" ]; then
+            eval "${two_word_of##*-}=\"${two_word_of}=\${w}\""
+            two_word_of=
+            continue
+        fi
+        for of in "${__kubectl_override_flag_list[@]}"; do
+            case "${w}" in
+                ${of}=*)
+                    eval "${of##*-}=\"${w}\""
+                    ;;
+                ${of})
+                    two_word_of="${of}"
+                    ;;
+            esac
+        done
+    done
+    for var in "${__kubectl_override_flag_list[@]##*-}"; do
+        if eval "test -n \"\$${var}\""; then
+            eval "echo \${${var}}"
+        fi
+    done
+}
+
+__kubectl_config_get_contexts()
+{
+    __kubectl_parse_config "contexts"
+}
+
+__kubectl_config_get_clusters()
+{
+    __kubectl_parse_config "clusters"
+}
+
+__kubectl_config_get_users()
+{
+    __kubectl_parse_config "users"
+}
+
+# $1 has to be "contexts", "clusters" or "users"
+__kubectl_parse_config()
+{
+    local template kubectl_out
+    template="{{ range .$1  }}{{ .name }} {{ end }}"
+    if kubectl_out=$(kubectl config $(__kubectl_override_flags) -o template --template="${template}" view 2>/dev/null); then
+        COMPREPLY=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+    fi
+}
+
+# $1 is the name of resource (required)
+# $2 is template string for kubectl get (optional)
+__kubectl_parse_get()
+{
+    local template
+    template="${2:-"{{ range .items  }}{{ .metadata.name }} {{ end }}"}"
+    local kubectl_out
+    if kubectl_out=$(kubectl get $(__kubectl_override_flags) -o template --template="${template}" "$1" 2>/dev/null); then
+        COMPREPLY+=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+    fi
+}
+
+__kubectl_get_resource()
+{
+    if [[ ${#nouns[@]} -eq 0 ]]; then
+      local kubectl_out
+      if kubectl_out=$(kubectl api-resources $(__kubectl_override_flags) -o name --cached --request-timeout=5s --verbs=get 2>/dev/null); then
+          COMPREPLY=( $( compgen -W "${kubectl_out[*]}" -- "$cur" ) )
+          return 0
+      fi
+      return 1
+    fi
+    __kubectl_parse_get "${nouns[${#nouns[@]} -1]}"
+}
+
+__kubectl_get_resource_namespace()
+{
+    __kubectl_parse_get "namespace"
+}
+
+__kubectl_get_resource_pod()
+{
+    __kubectl_parse_get "pod"
+}
+
+__kubectl_get_resource_rc()
+{
+    __kubectl_parse_get "rc"
+}
+
+__kubectl_get_resource_node()
+{
+    __kubectl_parse_get "node"
+}
+
+__kubectl_get_resource_clusterrole()
+{
+    __kubectl_parse_get "clusterrole"
+}
+
+# $1 is the name of the pod we want to get the list of containers inside
+__kubectl_get_containers()
+{
+    local template
+    template="{{ range .spec.initContainers }}{{ .name }} {{end}}{{ range .spec.containers  }}{{ .name }} {{ end }}"
+    __kubectl_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 $(__kubectl_override_flags) -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
+}
+
+__kubectl_cp()
+{
+    if [[ $(type -t compopt) = "builtin" ]]; then
+        compopt -o nospace
+    fi
+
+    case "$cur" in
+        /*|[.~]*) # looks like a path
+            return
+            ;;
+        *:*) # TODO: complete remote files in the pod
+            return
+            ;;
+        */*) # complete <namespace>/<pod>
+            local template namespace kubectl_out
+            template="{{ range .items }}{{ .metadata.namespace }}/{{ .metadata.name }}: {{ end }}"
+            namespace="${cur%%/*}"
+            if kubectl_out=( $(kubectl get $(__kubectl_override_flags) --namespace "${namespace}" -o template --template="${template}" pods 2>/dev/null) ); then
+                COMPREPLY=( $(compgen -W "${kubectl_out[*]}" -- "${cur}") )
+            fi
+            return
+            ;;
+        *) # complete namespaces, pods, and filedirs
+            __kubectl_parse_get "namespace" "{{ range .items  }}{{ .metadata.name }}/ {{ end }}"
+            __kubectl_parse_get "pod" "{{ range .items  }}{{ .metadata.name }}: {{ end }}"
+            _filedir
+            ;;
+    esac
+}
+
+__custom_func() {
+    case ${last_command} in
+        kubectl_get | kubectl_describe | kubectl_delete | kubectl_label | kubectl_edit | kubectl_patch |\
+        kubectl_annotate | kubectl_expose | kubectl_scale | kubectl_autoscale | kubectl_taint | kubectl_rollout_* |\
+        kubectl_apply_edit-last-applied | kubectl_apply_view-last-applied)
+            __kubectl_get_resource
+            return
+            ;;
+        kubectl_logs)
+            __kubectl_require_pod_and_container
+            return
+            ;;
+        kubectl_exec | kubectl_port-forward | kubectl_top_pod | kubectl_attach)
+            __kubectl_get_resource_pod
+            return
+            ;;
+        kubectl_rolling-update)
+            __kubectl_get_resource_rc
+            return
+            ;;
+        kubectl_cordon | kubectl_uncordon | kubectl_drain | kubectl_top_node)
+            __kubectl_get_resource_node
+            return
+            ;;
+        kubectl_config_use-context | kubectl_config_rename-context)
+            __kubectl_config_get_contexts
+            return
+            ;;
+        kubectl_config_delete-cluster)
+            __kubectl_config_get_clusters
+            return
+            ;;
+        kubectl_cp)
+            __kubectl_cp
+            return
+            ;;
+        *)
+            ;;
+    esac
+}
+
+_kubectl_annotate()
+{
+    last_command="kubectl_annotate"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--field-selector=")
+    local_nonpersistent_flags+=("--field-selector=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overwrite")
+    local_nonpersistent_flags+=("--overwrite")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--resource-version=")
+    local_nonpersistent_flags+=("--resource-version=")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_api-resources()
+{
+    last_command="kubectl_api-resources"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--api-group=")
+    local_nonpersistent_flags+=("--api-group=")
+    flags+=("--cached")
+    local_nonpersistent_flags+=("--cached")
+    flags+=("--namespaced")
+    local_nonpersistent_flags+=("--namespaced")
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--verbs=")
+    local_nonpersistent_flags+=("--verbs=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_api-versions()
+{
+    last_command="kubectl_api-versions"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_apply_edit-last-applied()
+{
+    last_command="kubectl_apply_edit-last-applied"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--windows-line-endings")
+    local_nonpersistent_flags+=("--windows-line-endings")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_apply_set-last-applied()
+{
+    last_command="kubectl_apply_set-last-applied"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--create-annotation")
+    local_nonpersistent_flags+=("--create-annotation")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_apply_view-last-applied()
+{
+    last_command="kubectl_apply_view-last-applied"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_apply()
+{
+    last_command="kubectl_apply"
+    commands=()
+    commands+=("edit-last-applied")
+    commands+=("set-last-applied")
+    commands+=("view-last-applied")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--cascade")
+    local_nonpersistent_flags+=("--cascade")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--experimental-field-manager=")
+    local_nonpersistent_flags+=("--experimental-field-manager=")
+    flags+=("--experimental-force-conflicts")
+    local_nonpersistent_flags+=("--experimental-force-conflicts")
+    flags+=("--experimental-server-side")
+    local_nonpersistent_flags+=("--experimental-server-side")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--grace-period=")
+    local_nonpersistent_flags+=("--grace-period=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--openapi-patch")
+    local_nonpersistent_flags+=("--openapi-patch")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overwrite")
+    local_nonpersistent_flags+=("--overwrite")
+    flags+=("--prune")
+    local_nonpersistent_flags+=("--prune")
+    flags+=("--prune-whitelist=")
+    local_nonpersistent_flags+=("--prune-whitelist=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--server-dry-run")
+    local_nonpersistent_flags+=("--server-dry-run")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--wait")
+    local_nonpersistent_flags+=("--wait")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_attach()
+{
+    last_command="kubectl_attach"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--container=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--container=")
+    flags+=("--pod-running-timeout=")
+    local_nonpersistent_flags+=("--pod-running-timeout=")
+    flags+=("--stdin")
+    flags+=("-i")
+    local_nonpersistent_flags+=("--stdin")
+    flags+=("--tty")
+    flags+=("-t")
+    local_nonpersistent_flags+=("--tty")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_auth_can-i()
+{
+    last_command="kubectl_auth_can-i"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--list")
+    local_nonpersistent_flags+=("--list")
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--quiet")
+    flags+=("-q")
+    local_nonpersistent_flags+=("--quiet")
+    flags+=("--subresource=")
+    local_nonpersistent_flags+=("--subresource=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_auth_reconcile()
+{
+    last_command="kubectl_auth_reconcile"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--remove-extra-permissions")
+    local_nonpersistent_flags+=("--remove-extra-permissions")
+    flags+=("--remove-extra-subjects")
+    local_nonpersistent_flags+=("--remove-extra-subjects")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_auth()
+{
+    last_command="kubectl_auth"
+    commands=()
+    commands+=("can-i")
+    commands+=("reconcile")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_autoscale()
+{
+    last_command="kubectl_autoscale"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--cpu-percent=")
+    local_nonpersistent_flags+=("--cpu-percent=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--max=")
+    local_nonpersistent_flags+=("--max=")
+    flags+=("--min=")
+    local_nonpersistent_flags+=("--min=")
+    flags+=("--name=")
+    local_nonpersistent_flags+=("--name=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--max=")
+    must_have_one_noun=()
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("replicaset")
+    must_have_one_noun+=("replicationcontroller")
+    noun_aliases=()
+}
+
+_kubectl_certificate_approve()
+{
+    last_command="kubectl_certificate_approve"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_certificate_deny()
+{
+    last_command="kubectl_certificate_deny"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_certificate()
+{
+    last_command="kubectl_certificate"
+    commands=()
+    commands+=("approve")
+    commands+=("deny")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_cluster-info_dump()
+{
+    last_command="kubectl_cluster-info_dump"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--namespaces=")
+    local_nonpersistent_flags+=("--namespaces=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--output-directory=")
+    local_nonpersistent_flags+=("--output-directory=")
+    flags+=("--pod-running-timeout=")
+    local_nonpersistent_flags+=("--pod-running-timeout=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_cluster-info()
+{
+    last_command="kubectl_cluster-info"
+    commands=()
+    commands+=("dump")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_completion()
+{
+    last_command="kubectl_completion"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--help")
+    flags+=("-h")
+    local_nonpersistent_flags+=("--help")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("bash")
+    must_have_one_noun+=("zsh")
+    noun_aliases=()
+}
+
+_kubectl_config_current-context()
+{
+    last_command="kubectl_config_current-context"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_delete-cluster()
+{
+    last_command="kubectl_config_delete-cluster"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_delete-context()
+{
+    last_command="kubectl_config_delete-context"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_get-clusters()
+{
+    last_command="kubectl_config_get-clusters"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_get-contexts()
+{
+    last_command="kubectl_config_get-contexts"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_rename-context()
+{
+    last_command="kubectl_config_rename-context"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_set()
+{
+    last_command="kubectl_config_set"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--set-raw-bytes")
+    local_nonpersistent_flags+=("--set-raw-bytes")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_set-cluster()
+{
+    last_command="kubectl_config_set-cluster"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--embed-certs")
+    local_nonpersistent_flags+=("--embed-certs")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_set-context()
+{
+    last_command="kubectl_config_set-context"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--current")
+    local_nonpersistent_flags+=("--current")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_set-credentials()
+{
+    last_command="kubectl_config_set-credentials"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--auth-provider=")
+    local_nonpersistent_flags+=("--auth-provider=")
+    flags+=("--auth-provider-arg=")
+    local_nonpersistent_flags+=("--auth-provider-arg=")
+    flags+=("--embed-certs")
+    local_nonpersistent_flags+=("--embed-certs")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_unset()
+{
+    last_command="kubectl_config_unset"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_use-context()
+{
+    last_command="kubectl_config_use-context"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config_view()
+{
+    last_command="kubectl_config_view"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--flatten")
+    local_nonpersistent_flags+=("--flatten")
+    flags+=("--merge")
+    local_nonpersistent_flags+=("--merge")
+    flags+=("--minify")
+    local_nonpersistent_flags+=("--minify")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--raw")
+    local_nonpersistent_flags+=("--raw")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_config()
+{
+    last_command="kubectl_config"
+    commands=()
+    commands+=("current-context")
+    commands+=("delete-cluster")
+    commands+=("delete-context")
+    commands+=("get-clusters")
+    commands+=("get-contexts")
+    commands+=("rename-context")
+    commands+=("set")
+    commands+=("set-cluster")
+    commands+=("set-context")
+    commands+=("set-credentials")
+    commands+=("unset")
+    commands+=("use-context")
+    commands+=("view")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_convert()
+{
+    last_command="kubectl_convert"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--output-version=")
+    local_nonpersistent_flags+=("--output-version=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_cordon()
+{
+    last_command="kubectl_cordon"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_cp()
+{
+    last_command="kubectl_cp"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--container=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--container=")
+    flags+=("--no-preserve")
+    local_nonpersistent_flags+=("--no-preserve")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_clusterrole()
+{
+    last_command="kubectl_create_clusterrole"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--aggregation-rule=")
+    local_nonpersistent_flags+=("--aggregation-rule=")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--non-resource-url=")
+    local_nonpersistent_flags+=("--non-resource-url=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--resource=")
+    local_nonpersistent_flags+=("--resource=")
+    flags+=("--resource-name=")
+    local_nonpersistent_flags+=("--resource-name=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--verb=")
+    local_nonpersistent_flags+=("--verb=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_clusterrolebinding()
+{
+    last_command="kubectl_create_clusterrolebinding"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--clusterrole=")
+    flags_with_completion+=("--clusterrole")
+    flags_completion+=("__kubectl_get_resource_clusterrole")
+    local_nonpersistent_flags+=("--clusterrole=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--group=")
+    local_nonpersistent_flags+=("--group=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--serviceaccount=")
+    local_nonpersistent_flags+=("--serviceaccount=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_configmap()
+{
+    last_command="kubectl_create_configmap"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--append-hash")
+    local_nonpersistent_flags+=("--append-hash")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--from-env-file=")
+    local_nonpersistent_flags+=("--from-env-file=")
+    flags+=("--from-file=")
+    local_nonpersistent_flags+=("--from-file=")
+    flags+=("--from-literal=")
+    local_nonpersistent_flags+=("--from-literal=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_cronjob()
+{
+    last_command="kubectl_create_cronjob"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--image=")
+    local_nonpersistent_flags+=("--image=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--restart=")
+    local_nonpersistent_flags+=("--restart=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--schedule=")
+    local_nonpersistent_flags+=("--schedule=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_deployment()
+{
+    last_command="kubectl_create_deployment"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--image=")
+    local_nonpersistent_flags+=("--image=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--image=")
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_job()
+{
+    last_command="kubectl_create_job"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--from=")
+    local_nonpersistent_flags+=("--from=")
+    flags+=("--image=")
+    local_nonpersistent_flags+=("--image=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_namespace()
+{
+    last_command="kubectl_create_namespace"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_poddisruptionbudget()
+{
+    last_command="kubectl_create_poddisruptionbudget"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--max-unavailable=")
+    local_nonpersistent_flags+=("--max-unavailable=")
+    flags+=("--min-available=")
+    local_nonpersistent_flags+=("--min-available=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--selector=")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_priorityclass()
+{
+    last_command="kubectl_create_priorityclass"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--description=")
+    local_nonpersistent_flags+=("--description=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--global-default")
+    local_nonpersistent_flags+=("--global-default")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--value=")
+    local_nonpersistent_flags+=("--value=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_quota()
+{
+    last_command="kubectl_create_quota"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--hard=")
+    local_nonpersistent_flags+=("--hard=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--scopes=")
+    local_nonpersistent_flags+=("--scopes=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_role()
+{
+    last_command="kubectl_create_role"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--resource=")
+    local_nonpersistent_flags+=("--resource=")
+    flags+=("--resource-name=")
+    local_nonpersistent_flags+=("--resource-name=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--verb=")
+    local_nonpersistent_flags+=("--verb=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_rolebinding()
+{
+    last_command="kubectl_create_rolebinding"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--clusterrole=")
+    local_nonpersistent_flags+=("--clusterrole=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--group=")
+    local_nonpersistent_flags+=("--group=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--role=")
+    local_nonpersistent_flags+=("--role=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--serviceaccount=")
+    local_nonpersistent_flags+=("--serviceaccount=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_secret_docker-registry()
+{
+    last_command="kubectl_create_secret_docker-registry"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--append-hash")
+    local_nonpersistent_flags+=("--append-hash")
+    flags+=("--docker-email=")
+    local_nonpersistent_flags+=("--docker-email=")
+    flags+=("--docker-password=")
+    local_nonpersistent_flags+=("--docker-password=")
+    flags+=("--docker-server=")
+    local_nonpersistent_flags+=("--docker-server=")
+    flags+=("--docker-username=")
+    local_nonpersistent_flags+=("--docker-username=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--from-file=")
+    local_nonpersistent_flags+=("--from-file=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--docker-password=")
+    must_have_one_flag+=("--docker-username=")
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_secret_generic()
+{
+    last_command="kubectl_create_secret_generic"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--append-hash")
+    local_nonpersistent_flags+=("--append-hash")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--from-env-file=")
+    local_nonpersistent_flags+=("--from-env-file=")
+    flags+=("--from-file=")
+    local_nonpersistent_flags+=("--from-file=")
+    flags+=("--from-literal=")
+    local_nonpersistent_flags+=("--from-literal=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--type=")
+    local_nonpersistent_flags+=("--type=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_secret_tls()
+{
+    last_command="kubectl_create_secret_tls"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--append-hash")
+    local_nonpersistent_flags+=("--append-hash")
+    flags+=("--cert=")
+    local_nonpersistent_flags+=("--cert=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--key=")
+    local_nonpersistent_flags+=("--key=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_secret()
+{
+    last_command="kubectl_create_secret"
+    commands=()
+    commands+=("docker-registry")
+    commands+=("generic")
+    commands+=("tls")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_service_clusterip()
+{
+    last_command="kubectl_create_service_clusterip"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--clusterip=")
+    local_nonpersistent_flags+=("--clusterip=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--tcp=")
+    local_nonpersistent_flags+=("--tcp=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_service_externalname()
+{
+    last_command="kubectl_create_service_externalname"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--external-name=")
+    local_nonpersistent_flags+=("--external-name=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--tcp=")
+    local_nonpersistent_flags+=("--tcp=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--external-name=")
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_service_loadbalancer()
+{
+    last_command="kubectl_create_service_loadbalancer"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--tcp=")
+    local_nonpersistent_flags+=("--tcp=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_service_nodeport()
+{
+    last_command="kubectl_create_service_nodeport"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--node-port=")
+    local_nonpersistent_flags+=("--node-port=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--tcp=")
+    local_nonpersistent_flags+=("--tcp=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_service()
+{
+    last_command="kubectl_create_service"
+    commands=()
+    commands+=("clusterip")
+    commands+=("externalname")
+    commands+=("loadbalancer")
+    commands+=("nodeport")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create_serviceaccount()
+{
+    last_command="kubectl_create_serviceaccount"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_create()
+{
+    last_command="kubectl_create"
+    commands=()
+    commands+=("clusterrole")
+    commands+=("clusterrolebinding")
+    commands+=("configmap")
+    commands+=("cronjob")
+    commands+=("deployment")
+    commands+=("job")
+    commands+=("namespace")
+    commands+=("poddisruptionbudget")
+    commands+=("priorityclass")
+    commands+=("quota")
+    commands+=("role")
+    commands+=("rolebinding")
+    commands+=("secret")
+    commands+=("service")
+    commands+=("serviceaccount")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--edit")
+    local_nonpersistent_flags+=("--edit")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--raw=")
+    local_nonpersistent_flags+=("--raw=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--windows-line-endings")
+    local_nonpersistent_flags+=("--windows-line-endings")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_delete()
+{
+    last_command="kubectl_delete"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--cascade")
+    local_nonpersistent_flags+=("--cascade")
+    flags+=("--field-selector=")
+    local_nonpersistent_flags+=("--field-selector=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--grace-period=")
+    local_nonpersistent_flags+=("--grace-period=")
+    flags+=("--ignore-not-found")
+    local_nonpersistent_flags+=("--ignore-not-found")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--now")
+    local_nonpersistent_flags+=("--now")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--wait")
+    local_nonpersistent_flags+=("--wait")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_describe()
+{
+    last_command="kubectl_describe"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--show-events")
+    local_nonpersistent_flags+=("--show-events")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_diff()
+{
+    last_command="kubectl_diff"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--experimental-field-manager=")
+    local_nonpersistent_flags+=("--experimental-field-manager=")
+    flags+=("--experimental-force-conflicts")
+    local_nonpersistent_flags+=("--experimental-force-conflicts")
+    flags+=("--experimental-server-side")
+    local_nonpersistent_flags+=("--experimental-server-side")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_drain()
+{
+    last_command="kubectl_drain"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--delete-local-data")
+    local_nonpersistent_flags+=("--delete-local-data")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--grace-period=")
+    local_nonpersistent_flags+=("--grace-period=")
+    flags+=("--ignore-daemonsets")
+    local_nonpersistent_flags+=("--ignore-daemonsets")
+    flags+=("--pod-selector=")
+    local_nonpersistent_flags+=("--pod-selector=")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_edit()
+{
+    last_command="kubectl_edit"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--output-patch")
+    local_nonpersistent_flags+=("--output-patch")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--windows-line-endings")
+    local_nonpersistent_flags+=("--windows-line-endings")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_exec()
+{
+    last_command="kubectl_exec"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--container=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--container=")
+    flags+=("--stdin")
+    flags+=("-i")
+    local_nonpersistent_flags+=("--stdin")
+    flags+=("--tty")
+    flags+=("-t")
+    local_nonpersistent_flags+=("--tty")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_explain()
+{
+    last_command="kubectl_explain"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--api-version=")
+    local_nonpersistent_flags+=("--api-version=")
+    flags+=("--recursive")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_expose()
+{
+    last_command="kubectl_expose"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--cluster-ip=")
+    local_nonpersistent_flags+=("--cluster-ip=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--external-ip=")
+    local_nonpersistent_flags+=("--external-ip=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--labels=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--labels=")
+    flags+=("--load-balancer-ip=")
+    local_nonpersistent_flags+=("--load-balancer-ip=")
+    flags+=("--name=")
+    local_nonpersistent_flags+=("--name=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overrides=")
+    local_nonpersistent_flags+=("--overrides=")
+    flags+=("--port=")
+    local_nonpersistent_flags+=("--port=")
+    flags+=("--protocol=")
+    local_nonpersistent_flags+=("--protocol=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--selector=")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--session-affinity=")
+    local_nonpersistent_flags+=("--session-affinity=")
+    flags+=("--target-port=")
+    local_nonpersistent_flags+=("--target-port=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--type=")
+    local_nonpersistent_flags+=("--type=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("pod")
+    must_have_one_noun+=("replicaset")
+    must_have_one_noun+=("replicationcontroller")
+    must_have_one_noun+=("service")
+    noun_aliases=()
+}
+
+_kubectl_get()
+{
+    last_command="kubectl_get"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--chunk-size=")
+    local_nonpersistent_flags+=("--chunk-size=")
+    flags+=("--field-selector=")
+    local_nonpersistent_flags+=("--field-selector=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--ignore-not-found")
+    local_nonpersistent_flags+=("--ignore-not-found")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--label-columns=")
+    two_word_flags+=("-L")
+    local_nonpersistent_flags+=("--label-columns=")
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--raw=")
+    local_nonpersistent_flags+=("--raw=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--server-print")
+    local_nonpersistent_flags+=("--server-print")
+    flags+=("--show-kind")
+    local_nonpersistent_flags+=("--show-kind")
+    flags+=("--show-labels")
+    local_nonpersistent_flags+=("--show-labels")
+    flags+=("--sort-by=")
+    local_nonpersistent_flags+=("--sort-by=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--watch")
+    flags+=("-w")
+    local_nonpersistent_flags+=("--watch")
+    flags+=("--watch-only")
+    local_nonpersistent_flags+=("--watch-only")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_kustomize()
+{
+    last_command="kubectl_kustomize"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_label()
+{
+    last_command="kubectl_label"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--field-selector=")
+    local_nonpersistent_flags+=("--field-selector=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--list")
+    local_nonpersistent_flags+=("--list")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overwrite")
+    local_nonpersistent_flags+=("--overwrite")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--resource-version=")
+    local_nonpersistent_flags+=("--resource-version=")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_logs()
+{
+    last_command="kubectl_logs"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-containers")
+    local_nonpersistent_flags+=("--all-containers")
+    flags+=("--container=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--container=")
+    flags+=("--follow")
+    flags+=("-f")
+    local_nonpersistent_flags+=("--follow")
+    flags+=("--limit-bytes=")
+    local_nonpersistent_flags+=("--limit-bytes=")
+    flags+=("--max-log-requests=")
+    local_nonpersistent_flags+=("--max-log-requests=")
+    flags+=("--pod-running-timeout=")
+    local_nonpersistent_flags+=("--pod-running-timeout=")
+    flags+=("--previous")
+    flags+=("-p")
+    local_nonpersistent_flags+=("--previous")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--since=")
+    local_nonpersistent_flags+=("--since=")
+    flags+=("--since-time=")
+    local_nonpersistent_flags+=("--since-time=")
+    flags+=("--tail=")
+    local_nonpersistent_flags+=("--tail=")
+    flags+=("--timestamps")
+    local_nonpersistent_flags+=("--timestamps")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_options()
+{
+    last_command="kubectl_options"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_patch()
+{
+    last_command="kubectl_patch"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--patch=")
+    two_word_flags+=("-p")
+    local_nonpersistent_flags+=("--patch=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--type=")
+    local_nonpersistent_flags+=("--type=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--patch=")
+    must_have_one_flag+=("-p")
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_plugin_list()
+{
+    last_command="kubectl_plugin_list"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--name-only")
+    local_nonpersistent_flags+=("--name-only")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_plugin()
+{
+    last_command="kubectl_plugin"
+    commands=()
+    commands+=("list")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_port-forward()
+{
+    last_command="kubectl_port-forward"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--address=")
+    local_nonpersistent_flags+=("--address=")
+    flags+=("--pod-running-timeout=")
+    local_nonpersistent_flags+=("--pod-running-timeout=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_proxy()
+{
+    last_command="kubectl_proxy"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--accept-hosts=")
+    local_nonpersistent_flags+=("--accept-hosts=")
+    flags+=("--accept-paths=")
+    local_nonpersistent_flags+=("--accept-paths=")
+    flags+=("--address=")
+    local_nonpersistent_flags+=("--address=")
+    flags+=("--api-prefix=")
+    local_nonpersistent_flags+=("--api-prefix=")
+    flags+=("--disable-filter")
+    local_nonpersistent_flags+=("--disable-filter")
+    flags+=("--keepalive=")
+    local_nonpersistent_flags+=("--keepalive=")
+    flags+=("--port=")
+    two_word_flags+=("-p")
+    local_nonpersistent_flags+=("--port=")
+    flags+=("--reject-methods=")
+    local_nonpersistent_flags+=("--reject-methods=")
+    flags+=("--reject-paths=")
+    local_nonpersistent_flags+=("--reject-paths=")
+    flags+=("--unix-socket=")
+    two_word_flags+=("-u")
+    local_nonpersistent_flags+=("--unix-socket=")
+    flags+=("--www=")
+    two_word_flags+=("-w")
+    local_nonpersistent_flags+=("--www=")
+    flags+=("--www-prefix=")
+    two_word_flags+=("-P")
+    local_nonpersistent_flags+=("--www-prefix=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_replace()
+{
+    last_command="kubectl_replace"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--cascade")
+    local_nonpersistent_flags+=("--cascade")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--grace-period=")
+    local_nonpersistent_flags+=("--grace-period=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--wait")
+    local_nonpersistent_flags+=("--wait")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_rollout_history()
+{
+    last_command="kubectl_rollout_history"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--revision=")
+    local_nonpersistent_flags+=("--revision=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("daemonset")
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("statefulset")
+    noun_aliases=()
+}
+
+_kubectl_rollout_pause()
+{
+    last_command="kubectl_rollout_pause"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("deployment")
+    noun_aliases=()
+}
+
+_kubectl_rollout_resume()
+{
+    last_command="kubectl_rollout_resume"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("deployment")
+    noun_aliases=()
+}
+
+_kubectl_rollout_status()
+{
+    last_command="kubectl_rollout_status"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--revision=")
+    local_nonpersistent_flags+=("--revision=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--watch")
+    flags+=("-w")
+    local_nonpersistent_flags+=("--watch")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("daemonset")
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("statefulset")
+    noun_aliases=()
+}
+
+_kubectl_rollout_undo()
+{
+    last_command="kubectl_rollout_undo"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--to-revision=")
+    local_nonpersistent_flags+=("--to-revision=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("daemonset")
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("statefulset")
+    noun_aliases=()
+}
+
+_kubectl_rollout()
+{
+    last_command="kubectl_rollout"
+    commands=()
+    commands+=("history")
+    commands+=("pause")
+    commands+=("resume")
+    commands+=("status")
+    commands+=("undo")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_run()
+{
+    last_command="kubectl_run"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--attach")
+    local_nonpersistent_flags+=("--attach")
+    flags+=("--cascade")
+    local_nonpersistent_flags+=("--cascade")
+    flags+=("--command")
+    local_nonpersistent_flags+=("--command")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--env=")
+    local_nonpersistent_flags+=("--env=")
+    flags+=("--expose")
+    local_nonpersistent_flags+=("--expose")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--force")
+    local_nonpersistent_flags+=("--force")
+    flags+=("--generator=")
+    local_nonpersistent_flags+=("--generator=")
+    flags+=("--grace-period=")
+    local_nonpersistent_flags+=("--grace-period=")
+    flags+=("--hostport=")
+    local_nonpersistent_flags+=("--hostport=")
+    flags+=("--image=")
+    local_nonpersistent_flags+=("--image=")
+    flags+=("--image-pull-policy=")
+    local_nonpersistent_flags+=("--image-pull-policy=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--labels=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--labels=")
+    flags+=("--leave-stdin-open")
+    local_nonpersistent_flags+=("--leave-stdin-open")
+    flags+=("--limits=")
+    local_nonpersistent_flags+=("--limits=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overrides=")
+    local_nonpersistent_flags+=("--overrides=")
+    flags+=("--pod-running-timeout=")
+    local_nonpersistent_flags+=("--pod-running-timeout=")
+    flags+=("--port=")
+    local_nonpersistent_flags+=("--port=")
+    flags+=("--quiet")
+    local_nonpersistent_flags+=("--quiet")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--replicas=")
+    two_word_flags+=("-r")
+    local_nonpersistent_flags+=("--replicas=")
+    flags+=("--requests=")
+    local_nonpersistent_flags+=("--requests=")
+    flags+=("--restart=")
+    local_nonpersistent_flags+=("--restart=")
+    flags+=("--rm")
+    local_nonpersistent_flags+=("--rm")
+    flags+=("--save-config")
+    local_nonpersistent_flags+=("--save-config")
+    flags+=("--schedule=")
+    local_nonpersistent_flags+=("--schedule=")
+    flags+=("--service-generator=")
+    local_nonpersistent_flags+=("--service-generator=")
+    flags+=("--service-overrides=")
+    local_nonpersistent_flags+=("--service-overrides=")
+    flags+=("--serviceaccount=")
+    local_nonpersistent_flags+=("--serviceaccount=")
+    flags+=("--stdin")
+    flags+=("-i")
+    local_nonpersistent_flags+=("--stdin")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--tty")
+    flags+=("-t")
+    local_nonpersistent_flags+=("--tty")
+    flags+=("--wait")
+    local_nonpersistent_flags+=("--wait")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--image=")
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_scale()
+{
+    last_command="kubectl_scale"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--current-replicas=")
+    local_nonpersistent_flags+=("--current-replicas=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--replicas=")
+    local_nonpersistent_flags+=("--replicas=")
+    flags+=("--resource-version=")
+    local_nonpersistent_flags+=("--resource-version=")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_flag+=("--replicas=")
+    must_have_one_noun=()
+    must_have_one_noun+=("deployment")
+    must_have_one_noun+=("replicaset")
+    must_have_one_noun+=("replicationcontroller")
+    must_have_one_noun+=("statefulset")
+    noun_aliases=()
+}
+
+_kubectl_set_env()
+{
+    last_command="kubectl_set_env"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--containers=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--containers=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--env=")
+    two_word_flags+=("-e")
+    local_nonpersistent_flags+=("--env=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--from=")
+    local_nonpersistent_flags+=("--from=")
+    flags+=("--keys=")
+    local_nonpersistent_flags+=("--keys=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--list")
+    local_nonpersistent_flags+=("--list")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overwrite")
+    local_nonpersistent_flags+=("--overwrite")
+    flags+=("--prefix=")
+    local_nonpersistent_flags+=("--prefix=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--resolve")
+    local_nonpersistent_flags+=("--resolve")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set_image()
+{
+    last_command="kubectl_set_image"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set_resources()
+{
+    last_command="kubectl_set_resources"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--containers=")
+    two_word_flags+=("-c")
+    local_nonpersistent_flags+=("--containers=")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--limits=")
+    local_nonpersistent_flags+=("--limits=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--requests=")
+    local_nonpersistent_flags+=("--requests=")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set_selector()
+{
+    last_command="kubectl_set_selector"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--resource-version=")
+    local_nonpersistent_flags+=("--resource-version=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set_serviceaccount()
+{
+    last_command="kubectl_set_serviceaccount"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--record")
+    local_nonpersistent_flags+=("--record")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set_subject()
+{
+    last_command="kubectl_set_subject"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--group=")
+    local_nonpersistent_flags+=("--group=")
+    flags+=("--kustomize=")
+    two_word_flags+=("-k")
+    local_nonpersistent_flags+=("--kustomize=")
+    flags+=("--local")
+    local_nonpersistent_flags+=("--local")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--serviceaccount=")
+    local_nonpersistent_flags+=("--serviceaccount=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_set()
+{
+    last_command="kubectl_set"
+    commands=()
+    commands+=("env")
+    commands+=("image")
+    commands+=("resources")
+    commands+=("selector")
+    commands+=("serviceaccount")
+    commands+=("subject")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_taint()
+{
+    last_command="kubectl_taint"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--overwrite")
+    local_nonpersistent_flags+=("--overwrite")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--validate")
+    local_nonpersistent_flags+=("--validate")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    must_have_one_noun+=("node")
+    noun_aliases=()
+}
+
+_kubectl_top_node()
+{
+    last_command="kubectl_top_node"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--heapster-namespace=")
+    local_nonpersistent_flags+=("--heapster-namespace=")
+    flags+=("--heapster-port=")
+    local_nonpersistent_flags+=("--heapster-port=")
+    flags+=("--heapster-scheme=")
+    local_nonpersistent_flags+=("--heapster-scheme=")
+    flags+=("--heapster-service=")
+    local_nonpersistent_flags+=("--heapster-service=")
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_top_pod()
+{
+    last_command="kubectl_top_pod"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--containers")
+    local_nonpersistent_flags+=("--containers")
+    flags+=("--heapster-namespace=")
+    local_nonpersistent_flags+=("--heapster-namespace=")
+    flags+=("--heapster-port=")
+    local_nonpersistent_flags+=("--heapster-port=")
+    flags+=("--heapster-scheme=")
+    local_nonpersistent_flags+=("--heapster-scheme=")
+    flags+=("--heapster-service=")
+    local_nonpersistent_flags+=("--heapster-service=")
+    flags+=("--no-headers")
+    local_nonpersistent_flags+=("--no-headers")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_top()
+{
+    last_command="kubectl_top"
+    commands=()
+    commands+=("node")
+    commands+=("pod")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_uncordon()
+{
+    last_command="kubectl_uncordon"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--dry-run")
+    local_nonpersistent_flags+=("--dry-run")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_version()
+{
+    last_command="kubectl_version"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--client")
+    local_nonpersistent_flags+=("--client")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--short")
+    local_nonpersistent_flags+=("--short")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_wait()
+{
+    last_command="kubectl_wait"
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--all")
+    local_nonpersistent_flags+=("--all")
+    flags+=("--all-namespaces")
+    flags+=("-A")
+    local_nonpersistent_flags+=("--all-namespaces")
+    flags+=("--allow-missing-template-keys")
+    local_nonpersistent_flags+=("--allow-missing-template-keys")
+    flags+=("--field-selector=")
+    local_nonpersistent_flags+=("--field-selector=")
+    flags+=("--filename=")
+    flags_with_completion+=("--filename")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    two_word_flags+=("-f")
+    flags_with_completion+=("-f")
+    flags_completion+=("__kubectl_handle_filename_extension_flag json|yaml|yml")
+    local_nonpersistent_flags+=("--filename=")
+    flags+=("--for=")
+    local_nonpersistent_flags+=("--for=")
+    flags+=("--output=")
+    two_word_flags+=("-o")
+    local_nonpersistent_flags+=("--output=")
+    flags+=("--recursive")
+    flags+=("-R")
+    local_nonpersistent_flags+=("--recursive")
+    flags+=("--selector=")
+    two_word_flags+=("-l")
+    local_nonpersistent_flags+=("--selector=")
+    flags+=("--template=")
+    flags_with_completion+=("--template")
+    flags_completion+=("_filedir")
+    local_nonpersistent_flags+=("--template=")
+    flags+=("--timeout=")
+    local_nonpersistent_flags+=("--timeout=")
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+_kubectl_root_command()
+{
+    last_command="kubectl"
+    commands=()
+    commands+=("annotate")
+    commands+=("api-resources")
+    commands+=("api-versions")
+    commands+=("apply")
+    commands+=("attach")
+    commands+=("auth")
+    commands+=("autoscale")
+    commands+=("certificate")
+    commands+=("cluster-info")
+    commands+=("completion")
+    commands+=("config")
+    commands+=("convert")
+    commands+=("cordon")
+    commands+=("cp")
+    commands+=("create")
+    commands+=("delete")
+    commands+=("describe")
+    commands+=("diff")
+    commands+=("drain")
+    commands+=("edit")
+    commands+=("exec")
+    commands+=("explain")
+    commands+=("expose")
+    commands+=("get")
+    commands+=("kustomize")
+    commands+=("label")
+    commands+=("logs")
+    commands+=("options")
+    commands+=("patch")
+    commands+=("plugin")
+    commands+=("port-forward")
+    commands+=("proxy")
+    commands+=("replace")
+    commands+=("rollout")
+    commands+=("run")
+    commands+=("scale")
+    commands+=("set")
+    commands+=("taint")
+    commands+=("top")
+    commands+=("uncordon")
+    commands+=("version")
+    commands+=("wait")
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+    flags+=("--alsologtostderr")
+    flags+=("--as=")
+    flags+=("--as-group=")
+    flags+=("--cache-dir=")
+    flags+=("--certificate-authority=")
+    flags+=("--client-certificate=")
+    flags+=("--client-key=")
+    flags+=("--cluster=")
+    flags_with_completion+=("--cluster")
+    flags_completion+=("__kubectl_config_get_clusters")
+    flags+=("--context=")
+    flags_with_completion+=("--context")
+    flags_completion+=("__kubectl_config_get_contexts")
+    flags+=("--insecure-skip-tls-verify")
+    flags+=("--kubeconfig=")
+    flags+=("--log-backtrace-at=")
+    flags+=("--log-dir=")
+    flags+=("--log-file=")
+    flags+=("--log-flush-frequency=")
+    flags+=("--logtostderr")
+    flags+=("--match-server-version")
+    flags+=("--namespace=")
+    flags_with_completion+=("--namespace")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    two_word_flags+=("-n")
+    flags_with_completion+=("-n")
+    flags_completion+=("__kubectl_get_resource_namespace")
+    flags+=("--password=")
+    flags+=("--profile=")
+    flags+=("--profile-output=")
+    flags+=("--request-timeout=")
+    flags+=("--server=")
+    two_word_flags+=("-s")
+    flags+=("--skip-headers")
+    flags+=("--stderrthreshold=")
+    flags+=("--token=")
+    flags+=("--user=")
+    flags_with_completion+=("--user")
+    flags_completion+=("__kubectl_config_get_users")
+    flags+=("--username=")
+    flags+=("--v=")
+    two_word_flags+=("-v")
+    flags+=("--vmodule=")
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
+__start_kubectl()
+{
+    local cur prev words cword
+    declare -A flaghash 2>/dev/null || :
+    if declare -F _init_completion >/dev/null 2>&1; then
+        _init_completion -s || return
+    else
+        __kubectl_init_completion -n "=" || return
+    fi
+
+    local c=0
+    local flags=()
+    local two_word_flags=()
+    local local_nonpersistent_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=()
+
+    __kubectl_handle_word
+}
+
+if [[ $(type -t compopt) = "builtin" ]]; then
+    complete -o default -F __start_kubectl kubectl
+else
+    complete -o default -o nospace -F __start_kubectl kubectl
+fi
+
+# ex: ts=4 sw=4 et filetype=sh
+
+BASH_COMPLETION_EOF
+}
+
+__kubectl_bash_source <(__kubectl_convert_bash_to_zsh)
+_complete kubectl 2>/dev/null
modules/profiles/assets/zsh/_tkn
@@ -0,0 +1,518 @@
+#compdef _tkn tkn
+
+
+
+
+function _tkn {
+  local -a commands
+
+  _arguments -C \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "clustertask:Manage clustertasks"
+      "completion:Prints shell completion scripts"
+      "help:Help about any command"
+      "pipeline:Manage pipelines"
+      "pipelinerun:Manage pipelineruns"
+      "resource:Manage pipeline resources"
+      "task:Manage tasks"
+      "taskrun:Manage taskruns"
+      "version:Prints version information"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  clustertask)
+    _tkn_clustertask
+    ;;
+  completion)
+    _tkn_completion
+    ;;
+  help)
+    _tkn_help
+    ;;
+  pipeline)
+    _tkn_pipeline
+    ;;
+  pipelinerun)
+    _tkn_pipelinerun
+    ;;
+  resource)
+    _tkn_resource
+    ;;
+  task)
+    _tkn_task
+    ;;
+  taskrun)
+    _tkn_taskrun
+    ;;
+  version)
+    _tkn_version
+    ;;
+  esac
+}
+
+
+function _tkn_clustertask {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "delete:Delete a clustertask resource in a cluster"
+      "list:Lists clustertasks in a namespace"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  delete)
+    _tkn_clustertask_delete
+    ;;
+  list)
+    _tkn_clustertask_list
+    ;;
+  esac
+}
+
+function _tkn_clustertask_delete {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_clustertasks'
+}
+
+function _tkn_clustertask_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_completion {
+  _arguments \
+    '(-h --help)'{-h,--help}'[help for completion]' \
+    '1: :("bash" "zsh")'
+}
+
+function _tkn_help {
+  _arguments
+}
+
+
+function _tkn_pipeline {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "delete:Delete a pipeline in a namespace"
+      "describe:Describes a pipeline in a namespace"
+      "list:Lists pipelines in a namespace"
+      "logs:Show pipeline logs"
+      "start:Start pipelines"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  delete)
+    _tkn_pipeline_delete
+    ;;
+  describe)
+    _tkn_pipeline_describe
+    ;;
+  list)
+    _tkn_pipeline_list
+    ;;
+  logs)
+    _tkn_pipeline_logs
+    ;;
+  start)
+    _tkn_pipeline_start
+    ;;
+  esac
+}
+
+function _tkn_pipeline_delete {
+  _arguments \
+    '(-a --all)'{-a,--all}'[Whether to delete related resources (pipelineruns) (default: false)]' \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_describe {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_pipeline_logs {
+  _arguments \
+    '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+    '(-f --follow)'{-f,--follow}'[stream live logs]' \
+    '(-l --last)'{-l,--last}'[show logs for last run]' \
+    '(-L --limit)'{-L,--limit}'[lists number of pipelineruns]:()' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipeline'
+}
+
+function _tkn_pipeline_start {
+  _arguments \
+    '(-l --last)'{-l,--last}'[re-run the pipeline using last pipelinerun values]' \
+    '(*-p *--param)'{\*-p,\*--param}'[pass the param as key=value]:()' \
+    '(*-r *--resource)'{\*-r,\*--resource}'[pass the resource name and ref as name=ref]:()' \
+    '(-s --serviceaccount)'{-s,--serviceaccount}'[pass the serviceaccount name]: :__kubectl_get_serviceaccount' \
+    '*--task-serviceaccount[pass the service account corresponding to the task]: :__kubectl_get_serviceaccount' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipeline'
+}
+
+
+function _tkn_pipelinerun {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "cancel:Cancel the PipelineRun"
+      "delete:Delete a pipelinerun in a namespace"
+      "describe:Describe a pipelinerun in a namespace"
+      "list:Lists pipelineruns in a namespace"
+      "logs:Show the logs of PipelineRun"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  cancel)
+    _tkn_pipelinerun_cancel
+    ;;
+  delete)
+    _tkn_pipelinerun_delete
+    ;;
+  describe)
+    _tkn_pipelinerun_describe
+    ;;
+  list)
+    _tkn_pipelinerun_list
+    ;;
+  logs)
+    _tkn_pipelinerun_logs
+    ;;
+  esac
+}
+
+function _tkn_pipelinerun_cancel {
+  _arguments \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_delete {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_describe {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelinerun'
+}
+
+function _tkn_pipelinerun_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-l --limit)'{-l,--limit}'[limit pipelineruns listed (default: return all pipelineruns)]:()' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_pipelinerun_logs {
+  _arguments \
+    '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+    '(-f --follow)'{-f,--follow}'[stream live logs]' \
+    '(*-t *--only-tasks)'{\*-t,\*--only-tasks}'[show logs for mentioned tasks only]:()' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelinerun'
+}
+
+
+function _tkn_resource {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "delete:Delete a pipeline resource in a namespace"
+      "describe:Describes a pipeline resource in a namespace"
+      "list:Lists pipeline resources in a namespace"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  delete)
+    _tkn_resource_delete
+    ;;
+  describe)
+    _tkn_resource_describe
+    ;;
+  list)
+    _tkn_resource_list
+    ;;
+  esac
+}
+
+function _tkn_resource_delete {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelineresource'
+}
+
+function _tkn_resource_describe {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_pipelineresource'
+}
+
+function _tkn_resource_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-t --type)'{-t,--type}'[Pipeline resource type]:()' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+
+function _tkn_task {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "delete:Delete a task resource in a namespace"
+      "list:Lists tasks in a namespace"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  delete)
+    _tkn_task_delete
+    ;;
+  list)
+    _tkn_task_list
+    ;;
+  esac
+}
+
+function _tkn_task_delete {
+  _arguments \
+    '(-a --all)'{-a,--all}'[Whether to delete related resources (taskruns) (default: false)]' \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_task'
+}
+
+function _tkn_task_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+
+function _tkn_taskrun {
+  local -a commands
+
+  _arguments -C \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    "1: :->cmnds" \
+    "*::arg:->args"
+
+  case $state in
+  cmnds)
+    commands=(
+      "delete:Delete a taskrun in a namespace"
+      "list:Lists taskruns in a namespace"
+      "logs:Show taskruns logs"
+    )
+    _describe "command" commands
+    ;;
+  esac
+
+  case "$words[1]" in
+  delete)
+    _tkn_taskrun_delete
+    ;;
+  list)
+    _tkn_taskrun_list
+    ;;
+  logs)
+    _tkn_taskrun_logs
+    ;;
+  esac
+}
+
+function _tkn_taskrun_delete {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-f --force)'{-f,--force}'[Whether to force deletion (default: false)]' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_taskrun'
+}
+
+function _tkn_taskrun_list {
+  _arguments \
+    '--allow-missing-template-keys[If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.]' \
+    '(-l --limit)'{-l,--limit}'[limit taskruns listed (default: return all taskruns)]:()' \
+    '(-o --output)'{-o,--output}'[Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-file.]:()' \
+    '--template[Template string or path to template file to use when -o=go-template, -o=go-template-file. The template format is golang templates \[http://golang.org/pkg/text/template/#pkg-overview\].]:filename:_files' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace'
+}
+
+function _tkn_taskrun_logs {
+  _arguments \
+    '(-a --all)'{-a,--all}'[show all logs including init steps injected by tekton]' \
+    '(-f --follow)'{-f,--follow}'[stream live logs]' \
+    '(-k --kubeconfig)'{-k,--kubeconfig}'[kubectl config file (default: $HOME/.kube/config)]: :_filedir' \
+    '(-n --namespace)'{-n,--namespace}'[namespace to use (default: from $KUBECONFIG)]: :__kubectl_get_namespace' \
+    '1: :__tkn_get_taskrun'
+}
+
+function _tkn_version {
+  _arguments \
+    '(-c --check)'{-c,--check}'[check if a newer version is available]'
+}
+
+
+# Custom function for Completions
+function __tkn_get_object() {
+    local type=$1
+    local util=$2
+    local template begin tkn_out
+    template="{{ range .items  }}{{ .metadata.name }} {{ end }}"
+
+    if [[ ${util} == "kubectl" ]];then
+        tkn_out=($(kubectl get ${type} -o template --template="${template}" 2>/dev/null))
+    elif [[ ${util} == "tkn" ]];then
+        tkn_out=($(tkn ${type} ls -o template --template="${template}" 2>/dev/null))
+    fi
+
+    if [[ -n ${tkn_out} ]]; then
+        [[ -n ${BASH_VERSION} ]] && COMPREPLY=( $( compgen -W "${tkn_out}" -- "$cur" ) )
+        [[ -n ${ZSH_VERSION} ]] && compadd ${tkn_out}
+    fi
+}
+
+function __kubectl_get_namespace() { __tkn_get_object namespace kubectl ;}
+function __kubectl_get_serviceaccount() { __tkn_get_object serviceaccount kubectl ;}
+function __tkn_get_pipeline() { __tkn_get_object pipeline tkn ;}
+function __tkn_get_pipelinerun() { __tkn_get_object pipelinerun tkn ;}
+function __tkn_get_taskrun() { __tkn_get_object taskrun tkn ;}
+function __tkn_get_pipelineresource() { __tkn_get_object resource tkn ;}
+function __tkn_get_clustertasks() { __tkn_get_object clustertasks tkn ;}
modules/profiles/kubernetes.nix
@@ -46,10 +46,8 @@ in
       ];
     }
     (mkIf config.profiles.zsh.enable {
-      programs.zsh.initExtra = ''
-        source <(tkn completion zsh)
-        source <(kubectl completion zsh)
-      '';
+      home.file."${config.programs.zsh.dotDir}/functions/_tkn".source = ./assets/zsh/_tkn;
+      home.file."${config.programs.zsh.dotDir}/functions/_kubectl".source = ./assets/zsh/_kubectl;
     })
     (mkIf cfg.minikube.enable {
       home.packages = with pkgs; [