130
templates/ConfigMap-Grafana.yaml
Normal file
130
templates/ConfigMap-Grafana.yaml
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: grafana-config
|
||||||
|
namespace: "{{ .Values.nfc_monitoring.grafana.namespace }}"
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
data:
|
||||||
|
prometheus.yaml: |-
|
||||||
|
{
|
||||||
|
"apiVersion": 1,
|
||||||
|
"datasources": [
|
||||||
|
{
|
||||||
|
"access":"proxy",
|
||||||
|
"editable": true,
|
||||||
|
"name": "prometheus",
|
||||||
|
"orgId": 1,
|
||||||
|
"type": "prometheus",
|
||||||
|
"url": "http://prometheus-config-map.monitoring.svc:9090",
|
||||||
|
"version": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
oncall-app.yaml: |-
|
||||||
|
apiVersion: 1
|
||||||
|
apps:
|
||||||
|
- type: grafana-oncall-app
|
||||||
|
name: grafana-oncall-app
|
||||||
|
disabled: false
|
||||||
|
jsonData:
|
||||||
|
#user: admin
|
||||||
|
grafanaUrl: http://grafana.monitoring.svc:3000
|
||||||
|
onCallApiUrl: http://oncall.monitoring.svc:8080
|
||||||
|
secureJsonData:
|
||||||
|
#password: admin
|
||||||
|
onCallInvitationToken: yaD3a6dkYV0CFinTlMPb42Mi9
|
||||||
|
#http://127.0.0.1:8080/integrations/v1/alertmanager/yaD3a6dkYV0CFinTlMPb42Mi9/
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
name: grafana-alertmanager
|
||||||
|
namespace: monitoring
|
||||||
|
data:
|
||||||
|
alertmanager.yaml: |-
|
||||||
|
{
|
||||||
|
"template_files": {},
|
||||||
|
"template_file_provenances": {},
|
||||||
|
"alertmanager_config": {
|
||||||
|
"route": {
|
||||||
|
"receiver": "Grafana Alerting 😊",
|
||||||
|
"group_by": [
|
||||||
|
"grafana_folder",
|
||||||
|
"alertname"
|
||||||
|
],
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"receiver": "Grafana Alerting 😊",
|
||||||
|
"object_matchers": [
|
||||||
|
[
|
||||||
|
"severity",
|
||||||
|
"!=",
|
||||||
|
""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"severity",
|
||||||
|
"=",
|
||||||
|
"critical"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"severity",
|
||||||
|
"=",
|
||||||
|
"info"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"severity",
|
||||||
|
"=",
|
||||||
|
"warning"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"continue": true,
|
||||||
|
"group_wait": "1s",
|
||||||
|
"group_interval": "2s",
|
||||||
|
"repeat_interval": "15m"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"group_wait": "1s",
|
||||||
|
"group_interval": "2s",
|
||||||
|
"repeat_interval": "3m"
|
||||||
|
},
|
||||||
|
"templates": null,
|
||||||
|
"receivers": [
|
||||||
|
{
|
||||||
|
"name": "Grafana Alerting 😊",
|
||||||
|
"grafana_managed_receiver_configs": [
|
||||||
|
{
|
||||||
|
"uid": "4dqvJSfVkz",
|
||||||
|
"name": "Grafana Alerting 😊",
|
||||||
|
"type": "webhook",
|
||||||
|
"disableResolveMessage": false,
|
||||||
|
"settings": {
|
||||||
|
"httpMethod": "POST",
|
||||||
|
"url": "http://host.docker.internal:8080/integrations/v1/grafana_alerting/dXStYoK9Z15VZW8R8AtfyIwtu/"
|
||||||
|
},
|
||||||
|
"secureFields": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
---
|
130
templates/Grafana-Grafana.yaml
Normal file
130
templates/Grafana-Grafana.yaml
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
---
|
||||||
|
apiVersion: grafana.integreatly.org/v1beta1
|
||||||
|
kind: Grafana
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
name: grafana
|
||||||
|
namespace: "{{ .Values.nfc_monitoring.grafana.namespace }}"
|
||||||
|
spec:
|
||||||
|
config:
|
||||||
|
log:
|
||||||
|
mode: "console"
|
||||||
|
auth:
|
||||||
|
disable_login_form: "false"
|
||||||
|
security:
|
||||||
|
admin_user: "{{ .Values.nfc_monitoring.grafana.admin_user }}"
|
||||||
|
admin_password: "{{ .Values.nfc_monitoring.grafana.admin_password }}"
|
||||||
|
deployment:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.nfc_monitoring.grafana.replicas | int }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 1
|
||||||
|
maxUnavailable: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: grafana
|
||||||
|
image: "{{ .Values.nfc_monitoring.grafana.image.name }}:{{ .Values.nfc_monitoring.grafana.image.tag }}"
|
||||||
|
env:
|
||||||
|
- name: GF_INSTALL_PLUGINS
|
||||||
|
value: agenty-flowcharting-panel 0.9.1, ddurieux-glpi-app 1.3.1, grafana-oncall-app
|
||||||
|
- name: GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS
|
||||||
|
value: grafana-oncall-app 1.1.38
|
||||||
|
- name: GF_ANALYTICS_REPORTING_ENABLED
|
||||||
|
value: 'false'
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: grafana-http
|
||||||
|
readinessProbe:
|
||||||
|
failureThreshold: 3
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 2000m
|
||||||
|
memory: 1Gi
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 100Mi
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
readOnlyRootFilesystem: false
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/grafana
|
||||||
|
name: grafana-storage
|
||||||
|
- mountPath: /etc/grafana/provisioning/plugins
|
||||||
|
name: plugin-config
|
||||||
|
readOnly: false
|
||||||
|
volumes:
|
||||||
|
- name: grafana-storage
|
||||||
|
emptyDir: {}
|
||||||
|
- name: plugin-config
|
||||||
|
configMap:
|
||||||
|
# Provide the name of the ConfigMap you want to mount.
|
||||||
|
name: grafana-config
|
||||||
|
# An array of keys from the ConfigMap to create as files
|
||||||
|
items:
|
||||||
|
- key: "oncall-app.yaml"
|
||||||
|
path: "oncall-app.yaml"
|
||||||
|
# - volumeClaimTemplates:
|
||||||
|
# - metadata:
|
||||||
|
# name: data
|
||||||
|
# labels:
|
||||||
|
# app.kubernetes.io/name: loki
|
||||||
|
# app.kubernetes.io/component: logging
|
||||||
|
# app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
# app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
# app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
# spec:
|
||||||
|
# accessModes:
|
||||||
|
# - "ReadWriteOnce"
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# storage: "5Gi"
|
||||||
|
serviceAccountName: grafana
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
|
||||||
|
# persistentVolumeClaim:
|
||||||
|
# metadata:
|
||||||
|
# labels:
|
||||||
|
# app.kubernetes.io/component: graphing
|
||||||
|
# app.kubernetes.io/instance: k8s
|
||||||
|
# app.kubernetes.io/name: grafana
|
||||||
|
# app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
# app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
# app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
# spec:
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# storage: "5Gi"
|
30
templates/Service-Grafana.yaml
Normal file
30
templates/Service-Grafana.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: grafana
|
||||||
|
namespace: {{ .Values.nfc_monitoring.grafana.namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
#type: NodePort
|
||||||
|
#type: LoadBalancer
|
||||||
|
#clusterIP: None
|
||||||
|
ports:
|
||||||
|
- name: grafana
|
||||||
|
port: 3000
|
||||||
|
targetPort: grafana-http
|
||||||
|
#nodePort: 3000
|
||||||
|
#type: LoadBalancer
|
||||||
|
sessionAffinity: ClientIP
|
14
templates/ServiceAccount-Grafana.yaml
Normal file
14
templates/ServiceAccount-Grafana.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: grafana
|
||||||
|
namespace: {{ .Values.nfc_monitoring.grafana.namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
37
templates/ServiceMonitor-Grafana.yaml
Normal file
37
templates/ServiceMonitor-Grafana.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: ServiceMonitor
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
||||||
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
||||||
|
name: grafana
|
||||||
|
namespace: {{ .Values.nfc_monitoring.grafana.namespace }}
|
||||||
|
spec:
|
||||||
|
endpoints:
|
||||||
|
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||||
|
interval: 15s
|
||||||
|
port: grafana
|
||||||
|
relabelings:
|
||||||
|
- action: replace
|
||||||
|
regex: (.*)
|
||||||
|
replacement: $1
|
||||||
|
sourceLabels:
|
||||||
|
- __meta_kubernetes_pod_label_app_kubernetes_io_instance
|
||||||
|
targetLabel: instance
|
||||||
|
scheme: http
|
||||||
|
# tlsConfig:
|
||||||
|
# insecureSkipVerify: true
|
||||||
|
targetLabels:
|
||||||
|
- cluster
|
||||||
|
jobLabel: app.kubernetes.io/name
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/component: graphing
|
||||||
|
app.kubernetes.io/instance: k8s
|
||||||
|
app.kubernetes.io/name: grafana
|
||||||
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
Reference in New Issue
Block a user