123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #!/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 secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=mail-template.tmpl -n monitoring
- 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/
|