From 6e20584bba01a4e46ae9c6409a1eae135ae19b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beatrice=20Dellac=C3=A0?= Date: Sat, 29 Mar 2025 19:00:04 +0100 Subject: [PATCH] add grafana --- deploy/grafana/grafana-deploy.yaml | 57 +++++++++++++++++++++++++++++ deploy/grafana/grafana-ingress.yaml | 26 +++++++++++++ deploy/grafana/grafana-pvc.yaml | 12 ++++++ deploy/grafana/grafana-svc.yaml | 14 +++++++ deploy/grafana/kustomization.yaml | 8 ++++ 5 files changed, 117 insertions(+) create mode 100644 deploy/grafana/grafana-deploy.yaml create mode 100644 deploy/grafana/grafana-ingress.yaml create mode 100644 deploy/grafana/grafana-pvc.yaml create mode 100644 deploy/grafana/grafana-svc.yaml create mode 100644 deploy/grafana/kustomization.yaml diff --git a/deploy/grafana/grafana-deploy.yaml b/deploy/grafana/grafana-deploy.yaml new file mode 100644 index 0000000..72dd756 --- /dev/null +++ b/deploy/grafana/grafana-deploy.yaml @@ -0,0 +1,57 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: grafana + namespace: grafana + labels: + app: grafana +spec: + selector: + matchLabels: + app: grafana + template: + metadata: + labels: + app: grafana + spec: + securityContext: + fsGroup: 472 + supplementalGroups: + - 0 + containers: + - name: grafana + image: grafana/grafana:latest + imagePullPolicy: IfNotPresent + ports: + - containerPort: 3000 + name: http-grafana + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /robots.txt + port: 3000 + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 2 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: 3000 + timeoutSeconds: 1 + resources: + requests: + cpu: 250m + memory: 750Mi + volumeMounts: + - mountPath: /var/lib/grafana + name: grafana-pv + volumes: + - name: grafana-pv + persistentVolumeClaim: + claimName: grafana-pvc diff --git a/deploy/grafana/grafana-ingress.yaml b/deploy/grafana/grafana-ingress.yaml new file mode 100644 index 0000000..12f66ec --- /dev/null +++ b/deploy/grafana/grafana-ingress.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grafana-ingress + namespace: grafana + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" +spec: + ingressClassName: nginx + tls: + - hosts: + - obs.prod.panic.haus + secretName: drone-tls + + rules: + - host: obs.prod.panic.haus + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: grafana + port: + number: 3000 diff --git a/deploy/grafana/grafana-pvc.yaml b/deploy/grafana/grafana-pvc.yaml new file mode 100644 index 0000000..0da1d7b --- /dev/null +++ b/deploy/grafana/grafana-pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: grafana-pvc + namespace: grafana +spec: + storageClassName: longhorn + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi diff --git a/deploy/grafana/grafana-svc.yaml b/deploy/grafana/grafana-svc.yaml new file mode 100644 index 0000000..dee74f5 --- /dev/null +++ b/deploy/grafana/grafana-svc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: grafana + namespace: grafana +spec: + ports: + - port: 3000 + protocol: TCP + targetPort: http-grafana + selector: + app: grafana + sessionAffinity: none + type: ClusterIP diff --git a/deploy/grafana/kustomization.yaml b/deploy/grafana/kustomization.yaml new file mode 100644 index 0000000..1e3329e --- /dev/null +++ b/deploy/grafana/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - grafana-deploy.yaml + - grafana-ingress.yaml + - grafana-pvc.yaml + - grafana-svc.yaml