From 62c04ee8b074dcbe0001c60e731514e2c80cab5e Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Thu, 26 Sep 2024 17:10:13 -0400 Subject: [PATCH] add prometheus stack Signed-off-by: Michael Thomson --- .../helmrepository-prometheus-community.yaml | 8 +++++ .../kustomization-kube-prometheus-stack.yaml | 18 +++++++++++ .../namespace-kube-prometheus-stack.yaml | 4 +++ .../dns-endpoint-grafana.yaml | 12 +++++++ .../helmrelease-kube-prometheus-stack.yaml | 32 +++++++++++++++++++ 5 files changed, 74 insertions(+) create mode 100644 bootstrap/helmrepositories/helmrepository-prometheus-community.yaml create mode 100644 bootstrap/kustomizations/kustomization-kube-prometheus-stack.yaml create mode 100644 bootstrap/namespaces/namespace-kube-prometheus-stack.yaml create mode 100644 kube-prometheus-stack/dns-endpoint-grafana.yaml create mode 100644 kube-prometheus-stack/helmrelease-kube-prometheus-stack.yaml diff --git a/bootstrap/helmrepositories/helmrepository-prometheus-community.yaml b/bootstrap/helmrepositories/helmrepository-prometheus-community.yaml new file mode 100644 index 0000000..1329659 --- /dev/null +++ b/bootstrap/helmrepositories/helmrepository-prometheus-community.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: prometheus-community + namespace: flux-system +spec: + interval: 15m + url: https://prometheus-community.github.io/helm-charts diff --git a/bootstrap/kustomizations/kustomization-kube-prometheus-stack.yaml b/bootstrap/kustomizations/kustomization-kube-prometheus-stack.yaml new file mode 100644 index 0000000..8a6bc8c --- /dev/null +++ b/bootstrap/kustomizations/kustomization-kube-prometheus-stack.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: kube-prometheus-stack + namespace: flux-system +spec: + interval: 15m + path: ./kube-prometheus-stack + prune: true # remove any elements later removed from the above path + timeout: 2m # if not set, this defaults to interval duration, which is 1h + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + name: kube-prometheus-stack + namespace: kube-prometheus-stack diff --git a/bootstrap/namespaces/namespace-kube-prometheus-stack.yaml b/bootstrap/namespaces/namespace-kube-prometheus-stack.yaml new file mode 100644 index 0000000..5c4ed57 --- /dev/null +++ b/bootstrap/namespaces/namespace-kube-prometheus-stack.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: kube-prometheus-stack diff --git a/kube-prometheus-stack/dns-endpoint-grafana.yaml b/kube-prometheus-stack/dns-endpoint-grafana.yaml new file mode 100644 index 0000000..2222fa7 --- /dev/null +++ b/kube-prometheus-stack/dns-endpoint-grafana.yaml @@ -0,0 +1,12 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: grafana.michaelthomson.dev + namespace: kube-prometheus-stack +spec: + endpoints: + - dnsName: grafana.michaelthomson.dev + recordTTL: 180 + recordType: CNAME + targets: + - server.michaelthomson.dev diff --git a/kube-prometheus-stack/helmrelease-kube-prometheus-stack.yaml b/kube-prometheus-stack/helmrelease-kube-prometheus-stack.yaml new file mode 100644 index 0000000..aed89cf --- /dev/null +++ b/kube-prometheus-stack/helmrelease-kube-prometheus-stack.yaml @@ -0,0 +1,32 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: kube-prometheus-stack + namespace: kube-prometheus-stack +spec: + chart: + spec: + chart: kube-prometheus-stack + version: 63.x + sourceRef: + kind: HelmRepository + name: prometheus-community + namespace: flux-system + interval: 15m + timeout: 5m + releaseName: kube-prometheus-stack + values: + grafana: + ingress: + enabled: true + annotations: + traefik.ingress.kubernetes.io/router.tls: "true" + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.middlewares: traefik-authentik@kubernetescrd + hosts: + - grafana.michaelthomson.dev + path: / + tls: + - secretName: letsencrypt-wildcard-cert-michaelthomson.dev + hosts: + - grafana.michaelthomson.dev