| # 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 |