From 37497ee10ae44b0500dbd7aaaa2b35fb30ead6b5 Mon Sep 17 00:00:00 2001 From: Marcus Noble Date: Wed, 2 Mar 2022 07:56:15 +0000 Subject: [PATCH] Added gs-open command: Signed-off-by: Marcus Noble --- home/.bin/gs-open | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 home/.bin/gs-open diff --git a/home/.bin/gs-open b/home/.bin/gs-open new file mode 100755 index 0000000..c848c74 --- /dev/null +++ b/home/.bin/gs-open @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +DEBUG="" + +SUPPORTED_APPS="alertmanager argocd grafana happa kibana kyverno prometheus" + +print_usage() { + echo "gs-open - open apps on Giant Swarm clusters" + echo " " + echo "gs-open [APP] [INSTALLATION] [WORKLOAD CLUSTER] " + echo " " + echo "Examples:" + echo "> gs-open prometheus gauss" + echo "> gs-open alertmanager gauss mywc1" + echo " " + echo "Options:" + echo "-h, --help show this help text" + echo "--debug show debug log output" +} + +POS_ARGS=() + +while test $# -gt 0; do + case "$1" in + -h|--help) + print_usage + exit 0 + ;; + --debug) + DEBUG="--level=debug" + shift + ;; + /) + # We want to ignore slash seperators between MC and WC + shift + ;; + *) + POS_ARGS+=(`echo $1 | tr '/' ' '`) + shift + ;; + esac +done + +if [ ${#POS_ARGS[@]} -eq 0 ]; then + POS_ARGS+=(`echo ${SUPPORTED_APPS} | tr ' ' '\n' | fzf`) +fi +if [ ${#POS_ARGS[@]} -eq 1 ]; then + POS_ARGS+=(`opsctl list installations --short | tr ' ' '\n' | fzf`) +fi + +case ${#POS_ARGS[@]} in + 0) + print_usage + exit 1 + ;; + 2) + echo "✨ Opening ${POS_ARGS[0]} on ${POS_ARGS[1]}" + opsctl open ${DEBUG} --app ${POS_ARGS[0]} --installation ${POS_ARGS[1]} + ;; + 3) + echo "✨ Opening ${POS_ARGS[0]} on ${POS_ARGS[1]}/${POS_ARGS[2]}" + opsctl open ${DEBUG} --app ${POS_ARGS[0]} --installation ${POS_ARGS[1]} --workload-cluster ${POS_ARGS[2]} + ;; +esac