#!/bin/sh # Author : NTT Data AG # Date : 11-05-2023 helm_install=false app_name="" # fetch helm resources # docs: https://helm.sh/docs/intro/install/ install_helm () { # curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 # chmod 700 get_helm.sh # ./get_helm.sh echo "Helm not support yet." exit 1 } # install resources # TODO: check if this works install_k3s () { sudo dnf install -y container-selinux sudo dnf install -y https://rpm.rancher.io/k3s/stable/common/centos/8/noarch/k3s-selinux-1.2-2.el8.noarch.rpm get_k3s } # install k3s # docs: https://docs.k3s.io/installation/configuration get_k3s () { sudo curl -sfL https://get.k3s.io | INSTALL_K3S_SYMLINK="skip" K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="--disable=traefik" sh - export KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get pods -A } # install git install_git () { sudo dnf -y update sudo dnf -y install git } install_sock_shop () { git clone https://github.com/microservices-demo/microservices-demo.git cd deploy/kubernetes kubectl create namespace sock-shop kubectl apply -f complete-demo.yaml echo "Getting Pods from sock-shop namespace" kubectl get pods -n sock-shop } show_help() { cat < Specify the app name EOF } while [ "$#" -gt 0 ]; do case "$1" in -h|--help) show_help exit 0 ;; -m|--helm) helm_install=true shift ;; -a|--app) if [ "$2" ]; then app_name="$2" shift 2 else echo "Error: Missing argument for $1 option" show_help exit 1 fi ;; *) echo "Error: Unrecognized option $1" show_help exit 1 ;; esac done # Check if --helm was set if [ "$helm_install" = true ]; then install_helm else echo "Skipping helm" fi echo "Installing GIT" # install_git echo "Installing K3S" # install_k3s # Validate app names if [ -z "$app_name" ]; then echo "Please specify app" else case $app_name in "sock_shop") echo "Installing sock shop" install_sock_shop ;; *) echo "Only following apps allowed" echo "- sock_shop" exit 1 ;; esac fi