Skip to content
Snippets Groups Projects
Commit 8c49a641 authored by Frederic Branczyk's avatar Frederic Branczyk
Browse files

kube-prometheus/hack: Fix cyclic ServiceMonitor dependency

Previously the script errored out, as ServiceMonitor objects are only
registered once the Prometheus Operator is running.
parent 2afaeab2
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env bash #!/usr/bin/env bash
# exit immediately when a command fails
set -e
# only exit with zero if all commands of the pipeline exit successfully
set -o pipefail
# error on unset variables
set -u
# print each command before executing it
set -x
manifest_prefix=${1-.} manifest_prefix=${1-.}
kubectl create namespace monitoring kubectl create namespace monitoring
kubectl apply -f ${manifest_prefix}/manifests/prometheus-operator/ find ${manifest_prefix}/manifests/prometheus-operator/ -type f ! -name prometheus-operator-service-monitor.yaml -exec kubectl apply -f {} \;
# Wait for CRDs to be ready. # Wait for CRDs to be ready.
printf "Waiting for Operator to register custom resource definitions..." printf "Waiting for Operator to register custom resource definitions..."
...@@ -16,9 +24,15 @@ until kubectl get prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep ...@@ -16,9 +24,15 @@ until kubectl get prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep
until kubectl get alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done until kubectl get alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done
echo "done!" echo "done!"
# need to ensure that ServiceMonitors are registered before we can create the prometheus-operator ServiceMonitor
kubectl apply -f ${manifest_prefix}/manifests/prometheus-operator/prometheus-operator-service-monitor.yaml
kubectl apply -f ${manifest_prefix}/manifests/node-exporter/ kubectl apply -f ${manifest_prefix}/manifests/node-exporter/
kubectl apply -f ${manifest_prefix}/manifests/kube-state-metrics/ kubectl apply -f ${manifest_prefix}/manifests/kube-state-metrics/
kubectl apply -f ${manifest_prefix}/manifests/grafana/ find ${manifest_prefix}/manifests/grafana/ -type f ! -name grafana-dashboard-definitions.yaml -exec kubectl apply -f {} \;
# kubectl apply wants to put the previous version in an annotation, which is too large, therefore create instead of apply
kubectl create -f ${manifest_prefix}/manifests/grafana/grafana-dashboard-definitions.yaml
kubectl apply -f ${manifest_prefix}/manifests/prometheus-k8s/ kubectl apply -f ${manifest_prefix}/manifests/prometheus-k8s/
kubectl apply -f ${manifest_prefix}/manifests/alertmanager-main/ kubectl apply -f ${manifest_prefix}/manifests/alertmanager-main/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment