Added kcontext-k8s
This commit is contained in:
		@@ -23,11 +23,89 @@ function kcontext {
 | 
				
			|||||||
	return $?
 | 
						return $?
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function kcontext-k8s {
 | 
				
			||||||
 | 
						local _NAME _CONF
 | 
				
			||||||
 | 
						case $1 in
 | 
				
			||||||
 | 
							list)
 | 
				
			||||||
 | 
								kstore query -list "SELECT SUBSTR( prop, 5 ) FROM store WHERE key = 'kcontext' AND prop LIKE 'k8s.%'"
 | 
				
			||||||
 | 
								return $?
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							save)
 | 
				
			||||||
 | 
								_NAME=$( kubectl config current-context )
 | 
				
			||||||
 | 
								if [ $? -ne 0 ]; then
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								kstore get "kcontext" "k8s.$_NAME" 2> /dev/null > /dev/null
 | 
				
			||||||
 | 
								if [ $? -eq 0 ]; then
 | 
				
			||||||
 | 
									read -p "Replace existing config for \"$_NAME\"? (y/n): " _CONFIRM
 | 
				
			||||||
 | 
									if [ "$_CONFIRM" != "y" ]; then
 | 
				
			||||||
 | 
										return 0
 | 
				
			||||||
 | 
									fi
 | 
				
			||||||
 | 
									kubectl config view --minify --flatten | kstore update "kcontext" - "k8s.$_NAME"
 | 
				
			||||||
 | 
									return $?
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									kubectl config view --minify --flatten | kstore add "kcontext" - "k8s.$_NAME"
 | 
				
			||||||
 | 
									return $?
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							use)
 | 
				
			||||||
 | 
								_NAME=$2
 | 
				
			||||||
 | 
								if [ -z "$_NAME" ]; then
 | 
				
			||||||
 | 
									echo "Please specify a context name" >&2
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								_CONF="$RBASH_HOME/k8s.conf"
 | 
				
			||||||
 | 
								kstore get "kcontext" "k8s.$_NAME" > "$_CONF"
 | 
				
			||||||
 | 
								if [ $? -ne 0 ]; then
 | 
				
			||||||
 | 
									echo "No such context: $_NAME" >&2
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								chmod 600 "$_CONF"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								echo $KUBECONFIG | grep "$_CONF" -q
 | 
				
			||||||
 | 
								if [ $? -eq 0 ]; then
 | 
				
			||||||
 | 
									export KUBECONFIG="$_CONF"
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									export KUBECONFIG="$_CONF:$KUBECONFIG"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							del)
 | 
				
			||||||
 | 
								_NAME=$2
 | 
				
			||||||
 | 
								if [ -z "$_NAME" ]; then
 | 
				
			||||||
 | 
									echo "Please specify a context name" >&2
 | 
				
			||||||
 | 
									return 1
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								kstore get "kcontext" "k8s.$_NAME" 2> /dev/null > /dev/null
 | 
				
			||||||
 | 
								if [ $? -eq 0 ]; then
 | 
				
			||||||
 | 
									read -p "Delete context \"$_NAME\"? (y/n): " _CONFIRM
 | 
				
			||||||
 | 
									if [ "$_CONFIRM" != "y" ]; then
 | 
				
			||||||
 | 
										return 0
 | 
				
			||||||
 | 
									fi
 | 
				
			||||||
 | 
									kstore query "DELETE FROM store WHERE key = 'kcontext' AND prop = 'k8s.$_NAME'"
 | 
				
			||||||
 | 
									return $?
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									echo "No such context: $_NAME" >&2
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							*)
 | 
				
			||||||
 | 
								__func_head "list"
 | 
				
			||||||
 | 
								__func_help "save"
 | 
				
			||||||
 | 
								__func_help "use NAME"
 | 
				
			||||||
 | 
								__func_help "del NAME"
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
						return 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function kcontext-s3-arch {
 | 
					function kcontext-s3-arch {
 | 
				
			||||||
	local _NAME _CONFIRM _URL _AUTH
 | 
						local _NAME _CONFIRM _URL _AUTH
 | 
				
			||||||
	case $1 in
 | 
						case $1 in
 | 
				
			||||||
		list)
 | 
							list)
 | 
				
			||||||
			kstore query -list "SELECT SUBSTR( prop, 16 ) FROM store WHERE key = 'kcontext' AND prop LIKE 's3-arch.bucket.%'"
 | 
								kstore query -list "SELECT SUBSTR( prop, 16 ) FROM store WHERE key = 'kcontext' AND prop LIKE 's3-arch.bucket.%'"
 | 
				
			||||||
 | 
								return $?
 | 
				
			||||||
			;;
 | 
								;;
 | 
				
			||||||
		save)
 | 
							save)
 | 
				
			||||||
			_NAME=$2
 | 
								_NAME=$2
 | 
				
			||||||
@@ -54,7 +132,7 @@ function kcontext-s3-arch {
 | 
				
			|||||||
				echo "No s3-arch settings can be found in env" >&2
 | 
									echo "No s3-arch settings can be found in env" >&2
 | 
				
			||||||
			fi
 | 
								fi
 | 
				
			||||||
			;;
 | 
								;;
 | 
				
			||||||
		load)
 | 
							use)
 | 
				
			||||||
			_NAME=$2
 | 
								_NAME=$2
 | 
				
			||||||
			if [ -z "$_NAME" ]; then
 | 
								if [ -z "$_NAME" ]; then
 | 
				
			||||||
				echo "Please specify a context name" >&2
 | 
									echo "Please specify a context name" >&2
 | 
				
			||||||
@@ -97,7 +175,7 @@ function kcontext-s3-arch {
 | 
				
			|||||||
		*)
 | 
							*)
 | 
				
			||||||
			__func_head "list"
 | 
								__func_head "list"
 | 
				
			||||||
			__func_help "save NAME"
 | 
								__func_help "save NAME"
 | 
				
			||||||
			__func_help "load NAME"
 | 
								__func_help "use NAME"
 | 
				
			||||||
			__func_help "del NAME"
 | 
								__func_help "del NAME"
 | 
				
			||||||
			;;
 | 
								;;
 | 
				
			||||||
	esac
 | 
						esac
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user