From 24f8eb5a388e6f61ee696595f1b47fd9aec9b16d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=E1=B4=87=CA=80=C9=B4=E1=B4=85=20S=E1=B4=84=CA=9C?= =?UTF-8?q?=E1=B4=8F=CA=80=C9=A2=E1=B4=87=CA=80s?= Date: Tue, 31 Jan 2023 21:23:19 +0100 Subject: [PATCH] feat(common): Release version 1.3.0 (#112) * fix(ports): Only render ports when there are ports * fix(probes): Only render probes when there are probes * feat(sidecars): Rename additionalContainers to sidecars * chore(serviceMonitor): Add labels unittest --- charts/library/common/Chart.yaml | 12 +- charts/library/common/README.md | 9 +- .../templates/addons/code-server/_addon.tpl | 4 +- .../templates/addons/netshoot/_addon.tpl | 4 +- .../templates/addons/vpn/gluetun/_addon.tpl | 4 +- .../templates/lib/container/_probes.tpl | 104 +++++++++++------- .../lib/controller/_mainContainer.tpl | 4 +- .../common/templates/lib/controller/_pod.tpl | 8 +- .../library/common/templates/values/_init.tpl | 1 + charts/library/common/values.yaml | 4 +- charts/other/app-template/Chart.yaml | 6 +- .../tests/configmap/metadata_test.yaml | 6 +- .../controller/metadata_cronjob_test.yaml | 6 +- .../controller/metadata_daemonset_test.yaml | 6 +- .../controller/metadata_deployment_test.yaml | 6 +- .../controller/metadata_statefulset_test.yaml | 6 +- .../tests/ingress/metadata_test.yaml | 6 +- ...ontainers_test.yaml => sidecars_test.yaml} | 31 +++++- .../app-template/tests/pvc/metadata_test.yaml | 8 +- .../tests/route/metadata_test.yaml | 6 +- .../tests/secret/metadata_test.yaml | 6 +- .../tests/service/metadata_test.yaml | 6 +- .../serviceMonitor/servicemonitor_test.yaml | 11 ++ 23 files changed, 158 insertions(+), 106 deletions(-) rename charts/other/app-template/tests/pod/{additionalcontainers_test.yaml => sidecars_test.yaml} (79%) diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index a202aa64..fc145efb 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -3,7 +3,7 @@ apiVersion: v2 name: common description: Function library for Helm charts type: library -version: 1.2.1 +version: 1.3.0 kubeVersion: ">=1.22.0-0" keywords: - common @@ -15,13 +15,9 @@ maintainers: annotations: artifacthub.io/changes: |- - kind: fixed - description: Fixed indentation in cronjob component to allow podAnnotations - - kind: fixed - description: Cleaned leftover `secret` behavior under `envFrom`. + description: Don't render ports/probes when not required links: - name: GitHub Issue - url: https://github.com/bjw-s/helm-charts/issues/94 + url: https://github.com/bjw-s/helm-charts/issues/111 - kind: changed - description: Updated code-server image tag to 4.9.1 - - kind: added - description: Allow setting `ttlSecondsAfterFinished` for CronJobs + description: Renamed `additionalContainers` to `sidecars`. The former will however still continue to work for the time being. diff --git a/charts/library/common/README.md b/charts/library/common/README.md index b08366be..03130902 100644 --- a/charts/library/common/README.md +++ b/charts/library/common/README.md @@ -1,6 +1,6 @@ # common -![Version: 1.2.1](https://img.shields.io/badge/Version-1.2.1-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) +![Version: 1.3.0](https://img.shields.io/badge/Version-1.3.0-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) Function library for Helm charts @@ -29,7 +29,7 @@ Include this chart as a dependency in your `Chart.yaml` e.g. # Chart.yaml dependencies: - name: common - version: 1.2.1 + version: 1.3.0 repository: https://bjw-s.github.io/helm-charts/ ``` @@ -49,7 +49,6 @@ N/A | Key | Type | Default | Description | |-----|------|---------|-------------| -| additionalContainers | object | `{}` | Specify any additional containers here as dictionary items. Each additional container should have its own key. Helm templates can be used. | | addons | object | See below | The common chart supports several add-ons. These can be configured under this key. | | addons.codeserver | object | See values.yaml | The common library supports adding a code-server add-on to access files. It can be configured under this key. For more info, check out [our docs](https://bjw-s.github.io/helm-charts/docs/common-library/common-library-add-ons/##code-server) | | addons.codeserver.args | list | `["--auth","none"]` | Set codeserver command line arguments. Consider setting --user-data-dir to a persistent location to preserve code-server setting changes | @@ -61,7 +60,7 @@ N/A | addons.codeserver.git.deployKeySecret | string | `""` | Existing secret containing SSH private key The chart expects it to be present under the `id_rsa` key. | | addons.codeserver.image.pullPolicy | string | `"IfNotPresent"` | Specify the code-server image pull policy | | addons.codeserver.image.repository | string | `"ghcr.io/coder/code-server"` | Specify the code-server image | -| addons.codeserver.image.tag | string | `"4.8.3"` | Specify the code-server image tag | +| addons.codeserver.image.tag | string | `"4.9.1"` | Specify the code-server image tag | | addons.codeserver.ingress.enabled | bool | `false` | Enable an ingress for the code-server add-on. | | addons.codeserver.ingress.ingressClassName | string | `nil` | Set the ingressClass that is used for this ingress. | | addons.codeserver.service.enabled | bool | `true` | Enable a service for the code-server add-on. | @@ -108,6 +107,7 @@ N/A | controller.cronjob.schedule | string | `"*/20 * * * *"` | Sets the CronJob time when to execute your jobs | | controller.cronjob.startingDeadlineSeconds | int | `30` | The deadline in seconds for starting the job if it misses its scheduled time for any reason | | controller.cronjob.successfulJobsHistory | int | `1` | The number of succesful Jobs to keep | +| controller.cronjob.ttlSecondsAfterFinished | string | `nil` | If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. | | controller.enabled | bool | `true` | enable the controller. | | controller.labels | object | `{}` | Set labels on the deployment/statefulset/daemonset/cronjob | | controller.podManagementPolicy | string | `nil` | Set statefulset podManagementPolicy, valid values are Parallel and OrderedReady (default). | @@ -234,6 +234,7 @@ N/A | serviceMonitor.main.nameOverride | string | `nil` | Override the name suffix that is used for this serviceMonitor. | | serviceMonitor.main.selector | object | `{}` | Configures a custom selector for the serviceMonitor, this takes precedence over specifying a service name. Helm templates can be used. | | serviceMonitor.main.serviceName | string | `"{{ include \"bjw-s.common.lib.chart.names.fullname\" $ }}"` | Configures the target Service for the serviceMonitor. Helm templates can be used. | +| sidecars | object | `{}` | Specify any sidecar containers here as dictionary items. Each sidecar container should have its own key. Helm templates can be used. | | termination.gracePeriodSeconds | string | `nil` | [[ref](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#lifecycle)] | | termination.messagePath | string | `nil` | [[ref](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#lifecycle-1)] | | termination.messagePolicy | string | `nil` | [[ref](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#lifecycle-1)] | diff --git a/charts/library/common/templates/addons/code-server/_addon.tpl b/charts/library/common/templates/addons/code-server/_addon.tpl index 3ea25ed1..6a4e5ab9 100644 --- a/charts/library/common/templates/addons/code-server/_addon.tpl +++ b/charts/library/common/templates/addons/code-server/_addon.tpl @@ -4,10 +4,10 @@ It will include / inject the required templates based on the given values. */}} {{- define "bjw-s.common.addon.codeserver" -}} {{- if .Values.addons.codeserver.enabled -}} - {{/* Append the code-server container to the additionalContainers */}} + {{/* Append the code-server container to the sidecars */}} {{- $container := include "bjw-s.common.addon.codeserver.container" . | fromYaml -}} {{- if $container -}} - {{- $_ := set .Values.additionalContainers "addon-codeserver" $container -}} + {{- $_ := set .Values.sidecars "addon-codeserver" $container -}} {{- end -}} {{/* Include the deployKeySecret if not empty */}} diff --git a/charts/library/common/templates/addons/netshoot/_addon.tpl b/charts/library/common/templates/addons/netshoot/_addon.tpl index 25a88880..599f6d8d 100644 --- a/charts/library/common/templates/addons/netshoot/_addon.tpl +++ b/charts/library/common/templates/addons/netshoot/_addon.tpl @@ -4,10 +4,10 @@ It will include / inject the required templates based on the given values. */}} {{- define "bjw-s.common.addon.netshoot" -}} {{- if .Values.addons.netshoot.enabled -}} - {{/* Append the netshoot container to the additionalContainers */}} + {{/* Append the netshoot container to the sidecars */}} {{- $container := include "bjw-s.common.addon.netshoot.container" . | fromYaml -}} {{- if $container -}} - {{- $_ := set .Values.additionalContainers "addon-netshoot" $container -}} + {{- $_ := set .Values.sidecars "addon-netshoot" $container -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/charts/library/common/templates/addons/vpn/gluetun/_addon.tpl b/charts/library/common/templates/addons/vpn/gluetun/_addon.tpl index 940263ad..0c344dc1 100644 --- a/charts/library/common/templates/addons/vpn/gluetun/_addon.tpl +++ b/charts/library/common/templates/addons/vpn/gluetun/_addon.tpl @@ -3,9 +3,9 @@ Template to render gluetun addon. It will add the container to the list of addit */}} */}} {{- define "bjw-s.common.addon.gluetun" -}} - {{/* Append the gluetun container to the additionalContainers */}} + {{/* Append the gluetun container to the sidecars */}} {{- $container := fromYaml (include "bjw-s.common.addon.gluetun.container" .) -}} {{- if $container -}} - {{- $_ := set .Values.additionalContainers "addon-gluetun" $container -}} + {{- $_ := set .Values.sidecars "addon-gluetun" $container -}} {{- end -}} {{- end -}} diff --git a/charts/library/common/templates/lib/container/_probes.tpl b/charts/library/common/templates/lib/container/_probes.tpl index 20742437..60a8e6d1 100644 --- a/charts/library/common/templates/lib/container/_probes.tpl +++ b/charts/library/common/templates/lib/container/_probes.tpl @@ -2,46 +2,66 @@ Probes selection logic. */}} {{- define "bjw-s.common.lib.container.probes" -}} -{{- $primaryService := get .Values.service (include "bjw-s.common.lib.service.primary" .) -}} -{{- $primaryPort := "" -}} -{{- if $primaryService -}} - {{- $primaryPort = get $primaryService.ports (include "bjw-s.common.lib.service.primaryPort" (dict "serviceName" (include "bjw-s.common.lib.service.primary" .) "values" $primaryService)) -}} -{{- end -}} + {{- $primaryService := get .Values.service (include "bjw-s.common.lib.service.primary" .) -}} + {{- $primaryPort := "" -}} + {{- if $primaryService -}} + {{- $primaryPort = get $primaryService.ports (include "bjw-s.common.lib.service.primaryPort" (dict "serviceName" (include "bjw-s.common.lib.service.primary" .) "values" $primaryService)) -}} + {{- end -}} -{{- range $probeName, $probe := .Values.probes }} - {{- if $probe.enabled -}} - {{- "" | nindent 0 }} - {{- $probeName }}Probe: - {{- if $probe.custom -}} - {{- $probe.spec | toYaml | nindent 2 }} - {{- else }} - {{- if and $primaryService $primaryPort -}} - {{- $probeType := "" -}} - {{- if eq $probe.type "AUTO" -}} - {{- $probeType = $primaryPort.protocol -}} - {{- else -}} - {{- $probeType = $probe.type | default "TCP" -}} - {{- end }} - {{- if or ( eq $probeType "HTTPS" ) ( eq $probeType "HTTP" ) }} - httpGet: - path: {{ $probe.path }} - scheme: {{ $probeType }} - {{- else }} - tcpSocket: - {{- end }} - {{- if $probe.port }} - port: {{ ( tpl ( $probe.port | toString ) $ ) }} - {{- else if $primaryPort.targetPort }} - port: {{ $primaryPort.targetPort }} - {{- else }} - port: {{ $primaryPort.port }} - {{- end }} - initialDelaySeconds: {{ $probe.spec.initialDelaySeconds }} - failureThreshold: {{ $probe.spec.failureThreshold }} - timeoutSeconds: {{ $probe.spec.timeoutSeconds }} - periodSeconds: {{ $probe.spec.periodSeconds }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} -{{- end }} + {{- range $probeName, $probe := .Values.probes -}} + {{- if $probe.enabled -}} + {{- $probeOutput := "" -}} + {{- if $probe.custom -}} + {{- if $probe.spec -}} + {{- $probeOutput = $probe.spec | toYaml -}} + {{- end -}} + {{- else -}} + {{- if $primaryPort -}} + {{- $probeType := "" -}} + {{- if eq $probe.type "AUTO" -}} + {{- $probeType = $primaryPort.protocol -}} + {{- else -}} + {{- $probeType = $probe.type | default "TCP" -}} + {{- end -}} + + {{- $probeDefinition := dict + "initialDelaySeconds" $probe.spec.initialDelaySeconds + "failureThreshold" $probe.spec.failureThreshold + "timeoutSeconds" $probe.spec.timeoutSeconds + "periodSeconds" $probe.spec.periodSeconds + -}} + + {{- $probeHeader := "" -}} + {{- if or ( eq $probeType "HTTPS" ) ( eq $probeType "HTTP" ) -}} + {{- $probeHeader = "httpGet" -}} + + {{- $_ := set $probeDefinition $probeHeader ( + dict + "path" $probe.path + "scheme" $probeType + ) + -}} + {{- else }} + {{- $probeHeader = "tcpSocket" -}} + {{- $_ := set $probeDefinition $probeHeader dict -}} + {{- end -}} + + {{- if $probe.port }} + {{- $_ := set (index $probeDefinition $probeHeader) "port" (tpl ( $probe.port | toString ) $) -}} + {{- else if $primaryPort.targetPort }} + {{- $_ := set (index $probeDefinition $probeHeader) "port" $primaryPort.targetPort -}} + {{- else }} + {{- $_ := set (index $probeDefinition $probeHeader) "port" $primaryPort.port -}} + {{- end }} + + {{- $probeOutput = $probeDefinition | toYaml | trim -}} + {{- end -}} + {{- end -}} + + {{- if $probeOutput -}} + {{- printf "%sProbe:" $probeName | nindent 0 -}} + {{- $probeOutput | nindent 2 -}} + {{- end -}} + {{- end -}} + {{- end -}} +{{- end -}} diff --git a/charts/library/common/templates/lib/controller/_mainContainer.tpl b/charts/library/common/templates/lib/controller/_mainContainer.tpl index 81aa3c44..37f48d4a 100644 --- a/charts/library/common/templates/lib/controller/_mainContainer.tpl +++ b/charts/library/common/templates/lib/controller/_mainContainer.tpl @@ -42,8 +42,10 @@ envFrom: {{- toYaml . | nindent 4 }} {{- end }} + {{- with (include "bjw-s.common.lib.container.ports" . | trim) }} ports: - {{- include "bjw-s.common.lib.container.ports" . | trim | nindent 4 }} + {{- nindent 4 . }} + {{- end }} {{- with (include "bjw-s.common.lib.container.volumeMounts" . | trim) }} volumeMounts: {{- nindent 4 . }} diff --git a/charts/library/common/templates/lib/controller/_pod.tpl b/charts/library/common/templates/lib/controller/_pod.tpl index 060ab48b..93a227a0 100644 --- a/charts/library/common/templates/lib/controller/_pod.tpl +++ b/charts/library/common/templates/lib/controller/_pod.tpl @@ -62,8 +62,8 @@ initContainers: {{- end }} containers: {{- include "bjw-s.common.lib.controller.mainContainer" . | nindent 2 }} - {{- with .Values.additionalContainers }} - {{- $additionalContainers := list }} + {{- with (merge .Values.sidecars .Values.additionalContainers) }} + {{- $sidecarContainers := list }} {{- range $name, $container := . }} {{- if not $container.name -}} {{- $_ := set $container "name" $name }} @@ -74,9 +74,9 @@ containers: {{- $_ := set $container "env" $newEnv.env }} {{- $_ := unset $.ObjectValues "envVars" -}} {{- end }} - {{- $additionalContainers = append $additionalContainers $container }} + {{- $sidecarContainers = append $sidecarContainers $container }} {{- end }} - {{- tpl (toYaml $additionalContainers) $ | nindent 2 }} + {{- tpl (toYaml $sidecarContainers) $ | nindent 2 }} {{- end }} {{- with (include "bjw-s.common.lib.controller.volumes" . | trim) }} volumes: diff --git a/charts/library/common/templates/values/_init.tpl b/charts/library/common/templates/values/_init.tpl index e9a7af8f..c9caa665 100644 --- a/charts/library/common/templates/values/_init.tpl +++ b/charts/library/common/templates/values/_init.tpl @@ -5,6 +5,7 @@ Merge the local chart values and the common chart defaults {{- if .Values.common -}} {{- $defaultValues := deepCopy .Values.common -}} {{- $userValues := deepCopy (omit .Values "common") -}} + {{- $_ := set $defaultValues "additionalContainers" dict -}} {{- $mergedValues := mustMergeOverwrite $defaultValues $userValues -}} {{- $_ := set . "Values" (deepCopy $mergedValues) -}} {{- end -}} diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index f04710f6..fe30a1f4 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -192,9 +192,9 @@ lifecycle: {} # The dictionary item key will determine the order. Helm templates can be used. initContainers: {} -# -- Specify any additional containers here as dictionary items. Each additional container should have its own key. +# -- Specify any sidecar containers here as dictionary items. Each sidecar container should have its own key. # Helm templates can be used. -additionalContainers: {} +sidecars: {} # -- Probe configuration # -- [[ref]](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) diff --git a/charts/other/app-template/Chart.yaml b/charts/other/app-template/Chart.yaml index 3d76a3e0..adcbb4f6 100644 --- a/charts/other/app-template/Chart.yaml +++ b/charts/other/app-template/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 description: A common powered chart template. This can be useful for small projects that don't have their own chart. name: app-template -version: 1.2.1 +version: 1.3.0 kubeVersion: ">=1.22.0-0" maintainers: - name: bjw-s @@ -10,12 +10,12 @@ maintainers: dependencies: - name: common repository: https://bjw-s.github.io/helm-charts - version: 1.2.1 + version: 1.3.0 annotations: artifacthub.io/changes: |- - kind: changed description: | - Updated library version to 1.2.1. + Updated library version to 1.3.0. links: - name: Common library chart definition url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml diff --git a/charts/other/app-template/tests/configmap/metadata_test.yaml b/charts/other/app-template/tests/configmap/metadata_test.yaml index 2f5f0c90..1ca09278 100644 --- a/charts/other/app-template/tests/configmap/metadata_test.yaml +++ b/charts/other/app-template/tests/configmap/metadata_test.yaml @@ -23,7 +23,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -52,7 +52,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -89,5 +89,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_cronjob_test.yaml b/charts/other/app-template/tests/controller/metadata_cronjob_test.yaml index 085bdc5b..023e58d9 100644 --- a/charts/other/app-template/tests/controller/metadata_cronjob_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_cronjob_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml b/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml index ab107a7f..eace4945 100644 --- a/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_deployment_test.yaml b/charts/other/app-template/tests/controller/metadata_deployment_test.yaml index 9b7678d6..46849525 100644 --- a/charts/other/app-template/tests/controller/metadata_deployment_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_deployment_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml b/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml index fdfd6a36..5de6857c 100644 --- a/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/ingress/metadata_test.yaml b/charts/other/app-template/tests/ingress/metadata_test.yaml index fbf5eb8d..cf6c2a04 100644 --- a/charts/other/app-template/tests/ingress/metadata_test.yaml +++ b/charts/other/app-template/tests/ingress/metadata_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/pod/additionalcontainers_test.yaml b/charts/other/app-template/tests/pod/sidecars_test.yaml similarity index 79% rename from charts/other/app-template/tests/pod/additionalcontainers_test.yaml rename to charts/other/app-template/tests/pod/sidecars_test.yaml index 8785832e..d831c488 100644 --- a/charts/other/app-template/tests/pod/additionalcontainers_test.yaml +++ b/charts/other/app-template/tests/pod/sidecars_test.yaml @@ -1,10 +1,10 @@ -suite: pod additional containers +suite: pod sidecar containers templates: - common.yaml tests: - it: with explicit name should pass set: - additionalContainers: + sidecars: additional1: name: template-test asserts: @@ -18,7 +18,7 @@ tests: - it: with implicit name should pass set: - additionalContainers: + sidecars: additional1: image: template-test asserts: @@ -32,7 +32,7 @@ tests: - it: with templated name should pass set: - additionalContainers: + sidecars: additional1: name: "{{ .Release.Name }}-container" asserts: @@ -48,7 +48,7 @@ tests: set: env: main_env: value - additionalContainers: + sidecars: additional1: env: int: 1 @@ -89,3 +89,24 @@ tests: value: name: template value: RELEASE-NAME-admin + + - it: with legacy additionalContainers should pass + set: + sidecars: + additional1: + name: sidecar + additionalContainers: + additional2: + name: legacy-sidecar + asserts: + - documentIndex: 0 + isKind: + of: Deployment + - documentIndex: 0 + equal: + path: spec.template.spec.containers[1].name + value: sidecar + - documentIndex: 0 + equal: + path: spec.template.spec.containers[2].name + value: legacy-sidecar diff --git a/charts/other/app-template/tests/pvc/metadata_test.yaml b/charts/other/app-template/tests/pvc/metadata_test.yaml index 2a15abfa..1bf1a365 100644 --- a/charts/other/app-template/tests/pvc/metadata_test.yaml +++ b/charts/other/app-template/tests/pvc/metadata_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: retain enabled should pass set: @@ -42,7 +42,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -68,7 +68,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -102,5 +102,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/route/metadata_test.yaml b/charts/other/app-template/tests/route/metadata_test.yaml index 3526bb7a..233ee377 100644 --- a/charts/other/app-template/tests/route/metadata_test.yaml +++ b/charts/other/app-template/tests/route/metadata_test.yaml @@ -23,7 +23,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -52,7 +52,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -89,5 +89,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/secret/metadata_test.yaml b/charts/other/app-template/tests/secret/metadata_test.yaml index 452eee90..e3533f44 100644 --- a/charts/other/app-template/tests/secret/metadata_test.yaml +++ b/charts/other/app-template/tests/secret/metadata_test.yaml @@ -23,7 +23,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -52,7 +52,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -89,7 +89,7 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom secret type should pass diff --git a/charts/other/app-template/tests/service/metadata_test.yaml b/charts/other/app-template/tests/service/metadata_test.yaml index dd67d891..35ac48b0 100644 --- a/charts/other/app-template/tests/service/metadata_test.yaml +++ b/charts/other/app-template/tests/service/metadata_test.yaml @@ -18,7 +18,7 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 - it: custom metadata should pass set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test - it: custom metadata with global metadata should pass @@ -80,5 +80,5 @@ tests: app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME global_label: test - helm.sh/chart: app-template-1.2.1 + helm.sh/chart: app-template-1.3.0 test_label: test diff --git a/charts/other/app-template/tests/serviceMonitor/servicemonitor_test.yaml b/charts/other/app-template/tests/serviceMonitor/servicemonitor_test.yaml index d9c554ad..8f218d42 100644 --- a/charts/other/app-template/tests/serviceMonitor/servicemonitor_test.yaml +++ b/charts/other/app-template/tests/serviceMonitor/servicemonitor_test.yaml @@ -33,6 +33,8 @@ tests: serviceMonitor: main: enabled: true + labels: + test.label: testvalue endpoints: - port: http scheme: http @@ -65,6 +67,15 @@ tests: path: /metrics interval: 1m scrapeTimeout: 10s + - documentIndex: *ServiceMonitorDocument + equal: + path: metadata.labels + value: + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: RELEASE-NAME + helm.sh/chart: app-template-1.3.0 + test.label: testvalue - it: a serviceMonitor is created with nameOverride set: