2022-10-12 16:30:17 +01:00

120 lines
3.6 KiB
YAML

{{- define "openstack-cluster.loki-stack.hookScript" -}}
# With the version bump from 2.6.3 to 2.6.4, loki-stack picks up an updated promtail that
# changes the selector labels on the daemonset, which is an immutable field
# So we remove the daemonset with the old labels before upgrading
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
}}
{{-
$addon := lookup
"addons.stackhpc.com/v1alpha1"
"HelmRelease"
.Release.Namespace
(include "openstack-cluster.componentName" (list . "loki-stack"))
}}
{{-
$previousVersion := dig
"spec"
"chart"
"version"
.Values.addons.monitoring.lokiStack.chart.version
$addon
}}
{{-
if and
.Release.IsUpgrade
(or
(include "openstack-cluster.addons.isMigration" .)
(and
(semverCompare ">=2.6.4" .Values.addons.monitoring.lokiStack.chart.version)
(semverCompare "<2.6.4" $previousVersion)
)
)
}}
---
{{-
include
"openstack-cluster.addons.hookJob"
(list
.
"pre-upgrade"
"loki-stack-migrate"
"openstack-cluster.loki-stack.hookScript"
)
}}
{{- end }}
---
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
---
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 }}