=====================================================================
Excited to bring V5 to life. This includes some BREAKING CHANGES to
several aspects of ZSH-type scwrypts. Please refer to the readme
for upgrade details (specifically docs/upgrade/v4-to-v5.md)
--- New Features -------------------------
- ZSH testing library with basic mock capabilities
- new scwrypts environment file format includes metadata and more
advanced features like optional parent env overrides, selection
inheritence, and improved structurual flexibility
- speedup cache for non-CI runs of ZSH-type scwrypts
- ${scwryptsmodule} syntax now allows a consistent unique-naming
scheme for functions in ZSH-type scwrypts while providing better
insight into origin of API calls in other modules
- reusable, case-statement-driven argument parsers in ZSH-type scwrypts
--- Changes ------------------------------
- several utility function renames in ZSH-type scwrypts to improve
consistency
- documentation comments included in ZSH libraries
- ZSH-type scwrypts now allow library modules to live alongside
executables
(zsh/lib still supported; autodetection determines default)
--- Bug Fixes ----------------------------
- hardened environment checking for REQUIRED_ENV variables; this removes
the ability to overwrite variables in local function contexts
44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#####################################################################
|
|
|
|
use cloud/aws/cli
|
|
|
|
use cloud/aws/zshparse
|
|
use cloud/aws/eks/zshparse
|
|
|
|
#####################################################################
|
|
|
|
${scwryptsmodule}() {
|
|
local DESCRIPTION='
|
|
Interactively sets the default kubeconfig to match the selected
|
|
cluster in EKS. Also creates the kubeconfig entry if it does not
|
|
already exist.
|
|
'
|
|
local PARSERS=(
|
|
cloud.aws.zshparse.overrides
|
|
cloud.aws.eks.zshparse.cluster-name
|
|
)
|
|
|
|
local EKS_CLUSTER_NAME_INTERACTIVE=allowed
|
|
|
|
eval "$(utils.parse.autosetup)"
|
|
|
|
#####################################################################
|
|
|
|
[ ${CLUSTER_NAME} ] || CLUSTER_NAME=$(\
|
|
${AWS} eks list-clusters \
|
|
| jq -r '.[] | .[]' \
|
|
| utils.fzf "select an eks cluster (${ACCOUNT}/${REGION})"
|
|
)
|
|
|
|
[ ${CLUSTER_NAME} ] || echo.error 'must select a valid cluster or use --cluster-name'
|
|
|
|
utils.check-errors || return $?
|
|
|
|
##########################################
|
|
|
|
echo.status 'updating kubeconfig for EKS cluster '${CLUSTER_NAME}''
|
|
${AWS} eks update-kubeconfig --name ${CLUSTER_NAME} \
|
|
&& echo.success "kubeconfig updated with '${CLUSTER_NAME}'" \
|
|
|| echo.error "failed to update kubeconfig; do you have permission to access '${CLUSTER_NAME}'?"
|
|
}
|