#!/usr/bin/env bash manifest_prefix=${1-.} kubectl create namespace monitoring kubectl apply -f ${manifest_prefix}/manifests/prometheus-operator/ # Wait for CRDs to be ready. printf "Waiting for Operator to register custom resource definitions..." until kubectl get customresourcedefinitions servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done until kubectl get customresourcedefinitions prometheuses.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done until kubectl get customresourcedefinitions alertmanagers.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done until kubectl get servicemonitors.monitoring.coreos.com > /dev/null 2>&1; do sleep 1; printf "."; done until kubectl get prometheuses.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!" kubectl apply -f ${manifest_prefix}/manifests/node-exporter/ kubectl apply -f ${manifest_prefix}/manifests/kube-state-metrics/ kubectl apply -f ${manifest_prefix}/manifests/grafana/ kubectl apply -f ${manifest_prefix}/manifests/prometheus-k8s/ kubectl apply -f ${manifest_prefix}/manifests/alertmanager-main/