1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env bash
- if [ -z "${KUBECONFIG}" ]; then
- export KUBECONFIG=~/.kube/config
- fi
- # CAUTION - setting NAMESPACE will deploy most components to the given namespace
- # however some are hardcoded to 'monitoring'. Only use if you have reviewed all manifests.
- if [ -z "${NAMESPACE}" ]; then
- NAMESPACE=monitoring
- fi
- kubectl create namespace "$NAMESPACE"
- #kubectl create -f bundle.yaml
- kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=mail-template.tmpl -n monitoring
- kubectl -n monitoring create secret generic etcd-certs --from-file=/etc/kubernetes/pki/etcd/peer.crt --from-file=/etc/kubernetes/pki/etcd/peer.key --from-file=/etc/kubernetes/pki/etcd/ca.crt
- kctl() {
- kubectl --namespace "$NAMESPACE" "$@"
- }
- kctl apply -f manifests/prometheus-operator
- # Wait for CRDs to be ready.
- printf "Waiting for Operator to register custom resource definitions..."
- until kctl get customresourcedefinitions servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- until kctl get customresourcedefinitions prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- until kctl get customresourcedefinitions alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- until kctl get servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- until kctl get prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- until kctl get alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
- echo "done!"
- kctl apply -f manifests/node-exporter
- kctl apply -f manifests/kube-state-metrics
- kctl apply -f manifests/grafana/grafana-credentials.yaml
- kctl apply -f manifests/grafana
- find manifests/prometheus -type f ! -name prometheus-k8s-roles.yaml ! -name prometheus-k8s-role-bindings.yaml -exec kubectl --namespace "$NAMESPACE" apply -f {} \;
- kubectl apply -f manifests/prometheus/prometheus-k8s-roles.yaml
- kubectl apply -f manifests/prometheus/prometheus-k8s-role-bindings.yaml
- kctl apply -f manifests/alertmanager/
|