gitops: add kube-prometheus
This commit is contained in:
@@ -27,6 +27,19 @@ spec:
|
|||||||
---
|
---
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
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:
|
metadata:
|
||||||
name: ingress-nginx
|
name: ingress-nginx
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
|
|||||||
81
gitops/home-kubernetes/kube-prometheus/helmrelease.yaml
Normal file
81
gitops/home-kubernetes/kube-prometheus/helmrelease.yaml
Normal 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
|
||||||
@@ -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
|
||||||
4
gitops/home-kubernetes/kube-prometheus/namespace.yaml
Normal file
4
gitops/home-kubernetes/kube-prometheus/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: monitoring
|
||||||
@@ -31,6 +31,7 @@ spec:
|
|||||||
pass_access_token = true
|
pass_access_token = true
|
||||||
skip_provider_button = true
|
skip_provider_button = true
|
||||||
upstreams = ["static://202"]
|
upstreams = ["static://202"]
|
||||||
|
skip_auth_routes = ["PUT=^/uploads/.*", "POST=^/uploads/.*"]
|
||||||
|
|
||||||
extraArgs:
|
extraArgs:
|
||||||
- --reverse-proxy=true
|
- --reverse-proxy=true
|
||||||
@@ -38,6 +39,8 @@ spec:
|
|||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: nginx
|
className: nginx
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
hosts:
|
hosts:
|
||||||
- oauth2-proxy.lab.home.hrajfrisbee.cz
|
- oauth2-proxy.lab.home.hrajfrisbee.cz
|
||||||
tls:
|
tls:
|
||||||
|
|||||||
8
gitops/home-kubernetes/oauth-proxy/readme.md
Normal file
8
gitops/home-kubernetes/oauth-proxy/readme.md
Normal 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"
|
||||||
|
|
||||||
|
```
|
||||||
@@ -8,4 +8,4 @@ metadata:
|
|||||||
stringData:
|
stringData:
|
||||||
client-id: oauth2-proxy
|
client-id: oauth2-proxy
|
||||||
client-secret: <REPLACE_WITH_KANIDM_SECRET>
|
client-secret: <REPLACE_WITH_KANIDM_SECRET>
|
||||||
cookie-secret: <REPLACE_WITH_OPENSSL_RAND_BASE64_32>
|
cookie-secret: a1f522c2394696c76e88eea54769d9e1
|
||||||
@@ -34,6 +34,13 @@ spec:
|
|||||||
ingressClass: nginx
|
ingressClass: nginx
|
||||||
ingress_annotations:
|
ingress_annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-production
|
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"
|
# nginx.ingress.kubernetes.io/proxy-body-size: "10m"
|
||||||
|
|
||||||
# PostgreSQL - local stateful or external
|
# PostgreSQL - local stateful or external
|
||||||
|
|||||||
Reference in New Issue
Block a user