blob: 00e46df4c46c586fac37a655ad280e0fe3053bbf [file] [log] [blame]
# Copyright 2020 Minsait - Indra S.A.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Author: Jose Manuel Palacios (jmpalacios@minsait.com)
# Author: Alberto Limon (alimonj@minsait.com)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app: grafana
name: grafana-clusterrole
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
verbs:
- get
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app: grafana
name: grafana-clusterrolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: grafana-clusterrole
subjects:
- kind: ServiceAccount
name: grafana
namespace: osm
---
apiVersion: v1
data:
admin-password: YWRtaW4=
admin-user: YWRtaW4=
kind: Secret
metadata:
labels:
app: grafana
name: grafana
type: Opaque
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app: grafana
name: grafana
---
apiVersion: v1
data:
provider.yaml: |-
apiVersion: 1
providers:
- name: 'Kubernetes Cluster'
orgId: 1
folder: 'Kubernetes Cluster'
type: file
disableDeletion: false
options:
path: '/tmp/dashboards/Kubernetes Cluster'
- name: 'Open Source MANO'
orgId: 1
folder: 'Open Source MANO'
type: file
disableDeletion: false
options:
path: '/tmp/dashboards/Open Source MANO'
kind: ConfigMap
metadata:
labels:
app: grafana
name: grafana-dashboard-provider
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
grafana_datasource: "1"
name: grafana-datasource
data:
datasource.yaml: |-
apiVersion: 1
datasources:
- name: osm_prometheus
type: prometheus
url: http://prometheus:9090
access: proxy
allowUiUpdates: true
isDefault: true
- name: Prometheus
type: prometheus
url: http://osm-monitoring-kube-promet-prometheus.monitoring:9090
access: proxy
allowUiUpdates: true
isDefault: false
---
apiVersion: v1
data:
grafana.ini: |
[log]
mode = console
[paths]
data = /var/lib/grafana/data
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
provisioning = /etc/grafana/provisioning
kind: ConfigMap
metadata:
labels:
app: grafana
name: grafana
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: grafana
name: grafana
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
labels:
app: grafana
spec:
containers:
- env:
- name: LABEL
value: grafana_dashboard
- name: FOLDER
value: "/tmp/dashboards/Kubernetes Cluster"
- name: RESOURCE
value: both
- name: NAMESPACE
value: monitoring
image: kiwigrid/k8s-sidecar:1.15.6
imagePullPolicy: IfNotPresent
name: grafana-sc-dashboard
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: "/tmp/dashboards/Kubernetes Cluster"
name: sc-dashboard-volume-k8s
- mountPath: "/tmp/dashboards/Open Source MANO"
name: sc-dashboard-volume-osm
- env:
- name: GF_SECURITY_ADMIN_USER
valueFrom:
secretKeyRef:
key: admin-user
name: grafana
- name: GF_SECURITY_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: admin-password
name: grafana
image: grafana/grafana:8.1.1
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 10
httpGet:
path: /api/health
port: 3000
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 30
name: grafana
ports:
- containerPort: 80
name: service
protocol: TCP
- containerPort: 3000
name: grafana
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /api/health
port: 3000
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/grafana/grafana.ini
name: config
subPath: grafana.ini
- mountPath: /var/lib/grafana
name: storage
- mountPath: "/tmp/dashboards/Kubernetes Cluster"
name: sc-dashboard-volume-k8s
- mountPath: "/tmp/dashboards/Open Source MANO"
name: sc-dashboard-volume-osm
- mountPath: /etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml
name: sc-dashboard-provider
subPath: provider.yaml
- mountPath: /etc/grafana/provisioning/datasources
name: sc-datasources-volume
dnsPolicy: ClusterFirst
initContainers:
- env:
- name: METHOD
value: LIST
- name: LABEL
value: grafana_datasource
- name: FOLDER
value: /etc/grafana/provisioning/datasources
- name: RESOURCE
value: both
image: kiwigrid/k8s-sidecar:1.15.6
imagePullPolicy: IfNotPresent
name: grafana-sc-datasources
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/grafana/provisioning/datasources
name: sc-datasources-volume
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 472
runAsUser: 472
serviceAccount: grafana
serviceAccountName: grafana
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
name: grafana
name: config
- emptyDir: {}
name: storage
- emptyDir: {}
name: sc-dashboard-volume-k8s
- emptyDir: {}
name: sc-dashboard-volume-osm
- configMap:
defaultMode: 420
name: grafana-dashboard-provider
name: sc-dashboard-provider
- emptyDir: {}
name: sc-datasources-volume
---
apiVersion: v1
kind: Service
metadata:
labels:
app: grafana
name: grafana
spec:
ports:
- name: service
nodePort: 3000
port: 3000
protocol: TCP
targetPort: 3000
selector:
app: grafana
sessionAffinity: None
type: NodePort