From bf90f28bfc3375758221274a6af7802c2029cb75 Mon Sep 17 00:00:00 2001 From: Rajesh Rajendran Date: Wed, 26 Jan 2022 22:54:13 +0530 Subject: [PATCH] chore(management script): update ops Signed-off-by: Rajesh Rajendran --- scripts/helmcharts/openreplay-cli | 145 +++++++++++++++++++++++++++++- 1 file changed, 144 insertions(+), 1 deletion(-) mode change 120000 => 100755 scripts/helmcharts/openreplay-cli diff --git a/scripts/helmcharts/openreplay-cli b/scripts/helmcharts/openreplay-cli deleted file mode 120000 index d299dbb4f..000000000 --- a/scripts/helmcharts/openreplay-cli +++ /dev/null @@ -1 +0,0 @@ -../helm/openreplay-cli \ No newline at end of file diff --git a/scripts/helmcharts/openreplay-cli b/scripts/helmcharts/openreplay-cli new file mode 100755 index 000000000..1b52e2bd5 --- /dev/null +++ b/scripts/helmcharts/openreplay-cli @@ -0,0 +1,144 @@ +#!/bin/bash + +## This script is a helper for managing your OpenReplay instance + +set -eE -o pipefail # same as: `set -o errexit -o errtrace` +# Trapping the error +trap err EXIT + +err() { + case "$?" in + 0) + ;; + *) + ;; + esac +} + +# make all stderr red +color()(set -o pipefail;"$@" 2>&1>&3|sed $'s,.*,\e[31m&\e[m,'>&2)3>&1 + +# color schemes +# Ansi color code variables +red="\e[0;91m" +blue="\e[0;94m" +expand_bg="\e[K" +blue_bg="\e[0;104m${expand_bg}" +red_bg="\e[0;101m${expand_bg}" +green_bg="\e[0;102m${expand_bg}" +green="\e[0;92m" +white="\e[0;97m" +bold="\e[1m" +uline="\e[4m" +reset="\e[0m" + +CWD=$pwd + +usage() +{ +clear +cat <<"EOF" + ___ ____ _ + / _ \ _ __ ___ _ __ | _ \ ___ _ __ | | __ _ _ _ +| | | | '_ \ / _ \ '_ \| |_) / _ \ '_ \| |/ _` | | | | +| |_| | |_) | __/ | | | _ < __/ |_) | | (_| | |_| | + \___/| .__/ \___|_| |_|_| \_\___| .__/|_|\__,_|\__, | + |_| |_| |___/ + +EOF + + echo -e "${green}Usage: openreplay-cli [ -h | --help ] + [ -d | --status ] + [ -v | --verbose ] + [ -l | --logs SERVICE ] + [ -I | --helm-install SERVICE ] + [ -s | --stop SERVICE|all ] + [ -S | --start SERVICE|all ] + [ -r | --restart SERVICE|all ]" + echo -e "${reset}${blue}services: ${services[*]}${reset}" + exit 0 +} +services=( alerts assets chalice clickhouse ender sink storage http integrations ios-proxy db pg redis postgresql ) + +check() { + if ! command -v kubectl &> /dev/null + then + >&2 echo "Kubectl not found. Please refer https://kubernetes.io/docs/tasks/tools/install-kubectl/ " + exit 2 + fi + kubectl cluster-info &> /dev/null + if [[ $? -ne 0 ]]; then + echo -e "${red}Kubernetes cluster is not accessible.\nPlease check ${bold}KUBECONFIG${reset}${red} env variable is set or ${bold}~/.kube/config exists.${reset}" + exit 1 + fi +} + +stop() { + if [[ $1 == "all" ]]; then + kubectl scale deployment -n app --replicas=0 --all + return + fi + kubectl scale -n app deployment --replicas=0 $1-openreplay +} + +start() { + helm upgrade --install openreplay -n app openreplay -f vars.yaml +} + + +restart() { + if [[ $1 == "all" ]]; then + kubectl rollout restart deployment -n app + return + fi + kubectl rollout restart -n app deployment $1-openreplay +} + + +helmInstall() { + helm upgrade --install openreplay -n app openreplay -f vars.yaml +} + +upgrade() { + sed -i "s/tag:.*/ tag: 'latest'/g" ./app/$1.yaml +} + +logs() { + check + kubectl logs --timestamps -n app -l app.kubernetes.io/name=$1 -f +} + +status() { + kubectl get deployment.apps -n app +} + +[[ $# -eq 0 ]] && usage && exit 1 + +PARSED_ARGUMENTS=$(color getopt -a -n openreplay-cli -o vhds:S:l:r:I --long verbose,help,status,start:,stop:,logs:,restart:,helm-install -- "$@") +VALID_ARGUMENTS=$? +if [[ "$VALID_ARGUMENTS" != "0" ]]; then + usage +fi + +eval set -- "$PARSED_ARGUMENTS" +while : +do + case "$1" in + -v | --verbose) VERBOSE=1 ; shift ;; + -h | --help) usage ; shift ;; + -d | --status) status ; shift ;; + -I | --helm-install) helmInstall; shift ;; + -s | --stop) stop $2 ; shift 2 ;; + -S | --start) start $2 ; shift 2 ;; + -l | --logs) logs "$2" ; shift 2 ;; + -r | --restart) restart "$2" ; shift 2 ;; + # -- means the end of the arguments; drop this, and break out of the while loop + --) shift; break ;; + # If invalid options were passed, then getopt should have reported an error, + # which we checked as VALID_ARGUMENTS when getopt was called... + *) echo "Unexpected option: $1 - this should not happen." + usage ;; + esac +done + +[[ $VERBOSE -eq 1 ]] && set -x