diff --git a/CHANGELOG.md b/CHANGELOG.md index 40efdf5..d1c6b71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,22 @@ Versions are prefixed with `tum-gis-iot-stack-k8s-` due to usage of [chart-releaser-action](https://github.com/helm/chart-releaser-action). For releases `< 1.0.0` minor version step indicate breaking changes. +## [tum-gis-iot-stack-k8s-0.10.2] - 2023-08-17 + +## Changed + +- Bump Grafana `10.0.2` --> `10.0.3` + +### Fixed + + +- Fixed SMTP settings change did not trigger pod recreation +- Fixed SMTP settings secret +- Fixed settings config map error when `grafana.featureToggles.enable` set +- Fixed wrong labels set on Grafana Ingress +- Fixed Grafana >= v10 redirect loop when serving Grafana from subpath +- Update Grafana plugins + ## [tum-gis-iot-stack-k8s-0.10.1] - 2023-07-19 ### Changed @@ -136,6 +152,24 @@ For releases `< 1.0.0` minor version step indicate breaking changes. - Versions before this release are development snapshots +## [Unreleased] - YYYY-MM-DD + +### Breaking changes + +### Added + +### Changed + +### Removed + +### Fixed + +### Security + +### Deprecated + +### Known issues + ## [template] - YYYY-MM-DD ### Breaking changes @@ -154,7 +188,8 @@ For releases `< 1.0.0` minor version step indicate breaking changes. ### Known issues -[Unreleased]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.10.1...HEAD +[Unreleased]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.10.2...HEAD +[tum-gis-iot-stack-k8s-0.10.2]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.10.1...tum-gis-iot-stack-k8s-0.10.2 [tum-gis-iot-stack-k8s-0.10.1]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.10.0...tum-gis-iot-stack-k8s-0.10.1 [tum-gis-iot-stack-k8s-0.10.0]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.9.10...tum-gis-iot-stack-k8s-0.10.0 [tum-gis-iot-stack-k8s-0.9.10]: https://github.com/tum-gis/tum-gis-iot-stack-k8s/compare/tum-gis-iot-stack-k8s-0.9.9...tum-gis-iot-stack-k8s-0.9.10 diff --git a/charts/tum-gis-iot-stack-k8s/Chart.yaml b/charts/tum-gis-iot-stack-k8s/Chart.yaml index 1fcde08..6fed1e6 100644 --- a/charts/tum-gis-iot-stack-k8s/Chart.yaml +++ b/charts/tum-gis-iot-stack-k8s/Chart.yaml @@ -16,7 +16,7 @@ maintainers: name: Bruno Willenborg url: https://www.asg.ed.tum.de/en/gis/our-team/staff/bruno-willenborg/ -version: 0.10.1 +version: 0.10.2 appVersion: "2.1.4" dependencies: diff --git a/charts/tum-gis-iot-stack-k8s/README.md b/charts/tum-gis-iot-stack-k8s/README.md index 9fd3ab2..045d85e 100644 --- a/charts/tum-gis-iot-stack-k8s/README.md +++ b/charts/tum-gis-iot-stack-k8s/README.md @@ -1,6 +1,6 @@ # tum-gis-iot-stack-k8s -![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.4](https://img.shields.io/badge/AppVersion-2.1.4-informational?style=flat-square) +![Version: 0.10.2](https://img.shields.io/badge/Version-0.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.4](https://img.shields.io/badge/AppVersion-2.1.4-informational?style=flat-square) Helm Chart for the TUM-GI IoT stack. See [CKANGELOG](https://github.com/tum-gis/tum-gis-iot-stack-k8s/blob/main/CHANGELOG.md) for changes. diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/Chart.yaml b/charts/tum-gis-iot-stack-k8s/charts/grafana/Chart.yaml index a10332f..3273047 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/Chart.yaml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/Chart.yaml @@ -8,8 +8,8 @@ sources: - https://github.com/tum-gis/tum-gis-iot-stack-k8s/tree/main/helm/charts/charts/grafana - https://github.com/grafana/grafana -version: 0.7.0 -appVersion: "10.0.2" +version: 0.7.1 +appVersion: "10.0.3" maintainers: - email: b.willenborg@tum.de diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/README.md b/charts/tum-gis-iot-stack-k8s/charts/grafana/README.md index 09e93ae..1cd66c3 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/README.md +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/README.md @@ -1,6 +1,6 @@ # grafana -![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.0.2](https://img.shields.io/badge/AppVersion-10.0.2-informational?style=flat-square) +![Version: 0.7.1](https://img.shields.io/badge/Version-0.7.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.0.3](https://img.shields.io/badge/AppVersion-10.0.3-informational?style=flat-square) Bash chart for Grafana. @@ -54,10 +54,10 @@ Bash chart for Grafana. | ingress.certManager.issuerName | string | `"letsencrypt-staging"` | Name of the Issuer to use. For certManager.type = namespace `letsencrypt-staging`, `letsencrypt-prod` and `self-signed` are available. | | ingress.certManager.issuerType | string | `"namespace"` | Type of [cert-manager](https://cert-manager.io/docs/) Issuer: Use either "namespace" or "cluster". | | ingress.className | string | `"nginx"` | Name of the [IngressClass](https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class) to use in Ingress routes. | -| ingress.domains | list | `[]` | List of [FQDNs](https://de.wikipedia.org/wiki/Fully-Qualified_Host_Name) for this Ingress. Note: All FQDNs will be used for Ingress hosts and TLS certificate. The global setting overwrites this setting. Note: The first domain in the list will be used as FROST-Server serviceRootURL and MQTT host. | +| ingress.domains | list | `[]` | List of [FQDNs](https://de.wikipedia.org/wiki/Fully-Qualified_Host_Name) for this Ingress. Note: All FQDNs will be used for Ingress hosts and TLS certificate. The global setting overwrites this setting. Note: The first domain in the list will be used as Grafana service root url. | | ingress.enabled | bool | `true` | Enable/disable ingress | | ingress.subpath | string | `"grafana"` | Make Grafana available at a subpath. By default Grafana will be available from [DOMAIN]/ Don't append or prepend :// or / | -| install.plugins | string | `"grafana-clock-panel,grafana-simple-json-datasource, grafana-worldmap-panel,marcusolsson-json-datasource, snuids-trafficlights-panel,citilogics-geoloop-panel, iosb-sensorthings-datasource,yesoreyeram-boomtheme-panel, snuids-svg-panel, https://github.com/briangann/grafana-gauge-panel/releases/download/v0.0.9/briangann-gauge-panel-0.0.9.zip;briangann-gauge-panel"` | Grafana plugins to install | +| install.plugins | string | `"grafana-clock-panel,grafana-simple-json-datasource, marcusolsson-json-datasource,snuids-svg-panel, snuids-trafficlights-panel,citilogics-geoloop-panel,marcusolsson-hourly-heatmap-panel, iosb-sensorthings-datasource,yesoreyeram-boomtheme-panel,fatcloud-windrose-panel, https://github.com/briangann/grafana-gauge-panel/releases/download/v0.0.9/briangann-gauge-panel-0.0.9.zip;briangann-gauge-panel"` | Grafana plugins to install | | livenessProbe.enabled | bool | `true` | Enable/disable liveness probe [Liveness probe](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) See the [API reference](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Probe) for details. Use `livenessProbe.probe: {}` to configure [livenessProbe probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) | | livenessProbe.failureThreshold | int | `5` | | | livenessProbe.initialDelaySeconds | int | `10` | | diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-configMap.yml b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-configMap.yml index 4a4cec3..369552c 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-configMap.yml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-configMap.yml @@ -10,10 +10,12 @@ metadata: app.kubernetes.io/component: {{ .Values.component }} data: GF_INSTALL_PLUGINS: {{ .Values.install.plugins | squote }} - GF_SERVER_ROOT_URL: {{ include "grafana.http.serviceRootUrl" . | quote }} {{- if .Values.ingress.subpath }} + GF_SERVER_ROOT_URL: {{ include "grafana.http.serviceRootUrl" . | quote }} GF_SERVER_SERVE_FROM_SUB_PATH: "true" - {{ end -}} + {{- else }} + GF_SERVER_DOMAIN: {{ (first .Values.global.ingress.domains) | default (first .Values.ingress.domains) }} + {{- end }} GF_SERVER_ENABLE_GZIP: {{ .Values.http.enableGzip | quote }} GF_DATE_FORMATS_FULL_DATE: {{ .Values.dateFormats.fullDate | quote }} GF_DATE_FORMATS_INTERVAL_MONTH: {{ .Values.dateFormats.interval.month | quote }} @@ -21,12 +23,12 @@ data: GF_DATE_FORMATS_INTERVAL_HOUR: {{ .Values.dateFormats.interval.hour | quote }} GF_DATE_FORMATS_INTERVAL_MINUTE: {{ .Values.dateFormats.interval.minute | quote }} GF_SECURITY_ALLOW_EMBEDDING: {{ .Values.security.allowEmbedding | quote }} - {{ if .Values.database.enabled -}} + {{- if .Values.database.enabled }} GF_DATABASE_TYPE: {{ .Values.database.type | quote }} GF_DATABASE_HOST: "{{ .Values.database.host }}:{{ .Values.database.port }}" GF_DATABASE_NAME: {{ .Values.database.dbname | quote }} GF_DATABASE_SSL_MODE: {{ .Values.database.sslmode | quote }} - {{- end -}} + {{- end }} GF_FEATURE_TOGGLES_ENABLE: {{ .Values.featureToggles.enable | quote }} {{- with .Values.extraEnv }} {{- toYaml . | nindent 2 }} diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-depl.yml b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-depl.yml index 2040510..d541683 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-depl.yml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-depl.yml @@ -24,6 +24,7 @@ spec: {{- end }} checksum/configmap: {{ include (print $.Template.BasePath "/grafana-configMap.yml") . | sha256sum }} checksum/secret: {{ include (print $.Template.BasePath "/grafana-secret.yml") . | sha256sum }} + checksum/secret-smtp: {{ include (print $.Template.BasePath "/grafana-secret-smtp.yml") . | sha256sum }} labels: {{- include "grafana.selectorLabels" . | nindent 8 }} app.kubernetes.io/component: {{ .Values.component }} diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-ingress.yml b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-ingress.yml index 00cafd8..d69c083 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-ingress.yml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-ingress.yml @@ -13,7 +13,7 @@ metadata: name: {{ include "grafana.fullname" . }} namespace: {{ .Release.Namespace | quote }} labels: - {{- include "frostweb.labels" . | nindent 4 }} + {{- include "grafana.labels" . | nindent 4 }} app.kubernetes.io/part-of: tum-gis-iot-stack-k8s app.kubernetes.io/component: {{ .Values.component }} annotations: @@ -25,11 +25,6 @@ metadata: (eq (coalesce .Values.global.ingress.certManager.issuerType .Values.ingress.certManager.issuerType) "namespace")) }} cert-manager.io/issuer: {{ .Values.global.ingress.certManager.issuerName | default .Values.ingress.certManager.issuerName | quote }} {{- end }} - {{ if $subpath -}} - nginx.ingress.kubernetes.io/rewrite-target: "/$2" - {{- else -}} - nginx.ingress.kubernetes.io/rewrite-target: "/$1" - {{- end }} {{- with .Values.ingress.annotations }} {{- toYaml . | nindent 4 }} {{- end }} diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret-smtp.yml b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret-smtp.yml index 29aed78..147ed2e 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret-smtp.yml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret-smtp.yml @@ -11,18 +11,11 @@ metadata: app.kubernetes.io/component: {{ .Values.component }} type: Opaque data: - GF_SECURITY_ADMIN_USER: {{ .Values.security.adminUsername | b64enc }} - GF_SECURITY_ADMIN_PASSWORD: {{ .Values.security.adminPassword | b64enc }} - {{ if .Values.database.enabled -}} - GF_DATABASE_USER: {{ .Values.database.auth.username | b64enc }} - GF_DATABASE_PASSWORD: {{ .Values.database.auth.password | b64enc }} - GF_SMTP_ENABLED: {{ .Values.smtp.enabled | b64enc }} GF_SMTP_HOST: {{ .Values.smtp.host | b64enc }} GF_SMTP_USER: {{ .Values.smtp.user | b64enc }} GF_SMTP_PASSWORD: {{ .Values.smtp.password | b64enc }} GF_SMTP_FROM_ADDRESS: {{ .Values.smtp.mailFrom | b64enc }} GF_SMTP_FROM_NAME: {{ .Values.smtp.nameFrom | b64enc }} - {{- end }} {{- end -}} {{- end -}} diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret.yml b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret.yml index c98751d..dbf8caa 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret.yml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/templates/grafana-secret.yml @@ -12,7 +12,7 @@ type: Opaque data: GF_SECURITY_ADMIN_USER: {{ .Values.security.adminUsername | b64enc }} GF_SECURITY_ADMIN_PASSWORD: {{ .Values.security.adminPassword | b64enc }} - {{ if .Values.database.enabled -}} + {{- if .Values.database.enabled }} GF_DATABASE_USER: {{ .Values.database.auth.username | b64enc }} GF_DATABASE_PASSWORD: {{ .Values.database.auth.password | b64enc }} {{- end }} diff --git a/charts/tum-gis-iot-stack-k8s/charts/grafana/values.yaml b/charts/tum-gis-iot-stack-k8s/charts/grafana/values.yaml index e3b7780..ec51e13 100644 --- a/charts/tum-gis-iot-stack-k8s/charts/grafana/values.yaml +++ b/charts/tum-gis-iot-stack-k8s/charts/grafana/values.yaml @@ -70,7 +70,7 @@ ingress: # -- List of [FQDNs](https://de.wikipedia.org/wiki/Fully-Qualified_Host_Name) for this Ingress. # Note: All FQDNs will be used for Ingress hosts and TLS certificate. # The global setting overwrites this setting. Note: The first domain in the list will be used - # as FROST-Server serviceRootURL and MQTT host. + # as Grafana service root url. domains: [] # -- Additional Ingress annotations annotations: @@ -89,10 +89,9 @@ ingress: install: # -- Grafana plugins to install plugins: "grafana-clock-panel,grafana-simple-json-datasource, - grafana-worldmap-panel,marcusolsson-json-datasource, - snuids-trafficlights-panel,citilogics-geoloop-panel, - iosb-sensorthings-datasource,yesoreyeram-boomtheme-panel, - snuids-svg-panel, + marcusolsson-json-datasource,snuids-svg-panel, + snuids-trafficlights-panel,citilogics-geoloop-panel,marcusolsson-hourly-heatmap-panel, + iosb-sensorthings-datasource,yesoreyeram-boomtheme-panel,fatcloud-windrose-panel, https://github.com/briangann/grafana-gauge-panel/releases/download/v0.0.9/briangann-gauge-panel-0.0.9.zip;briangann-gauge-panel" http: