Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- _options="c:n:s:k:h"
- usage() {
- echo """
- Usage $0 [-c <context>] [-n <namespace>] [-s <secret>] [-k <key>[
- """ >&2
- }
- if test -t 1; then
- # see if it supports colors...
- ncolors=$(tput colors)
- if test -n "$ncolors" && test $ncolors -ge 8; then
- bold="$(tput bold)"
- underline="$(tput smul)"
- standout="$(tput smso)"
- normal="$(tput sgr0)"
- black="$(tput setaf 0)"
- red="$(tput setaf 1)"
- green="$(tput setaf 2)"
- yellow="$(tput setaf 3)"
- blue="$(tput setaf 4)"
- magenta="$(tput setaf 5)"
- cyan="$(tput setaf 6)"
- white="$(tput setaf 7)"
- fi
- fi
- while getopts $_options _option; do
- case $_option in
- c )
- _context=$OPTARG
- ;;
- n )
- _namespace=$OPTARG
- ;;
- s )
- _secret=$OPTARG
- ;;
- k )
- _key=$OPTARG
- ;;
- h )
- usage
- exit
- ;;
- \? )
- echo "Error. Unknown option -$OPTARG" >&2
- exit 1
- ;;
- : )
- echo "Error. Missing option argument for -$OPTARG" >&2
- exit 1
- ;;
- esac
- done
- _COMMAND="kubectl "
- [ ! -z "$_context" ] && _COMMAND=$_COMMAND" --context $_context"
- [ ! -z "$_namespace" ] && _COMMAND=$_COMMAND" --namespace $_namespace"
- [ ! -z "$_secret" ] && _COMMAND=$_COMMAND" get secret $_secret"
- [ ! -z "$_key" ] && _COMMAND=$_COMMAND" -o jsonpath=\"{.data.$_key}\" | base64 --decode && echo "
- if [ ! -z "$_secret" -a ! -z "$_key" ]; then
- eval $_COMMAND
- elif [ ! -z "$_secret" -a -z "$_key" ]; then
- while read _key; do
- echo -ne "\t${yellow}${underline}$_key${normal} ${green}${bold}"
- eval $_COMMAND" -o jsonpath=\"{.data.$_key}\"" | base64 --decode && echo "${normal}"
- done < <(eval $_COMMAND" -o jsonpath=\"{.data}\"" | jq --raw-output "keys[]")
- echo
- elif [ -z "$_secret" -a -z "$_key" ]; then
- while read _secret; do
- echo "${red}${standout}$_secret${normal}"
- while read _key; do
- echo -ne "\t${yellow}${underline}$_key${normal} ${green}${bold}"
- eval $_COMMAND" get secret $_secret -o jsonpath=\"{.data.$_key}\"" | base64 --decode && echo "${normal}"
- done < <(eval $_COMMAND" get secret $_secret -o jsonpath=\"{.data}\"" | jq --raw-output "keys[]")
- done < <(eval $_COMMAND" get secret --field-selector type=Opaque --no-headers --output custom-columns=\":metadata.name\" ")
- fi
Add Comment
Please, Sign In to add comment