#!/usr/bin/env bash TOP=@out@/share/kube-system-bootstrap ca=@initca@ apiserver="@apiserver@" filseserver="@fileserver@" grafana_ldap_toml="@grafana_ldap_toml@" apply_configs () { d=$TOP/config configs[0]=$d/cluster-auth-rbac.yaml configs[1]=$d/kube-proxy.yaml configs[2]=$d/front-proxy-client.yaml configs[3]=$d/grafana-smtp-secret.yaml [ ! -z $grafana_ldap_toml ] && configs[4]=$d/grafana-ldap-toml.yaml kubectl delete secret cluster-ca -n kube-system >/dev/null 2>&1 kubectl create secret tls cluster-ca \ --namespace=kube-system --cert=${ca}/ca.pem --key=${ca}/ca-key.pem for i in ${configs[@]}; do kubectl apply -f $i done } install_certmgr () { kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml helm repo add jetstack https://charts.jetstack.io helm install -n kube-system -f $TOP/charts/cert-manager.yaml \ cert-manager jetstack/cert-manager } helm_install () { echo "helm install $1" helm install -n kube-system -f $TOP/charts/$1.yaml $1 stable/$1 } helm_delete () { echo "helm delete existing $1" helm delete -n kube-system $1 } install_prometheus () { helm_delete prometheus-operator yaml=/tmp/prometheus-operator.yaml cp $TOP/charts/prometheus-operator.yaml $yaml chmod 640 $yaml # disable ldap for grafana [ -z $grafana_ldap_toml ] && \ sed -i '/auth\.ldap:/,+1 s/true/false/; /ldap:/,+1 d' $yaml # disable storage [ -z $fileserver ] && \ sed -i '/prometheusSpec:/,+10d' $yaml helm_install prometheus-operator $yaml } install_charts () { [ ! -z $fileserver ] && charts[0]=nfs-client-provisioner charts[1]=nginx-ingress charts[2]=metrics-server charts[3]=kubernetes-dashboard for i in ${charts[@]};do helm_install $i sleep 30 done } install_prometheus_crds () { url=https://raw.githubusercontent.com/helm/charts/master/stable/prometheus-operator/crds kubectl apply -f $url/crd-alertmanager.yaml kubectl apply -f $url/crd-prometheus.yaml kubectl apply -f $url/crd-prometheusrules.yaml kubectl apply -f $url/crd-servicemonitor.yaml kubectl apply -f $url/crd-podmonitor.yaml } helm repo add stable https://kubernetes-charts.storage.googleapis.com helm repo update apply_configs install_prometheus_crds install_certmgr install_charts install_prometheus # helm install -n kube-system -f sentry.yaml --wait --timeout=1000s sentry stable/sentry # helm install -n vault -f vault-values.yaml vault hashicorp/vault # helm install -n monitoring -f kube-prometheus-stack.yaml prometheus prometheus-community/kube-prometheus-stack # vim:ft=sh