89 lines
2.4 KiB
Bash
Executable File
89 lines
2.4 KiB
Bash
Executable File
#!/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
|
|
|
|
# vim:ft=sh
|