首页 > 其他 > 详细

如何一键将k8s中configmap以及secret的配置变成本地环境变量

时间:2019-12-31 22:52:14      阅读:997      评论:0      收藏:0      [点我收藏+]

脚本如下

#!/usr/bin/env bash
[[ -n $DEBUG ]] && set -x
set -eou pipefail

useage() {
    cat <<HELP
USAGE:
    kubenv.sh TYPE NAME [OPTS]
HELP
}

exit_err() {
    echo >&2 "${1}"
    exit 1
}

if [ $# -lt 2 ]; then
    useage
    exit 1
fi

TYPE=$1
NAME=$2
shift 2
OPTS=$@

cm_pipline(){
    sed -e 's/^map\[//g' | sed -e 's/\]$//g' | sed -e 's/ /\n/g' | sed -e 's/:/=/' | sed -e 's/^/export /g'
}

secret_pipline(){
    sed -e 's/^map\[//g' | sed -e 's/\]$//g' | sed -e 's/ /\n/g' | awk -F ":" '{printf "export %s=", $1;cmd=sprintf("echo %s | base64 -d", $2);system(cmd);print "";}'
}
if [ x"${TYPE}" == x"secret" ]; then
    kubectl ${OPTS} get "${TYPE}" "${NAME}" -o jsonpath="{.data}" | secret_pipline
else
    kubectl ${OPTS} get "${TYPE}" "${NAME}" -o jsonpath="{.data}" | cm_pipline
    echo ""
fi

使用方法

kubenv.sh TYPE NAME [OPTS]

configmap举例

? kubectl create configmap some-config --from-literal=NAME=futuretea
configmap/some-config created
? kubenv cm some-config
export NAME=futuretea
? kubectl create secret generic some-secret --from-literal=PASSWORD=123456
secret/some-secret created
? kubenv secret some-secret
export PASSWORD=123456

如何一键将k8s中configmap以及secret的配置变成本地环境变量

原文:https://www.cnblogs.com/futuretea/p/12127702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!