yage
72e831da33
===================================================================== --- Changes ------------------------------ - kubectl driver updates; getting better, but still need to fix autocomplete in certain circumstances - added -y|--yes flags to scwrypts to auto-accept user-prompts (use with caution) - figured out the whole mikefarah/yq vs kislyuk/yq thing; use YQ for compatiblity --- Bug fixes ---------------------------- - helm template generation now loads values in a more appropriate order which prevents overwrite by the wrong values file
148 lines
3.9 KiB
Bash
148 lines
3.9 KiB
Bash
SCWRYPTS_KUBECTL_CUSTOM_COMMAND_PARSE__meta() {
|
|
USAGE__usage+=" meta"
|
|
USAGE__args="
|
|
- get output value of meta variable
|
|
- set interactively configure value of meta variable
|
|
- clear clear current subsession variables
|
|
|
|
(settings args)
|
|
- show output context for every command
|
|
- hide (default) hide output context for every command
|
|
|
|
- strict (default) require context *and* namespace to be set
|
|
- loose do not require context and namespace to be set
|
|
"
|
|
USAGE__options=''
|
|
USAGE__description=$(SCWRYPTS_KUBECTL_CUSTOM_COMMAND_DESCRIPTION__meta)
|
|
|
|
META_SUBARGS="
|
|
- namespace
|
|
- context
|
|
"
|
|
|
|
while [[ $# -gt 0 ]]
|
|
do
|
|
case $1 in
|
|
-h | --help ) HELP=1 ;;
|
|
|
|
set )
|
|
USAGE__usage+=" set"
|
|
USAGE__args="set (namespace|context)"
|
|
USAGE__description="interactively set a namespace or context for '$SCWRYPTS_ENV'"
|
|
case $2 in
|
|
namespace | context ) USER_ARGS+=($1 $2 $3); [ $3 ] && shift 1 ;;
|
|
-h | --help ) HELP=1 ;;
|
|
'' )
|
|
: \
|
|
&& SCWRYPTS_KUBECTL_CUSTOM_COMMAND__meta set context \
|
|
&& SCWRYPTS_KUBECTL_CUSTOM_COMMAND__meta set namespace \
|
|
;
|
|
return $?
|
|
;;
|
|
|
|
* ) ERROR "cannot set '$2'" ;;
|
|
esac
|
|
shift 1
|
|
;;
|
|
|
|
get )
|
|
USAGE__usage+=" get"
|
|
USAGE__args="get (namespace|context|all)"
|
|
USAGE__description="output the current namespace or context for '$SCWRYPTS_ENV'"
|
|
case $2 in
|
|
namespace | context | all ) USER_ARGS+=($1 $2) ;;
|
|
|
|
-h | --help ) HELP=1 ;;
|
|
|
|
* ) ERROR "cannot get '$2'" ;;
|
|
esac
|
|
shift 1
|
|
;;
|
|
|
|
copy )
|
|
USAGE__usage+=" copy"
|
|
USAGE__args+="copy [0-9]"
|
|
USAGE__description="copy current subsession ($SUBSESSION) to target subsession id"
|
|
case $2 in
|
|
[0-9] ) USER_ARGS+=($1 $2) ;;
|
|
-h | --help ) HELP=1 ;;
|
|
* ) ERROR "target session must be a number [0-9]" ;;
|
|
esac
|
|
shift 1
|
|
;;
|
|
|
|
clear | show | hide | strict | loose ) USER_ARGS+=($1) ;;
|
|
|
|
* ) ERROR "no meta command '$1'"
|
|
esac
|
|
shift 1
|
|
done
|
|
}
|
|
|
|
SCWRYPTS_KUBECTL_CUSTOM_COMMAND__meta() {
|
|
case $1 in
|
|
get )
|
|
[[ $2 =~ ^all$ ]] && {
|
|
local CONTEXT=$(REDIS get --prefix current:context | grep . || echo "\\033[1;31mnone set\\033[0m")
|
|
local NAMESPACE=$(REDIS get --prefix current:namespace | grep . || echo "\\033[1;31mnone set\\033[0m")
|
|
echo "
|
|
environment : $SCWRYPTS_ENV
|
|
context : $CONTEXT
|
|
namespace : $NAMESPACE
|
|
|
|
CLI settings
|
|
command context : $(_SCWRYPTS_KUBECTL_SETTINGS get context)
|
|
strict mode : $([[ $STRICT -eq 1 ]] && echo "on" || echo "\\033[1;31moff\\033[0m")
|
|
" | sed 's/^ \+//' >&2
|
|
return 0
|
|
}
|
|
|
|
REDIS get --prefix current:$2
|
|
;;
|
|
|
|
set )
|
|
scwrypts -n --name set-$2 --type zsh --group kubectl -- $3 --subsession $SUBSESSION >/dev/null \
|
|
&& SUCCESS "$2 set"
|
|
;;
|
|
|
|
copy )
|
|
: \
|
|
&& STATUS "copying $1 to $2" \
|
|
&& scwrypts -n --name set-context --type zsh --group kubectl -- --subsession $2 $(k meta get context | grep . || echo 'reset') \
|
|
&& scwrypts -n --name set-namespace --type zsh --group kubectl -- --subsession $2 $(k meta get namespace | grep . || echo 'reset') \
|
|
&& SUCCESS "subsession $1 copied to $2" \
|
|
;
|
|
;;
|
|
|
|
clear )
|
|
scwrypts -n --name set-context --type zsh --group kubectl -- --subsession $SUBSESSION reset >/dev/null \
|
|
&& SUCCESS "subsession $SUBSESSION reset to default"
|
|
;;
|
|
|
|
show )
|
|
_SCWRYPTS_KUBECTL_SETTINGS set context show >/dev/null \
|
|
&& SUCCESS "now showing full command context"
|
|
;;
|
|
|
|
hide )
|
|
_SCWRYPTS_KUBECTL_SETTINGS set context hide >/dev/null \
|
|
&& SUCCESS "now hiding command context"
|
|
;;
|
|
|
|
loose )
|
|
_SCWRYPTS_KUBECTL_SETTINGS set strict 0 >/dev/null \
|
|
&& WARNING "now running in 'loose' mode"
|
|
;;
|
|
|
|
strict )
|
|
_SCWRYPTS_KUBECTL_SETTINGS set strict 1 >/dev/null \
|
|
&& SUCCESS "now running in 'strict' mode"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
SCWRYPTS_KUBECTL_CUSTOM_COMMAND_DESCRIPTION__meta() {
|
|
[ $CLI ] || CLI='kubectl'
|
|
echo "operations for $CLI session variables and other CLI settings"
|
|
}
|