gitops: add kube-prometheus

This commit is contained in:
Jan Novak
2026-01-06 09:57:26 +01:00
parent 7be7e0871c
commit 5bfc1f5fe5
8 changed files with 125 additions and 1 deletions

View File

@@ -27,6 +27,19 @@ spec:
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: kube-prometheus
namespace: flux-system
spec:
interval: 10m0s
path: ./gitops/home-kubernetes/kube-prometheus
prune: true
sourceRef:
kind: GitRepository
name: flux-system
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: ingress-nginx
namespace: flux-system

View File

@@ -0,0 +1,81 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kube-prometheus-stack
namespace: monitoring
spec:
interval: 30m
chart:
spec:
chart: kube-prometheus-stack
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: flux-system
install:
createNamespace: true
crds: CreateReplace
remediation:
retries: 3
upgrade:
crds: CreateReplace
remediation:
retries: 3
values:
prometheus:
prometheusSpec:
retention: 60d
storageSpec:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 20Gi
resources:
requests:
memory: 0.5Gi
cpu: 500m
limits:
memory: 4Gi
cpu: 2
serviceMonitorSelectorNilUsesHelmValues: false
podMonitorSelectorNilUsesHelmValues: false
ruleSelectorNilUsesHelmValues: false
alertmanager:
alertmanagerSpec:
storage:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 3Gi
grafana:
persistence:
enabled: true
size: 10Gi
adminPassword: admin
ingress:
enabled: true
ingressClassName: nginx # adjust if using traefik/contour/etc
hosts:
- grafana.lab.home.hrajfrisbee.cz
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/auth-response-headers: X-Auth-Request-User,X-Auth-Request-Email,Authorization
nginx.ingress.kubernetes.io/auth-signin: https://oauth2-proxy.lab.home.hrajfrisbee.cz
/oauth2/start?rd=$scheme://$host$escaped_request_uri
nginx.ingress.kubernetes.io/auth-url: https://oauth2-proxy.lab.home.hrajfrisbee.cz
/oauth2/auth
tls:
- secretName: grafana-tls
hosts:
- grafana.lab.home.hrajfrisbee.cz
prometheusOperator:
admissionWebhooks:
certManager:
enabled: false

View File

@@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: prometheus-community
namespace: flux-system
spec:
interval: 1h
url: https://prometheus-community.github.io/helm-charts

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: monitoring

View File

@@ -31,6 +31,7 @@ spec:
pass_access_token = true
skip_provider_button = true
upstreams = ["static://202"]
skip_auth_routes = ["PUT=^/uploads/.*", "POST=^/uploads/.*"]
extraArgs:
- --reverse-proxy=true
@@ -38,6 +39,8 @@ spec:
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- oauth2-proxy.lab.home.hrajfrisbee.cz
tls:

View File

@@ -0,0 +1,8 @@
```bash
annotations:
nginx.ingress.kubernetes.io/auth-url: "http://oauth2-proxy.oauth2-proxy.svc.cluster.local:4180/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://oauth2-proxy.lab.home.hrajfrisbee.cz/oauth2/start?rd=$scheme://$host$escaped_request_uri"
nginx.ingress.kubernetes.io/auth-response-headers: "X-Auth-Request-User,X-Auth-Request-Email,Authorization"
```

View File

@@ -8,4 +8,4 @@ metadata:
stringData:
client-id: oauth2-proxy
client-secret: <REPLACE_WITH_KANIDM_SECRET>
cookie-secret: <REPLACE_WITH_OPENSSL_RAND_BASE64_32>
cookie-secret: a1f522c2394696c76e88eea54769d9e1

View File

@@ -34,6 +34,13 @@ spec:
ingressClass: nginx
ingress_annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
nginx.ingress.kubernetes.io/auth-url: "https://oauth2-proxy.lab.home.hrajfrisbee.cz /oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://oauth2-proxy.lab.home.hrajfrisbee.cz /oauth2/start?rd=$scheme://$host$escaped_request_uri"
nginx.ingress.kubernetes.io/auth-response-headers: "X-Auth-Request-User,X-Auth-Request-Email,Authorization"
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($request_uri ~* "^/uploads/") {
set $auth_request_uri "";
}
# nginx.ingress.kubernetes.io/proxy-body-size: "10m"
# PostgreSQL - local stateful or external