diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index 8c5dc98b..1168ee73 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.1.2 +version: 1.1.3 kubeVersion: ">=1.22.0-0" keywords: - common diff --git a/charts/library/common/templates/lib/container/_ports.tpl b/charts/library/common/templates/lib/container/_ports.tpl index c1575cfa..69cdec61 100644 --- a/charts/library/common/templates/lib/container/_ports.tpl +++ b/charts/library/common/templates/lib/container/_ports.tpl @@ -4,12 +4,18 @@ Ports included by the controller. {{- define "bjw-s.common.lib.container.ports" -}} {{- $ports := list -}} {{- range $servicename, $service := .Values.service -}} - {{- $enabledPorts := include "bjw-s.common.lib.service.enabledPorts" (dict "serviceName" $servicename "values" $service) | fromYaml }} - {{- range $portname, $port := ($enabledPorts | default dict) -}} - {{- $_ := set $port "name" $portname -}} - {{- $ports = mustAppend $ports $port -}} - {{- end }} - {{- end }} + {{- $serviceEnabled := true -}} + {{- if hasKey $service "enabled" -}} + {{- $serviceEnabled = $service.enabled -}} + {{- end -}} + {{- if $serviceEnabled -}} + {{- $enabledPorts := include "bjw-s.common.lib.service.enabledPorts" (dict "serviceName" $servicename "values" $service) | fromYaml }} + {{- range $portname, $port := ($enabledPorts | default dict) -}} + {{- $_ := set $port "name" $portname -}} + {{- $ports = mustAppend $ports $port -}} + {{- end -}} + {{- end -}} + {{- end -}} {{/* export/render the list of ports */}} {{- if $ports -}} diff --git a/charts/library/common/templates/render/_services.tpl b/charts/library/common/templates/render/_services.tpl index 3e7097c4..46e18f27 100644 --- a/charts/library/common/templates/render/_services.tpl +++ b/charts/library/common/templates/render/_services.tpl @@ -4,7 +4,11 @@ Renders the Service objects required by the chart. {{- define "bjw-s.common.render.services" -}} {{- /* Generate named services as required */ -}} {{- range $name, $service := .Values.service -}} - {{- if ($service.enabled | default true ) -}} + {{- $serviceEnabled := true -}} + {{- if hasKey $service "enabled" -}} + {{- $serviceEnabled = $service.enabled -}} + {{- end -}} + {{- if $serviceEnabled -}} {{- $serviceValues := $service -}} {{/* set the default nameOverride to the service name */}} diff --git a/charts/other/app-template/Chart.yaml b/charts/other/app-template/Chart.yaml index ffcfdee6..f7d97541 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.1.2 +version: 1.1.3 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.1.2 + version: 1.1.3 annotations: artifacthub.io/changes: |- - kind: changed description: | - Updated library version to 1.1.1. + Updated library version to 1.1.3. 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/ci/no-service.yaml b/charts/other/app-template/ci/no-service.yaml new file mode 100644 index 00000000..e463e326 --- /dev/null +++ b/charts/other/app-template/ci/no-service.yaml @@ -0,0 +1,20 @@ +image: + repository: b4bz/homer + tag: latest + pullPolicy: IfNotPresent + +service: + main: + enabled: false + +ingress: + main: + enabled: false + +probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false diff --git a/charts/other/app-template/tests/configmap/metadata_test.yaml b/charts/other/app-template/tests/configmap/metadata_test.yaml index ca611340..d0115272 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 ecdf7609..6ced5b92 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 ebddaa35..1b47f355 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 35688362..edbe2108 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 1a697f93..82638c51 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 test_label: test diff --git a/charts/other/app-template/tests/pvc/metadata_test.yaml b/charts/other/app-template/tests/pvc/metadata_test.yaml index 8ee7d59b..041064e3 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 ed0874ed..09c4878b 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 84f3d010..3a6b76af 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 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 8e214303..1c76dd94 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.1.2 + helm.sh/chart: app-template-1.1.3 - 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.1.2 + helm.sh/chart: app-template-1.1.3 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.1.2 + helm.sh/chart: app-template-1.1.3 test_label: test diff --git a/charts/other/app-template/tests/service/values_test.yaml b/charts/other/app-template/tests/service/values_test.yaml index e23af99f..6fff202b 100644 --- a/charts/other/app-template/tests/service/values_test.yaml +++ b/charts/other/app-template/tests/service/values_test.yaml @@ -20,6 +20,18 @@ tests: isKind: of: Service + - it: services can be disabled + set: + service: + main: + enabled: false + asserts: + - hasDocuments: + count: 1 + - documentIndex: &DeploymentDocument 0 + isKind: + of: Deployment + - it: externalTrafficPolicy should pass for NodePort service set: service: