{{- define "openstack-cluster.loki-stack.hookScript" -}} # Ensure that the dashboard configmaps belong to the Helm release for the manifest object helm-adopt \ loki-stack-dashboards \ {{ .Values.addons.monitoring.kubePrometheusStack.release.namespace }} \ configmap/loki-stack-grafana-datasource \ --namespace {{ .Values.addons.monitoring.kubePrometheusStack.release.namespace }} helm-adopt \ loki-stack-dashboards \ {{ .Values.addons.monitoring.kubePrometheusStack.release.namespace }} \ configmap/loki-stack-grafana-dashboard \ --namespace {{ .Values.addons.monitoring.kubePrometheusStack.release.namespace }} # At some point in the evolution of the promtail chart, the selector labels for the daemonset changed # This is an immutable field, so we remove the daemonset with the old labels before upgrading # NOTE: Once the upgrade to the new labels has occurred, this will be a no-op kubectl delete daemonset \ -l release=loki-stack,app=promtail \ -n {{ .Values.addons.monitoring.lokiStack.release.namespace }} {{- end }} {{- if and .Values.addons.enabled .Values.addons.monitoring.enabled .Values.addons.monitoring.lokiStack.enabled }} --- apiVersion: v1 kind: Secret metadata: name: {{ include "openstack-cluster.componentName" (list . "loki-stack") }}-config labels: {{- include "openstack-cluster.componentLabels" (list . "loki-stack") | nindent 4 }} {{ .Values.addons.watchLabel }}: "" stringData: values: | {{- toYaml .Values.addons.monitoring.lokiStack.release.values | nindent 4 }} --- apiVersion: addons.stackhpc.com/v1alpha1 kind: HelmRelease metadata: name: {{ include "openstack-cluster.componentName" (list . "loki-stack") }} labels: {{ include "openstack-cluster.componentLabels" (list . "loki-stack") | nindent 4 }} spec: clusterName: {{ include "openstack-cluster.clusterName" . }} bootstrap: true chart: {{ toYaml .Values.addons.monitoring.lokiStack.chart | nindent 4 }} targetNamespace: {{ .Values.addons.monitoring.lokiStack.release.namespace }} releaseName: loki-stack valuesSources: - secret: name: {{ include "openstack-cluster.componentName" (list . "loki-stack") }}-config key: values --- {{- include "openstack-cluster.hookJob" (list . "pre-upgrade" "loki-stack-migrate" "openstack-cluster.loki-stack.hookScript" ) }} --- apiVersion: addons.stackhpc.com/v1alpha1 kind: Manifests metadata: name: {{ include "openstack-cluster.componentName" (list . "loki-stack") }}-dashboards labels: {{ include "openstack-cluster.componentLabels" (list . "loki-stack") | nindent 4 }} spec: clusterName: {{ include "openstack-cluster.clusterName" . }} bootstrap: true targetNamespace: {{ .Values.addons.monitoring.kubePrometheusStack.release.namespace }} releaseName: loki-stack-dashboards manifestSources: - template: | apiVersion: v1 kind: ConfigMap metadata: name: loki-stack-grafana-datasource labels: grafana_datasource: "1" data: loki-datasource.yaml: |- apiVersion: 1 datasources: - name: Loki type: loki url: http://loki-stack.{{ .Values.addons.monitoring.lokiStack.release.namespace }}:3100 access: proxy version: 1 - template: | apiVersion: v1 kind: ConfigMap metadata: name: loki-stack-grafana-dashboard labels: grafana_dashboard: "1" data: loki-dashboard.json: | {{- .Files.Get "grafana-dashboards/loki-dashboard.json" | nindent 12 }} {{- end }}