--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nfs-grafana namespace: monitoring-system spec: accessModes: - ReadWriteOnce storageClassName: nfs-client resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: grafana name: grafana namespace: monitoring-system spec: selector: matchLabels: app: grafana template: metadata: labels: app: grafana spec: securityContext: fsGroup: 472 runAsGroup: 472 runAsNonRoot: true runAsUser: 472 containers: - name: grafana image: grafana/grafana:8.4.4 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: - name: grafana-lib mountPath: /var/lib/grafana - name: grafana-config mountPath: /etc/grafana/grafana.ini subPath: grafana.ini - name: grafana-ldap mountPath: /etc/grafana/ldap.toml subPath: ldap.toml volumes: - name: grafana-lib persistentVolumeClaim: claimName: nfs-grafana - name: grafana-config configMap: name: grafana-config - name: grafana-ldap configMap: name: grafana-ldap --- apiVersion: v1 kind: Service metadata: name: grafana namespace: monitoring-system spec: clusterIP: fd00:0:0:100::6 ports: - port: 3000 protocol: TCP targetPort: http-grafana selector: app: grafana sessionAffinity: None type: NodePort