From 7066db98e3461aae03697ff89386cc551dc84575 Mon Sep 17 00:00:00 2001 From: mborne Date: Mon, 3 Jun 2024 13:01:21 +0200 Subject: [PATCH] chore(cnpg): experiment prometheus/grafana monitoring for CloudNativePG --- cnpg/k8s-install.sh | 6 ++++++ cnpg/k8s-uninstall.sh | 6 ++++++ cnpg/manifest/postgis-cluster.yaml | 5 +++++ grafana/helm/values.yaml | 5 +++++ prometheus/helm/prometheus-stack/values.yaml | 10 +++++----- 5 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 cnpg/k8s-uninstall.sh diff --git a/cnpg/k8s-install.sh b/cnpg/k8s-install.sh index 63f052e..18a8bb1 100644 --- a/cnpg/k8s-install.sh +++ b/cnpg/k8s-install.sh @@ -11,4 +11,10 @@ helm upgrade --install cnpg \ --create-namespace \ cnpg/cloudnative-pg +# Wait for cert-manager pods to be ready +kubectl -n cert-manager wait \ + --for=condition=ready pod \ + --selector=app.kubernetes.io/name=cloudnative-pg \ + --timeout=90s + kubectl -n cnpg apply -f "${SCRIPT_DIR}/manifest/postgis-cluster.yaml" diff --git a/cnpg/k8s-uninstall.sh b/cnpg/k8s-uninstall.sh new file mode 100644 index 0000000..684ab91 --- /dev/null +++ b/cnpg/k8s-uninstall.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +kubectl -n cnpg delete cluster/postgis-cluster + +helm uninstall cnpg \ + --namespace cnpg diff --git a/cnpg/manifest/postgis-cluster.yaml b/cnpg/manifest/postgis-cluster.yaml index ded95b9..28e4b0f 100644 --- a/cnpg/manifest/postgis-cluster.yaml +++ b/cnpg/manifest/postgis-cluster.yaml @@ -39,5 +39,10 @@ spec: database: gis postInitTemplateSQL: - CREATE EXTENSION postgis; + storage: size: 10Gi + + # https://cloudnative-pg.io/documentation/current/quickstart/#viewing-with-prometheus + monitoring: + enablePodMonitor: true diff --git a/grafana/helm/values.yaml b/grafana/helm/values.yaml index cf03f79..62b4dc1 100644 --- a/grafana/helm/values.yaml +++ b/grafana/helm/values.yaml @@ -72,6 +72,11 @@ dashboards: revision: 5 datasource: Prometheus editable: true + # https://github.com/cloudnative-pg/grafana-dashboards/tree/main/charts/cluster + cloudnativepg: + url: https://raw.githubusercontent.com/cloudnative-pg/grafana-dashboards/main/charts/cluster/grafana-dashboard.json + datasource: Prometheus + editable: true # downloadDashboards: # env: diff --git a/prometheus/helm/prometheus-stack/values.yaml b/prometheus/helm/prometheus-stack/values.yaml index 4cc39a5..a983f04 100644 --- a/prometheus/helm/prometheus-stack/values.yaml +++ b/prometheus/helm/prometheus-stack/values.yaml @@ -8,12 +8,12 @@ grafana: prometheus: prometheusSpec: - # https://medium.com/@lambdaEranga/monitor-kubernets-services-endpoints-with-prometheus-blackbox-exporter-a64e062c05d5 - serviceMonitorNamespaceSelector: {} # get service monitors on all namespaces - serviceMonitorSelectorNilUsesHelmValues: false + # ServiceMonitor ruleSelectorNilUsesHelmValues: false - ruleNamespaceSelector: {} - serviceMonitorSelector: {} # get all existing service monitors + serviceMonitorSelectorNilUsesHelmValues: false + podMonitorSelectorNilUsesHelmValues: false + probeSelectorNilUsesHelmValues: false + scrapeConfigSelectorNilUsesHelmValues: false # keep annotations based scrapping # https://github.com/prometheus-operator/prometheus-operator/issues/1547#issuecomment-446711073 additionalScrapeConfigs: