79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
source .utils
 | 
						|
 | 
						|
DEBUG=""
 | 
						|
 | 
						|
SUPPORTED_APPS="alertmanager cloudprovider grafana happa kibana kyverno prometheus"
 | 
						|
 | 
						|
print_usage() {
 | 
						|
  orange "gs-open - open apps on Giant Swarm clusters"
 | 
						|
  echo " "
 | 
						|
  underline "Usage:"
 | 
						|
  echo "gs-open [APP] [INSTALLATION] [WORKLOAD CLUSTER] "
 | 
						|
  echo " "
 | 
						|
  underline "Supported apps:"
 | 
						|
  italic "${SUPPORTED_APPS}"
 | 
						|
  echo " "
 | 
						|
  underline "Examples:"
 | 
						|
  echo "> gs-open prometheus gauss"
 | 
						|
  echo "> gs-open alertmanager gauss mywc1"
 | 
						|
  echo " "
 | 
						|
  underline "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
 | 
						|
 | 
						|
APP=${POS_ARGS[0]}
 | 
						|
if [[ "${APP}" == "cloud" ]]; then
 | 
						|
  APP=cloudprovider
 | 
						|
fi
 | 
						|
if [[ "${APP}" == "prom" ]]; then
 | 
						|
  APP=prometheus
 | 
						|
fi
 | 
						|
 | 
						|
case ${#POS_ARGS[@]} in
 | 
						|
  0)
 | 
						|
    print_usage
 | 
						|
    exit 1
 | 
						|
    ;;
 | 
						|
  2)
 | 
						|
    echo "✨  Opening ${APP} on ${POS_ARGS[1]}"
 | 
						|
    opsctl open ${DEBUG} --app ${APP} --installation ${POS_ARGS[1]}
 | 
						|
    ;;
 | 
						|
  3)
 | 
						|
    echo "✨  Opening ${APP} on ${POS_ARGS[1]} / ${POS_ARGS[2]}"
 | 
						|
    opsctl open ${DEBUG} --app ${APP} --installation ${POS_ARGS[1]} --workload-cluster ${POS_ARGS[2]}
 | 
						|
    ;;
 | 
						|
esac
 |