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