diff --git a/library/common-test/tests/cronjob/metadata_test.yaml b/library/common-test/tests/cronjob/metadata_test.yaml index 3b8722f0fb..e033e99640 100644 --- a/library/common-test/tests/cronjob/metadata_test.yaml +++ b/library/common-test/tests/cronjob/metadata_test.yaml @@ -62,6 +62,13 @@ tests: g_label2: global_label2 label1: label1 label2: label2 + - documentIndex: *cronJobDoc + equal: + path: spec.jobTemplate.spec.selector.matchLabels + value: + pod.name: workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *cronJobDoc equal: path: spec.jobTemplate.spec.template.metadata.labels @@ -107,6 +114,13 @@ tests: equal: path: metadata.name value: release-name-common-test-other-workload-name + - documentIndex: *cronJobDoc + equal: + path: spec.jobTemplate.spec.selector.matchLabels + value: + pod.name: other-workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *cronJobDoc isSubset: path: spec.jobTemplate.spec.template.metadata.labels @@ -121,6 +135,13 @@ tests: equal: path: metadata.name value: release-name-common-test + - documentIndex: *otherCronJobDoc + equal: + path: spec.jobTemplate.spec.selector.matchLabels + value: + pod.name: workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *otherCronJobDoc isSubset: path: spec.jobTemplate.spec.template.metadata.labels diff --git a/library/common-test/tests/job/metadata_test.yaml b/library/common-test/tests/job/metadata_test.yaml index a1e91b7561..a60deaae3a 100644 --- a/library/common-test/tests/job/metadata_test.yaml +++ b/library/common-test/tests/job/metadata_test.yaml @@ -61,6 +61,13 @@ tests: g_label2: global_label2 label1: label1 label2: label2 + - documentIndex: *jobDoc + equal: + path: spec.selector.matchLabels + value: + pod.name: workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *jobDoc equal: path: spec.template.metadata.labels @@ -104,6 +111,13 @@ tests: equal: path: metadata.name value: release-name-common-test-other-workload-name + - documentIndex: *jobDoc + equal: + path: spec.selector.matchLabels + value: + pod.name: other-workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *jobDoc isSubset: path: spec.template.metadata.labels @@ -118,6 +132,13 @@ tests: equal: path: metadata.name value: release-name-common-test + - documentIndex: *otherJobDoc + equal: + path: spec.selector.matchLabels + value: + pod.name: workload-name + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME - documentIndex: *otherJobDoc isSubset: path: spec.template.metadata.labels diff --git a/library/common-test/tests/service/metadata_test.yaml b/library/common-test/tests/service/metadata_test.yaml index 5f24bde0ea..a7a16f2374 100644 --- a/library/common-test/tests/service/metadata_test.yaml +++ b/library/common-test/tests/service/metadata_test.yaml @@ -32,6 +32,14 @@ tests: enabled: true primary: true port: 12345 + my-service2: + enabled: true + primary: false + ports: + port-name: + enabled: true + primary: true + port: 1234 workload: my-workload: enabled: true @@ -60,10 +68,31 @@ tests: helm.sh/chart: common-test-1.0.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/name: common-test + service.name: release-name-common-test g_label1: global_label1 g_label2: global_label2 label1: label1 label2: label2 + - documentIndex: &otherServiceDoc 2 + isKind: + of: Service + - documentIndex: *otherServiceDoc + equal: + path: metadata.labels + value: + service.name: release-name-common-test-my-service2 + app: common-test-1.0.0 + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: common-test + app.kubernetes.io/version: *appVer + g_label1: global_label1 + g_label2: global_label2 + helm-revision: 0 + helm.sh/chart: common-test-1.0.0 + release: RELEASE-NAME - it: should pass with service type LoadBalancer, with HTTPS port and addMetalLBAnnotations/Traefik true set: diff --git a/library/common/1.0.0/templates/class/_cronjob.tpl b/library/common/1.0.0/templates/class/_cronjob.tpl index c3efea3daf..82f1e3f8bf 100644 --- a/library/common/1.0.0/templates/class/_cronjob.tpl +++ b/library/common/1.0.0/templates/class/_cronjob.tpl @@ -28,12 +28,15 @@ metadata: {{- end }} spec: {{- include "ix.v1.common.lib.workload.cronjobSpec" (dict "rootCtx" $rootCtx "objectData" $objectData) | nindent 2 }} + selector: + matchLabels: + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | nindent 10 }} template: metadata: {{- $labels := (mustMerge ($objectData.podSpec.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) (include "ix.v1.common.lib.metadata.podLabels" $rootCtx | fromYaml) - (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | fromYaml)) -}} + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 12 }} diff --git a/library/common/1.0.0/templates/class/_daemonset.tpl b/library/common/1.0.0/templates/class/_daemonset.tpl index b9c4d3d49e..611affd140 100644 --- a/library/common/1.0.0/templates/class/_daemonset.tpl +++ b/library/common/1.0.0/templates/class/_daemonset.tpl @@ -30,13 +30,13 @@ spec: {{- include "ix.v1.common.lib.workload.daemonsetSpec" (dict "rootCtx" $rootCtx "objectData" $objectData) | nindent 2 }} selector: matchLabels: - {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | nindent 6 }} + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | nindent 6 }} template: metadata: {{- $labels := (mustMerge ($objectData.podSpec.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) (include "ix.v1.common.lib.metadata.podLabels" $rootCtx | fromYaml) - (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | fromYaml)) -}} + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 8 }} diff --git a/library/common/1.0.0/templates/class/_deployment.tpl b/library/common/1.0.0/templates/class/_deployment.tpl index d40ecaac05..630ef659f1 100644 --- a/library/common/1.0.0/templates/class/_deployment.tpl +++ b/library/common/1.0.0/templates/class/_deployment.tpl @@ -30,13 +30,13 @@ spec: {{- include "ix.v1.common.lib.workload.deploymentSpec" (dict "rootCtx" $rootCtx "objectData" $objectData) | nindent 2 }} selector: matchLabels: - {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | nindent 6 }} + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | nindent 6 }} template: metadata: {{- $labels := (mustMerge ($objectData.podSpec.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) (include "ix.v1.common.lib.metadata.podLabels" $rootCtx | fromYaml) - (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | fromYaml)) -}} + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 8 }} diff --git a/library/common/1.0.0/templates/class/_job.tpl b/library/common/1.0.0/templates/class/_job.tpl index 65a8d27aaf..41b8e835e3 100644 --- a/library/common/1.0.0/templates/class/_job.tpl +++ b/library/common/1.0.0/templates/class/_job.tpl @@ -28,12 +28,15 @@ metadata: {{- end }} spec: {{- include "ix.v1.common.lib.workload.jobSpec" (dict "rootCtx" $rootCtx "objectData" $objectData) | nindent 2 }} + selector: + matchLabels: + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | nindent 6 }} template: metadata: {{- $labels := (mustMerge ($objectData.podSpec.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) (include "ix.v1.common.lib.metadata.podLabels" $rootCtx | fromYaml) - (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | fromYaml)) -}} + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 8 }} diff --git a/library/common/1.0.0/templates/class/_service.tpl b/library/common/1.0.0/templates/class/_service.tpl index c1df9a84ed..91aefd7843 100644 --- a/library/common/1.0.0/templates/class/_service.tpl +++ b/library/common/1.0.0/templates/class/_service.tpl @@ -56,7 +56,8 @@ apiVersion: v1 kind: Service metadata: name: {{ $objectData.name }} - {{- $labels := (mustMerge ($objectData.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml)) -}} + {{- $labels := (mustMerge ($objectData.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "service" "objectName" $objectData.name) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 4 }} @@ -90,7 +91,7 @@ spec: {{- end -}} {{- if not (mustHas $svcType $specialTypes) }} selector: - {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $podValues.shortName) | trim | nindent 4 -}} + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $podValues.shortName) | trim | nindent 4 -}} {{- end -}} {{- if eq $svcType "ExternalIP" -}} {{- include "ix.v1.common.class.endpointSlice" (dict "rootCtx" $rootCtx "objectData" $objectData) | trim | nindent 0 }} diff --git a/library/common/1.0.0/templates/class/_statefulset.tpl b/library/common/1.0.0/templates/class/_statefulset.tpl index 939fba671a..ca54e45973 100644 --- a/library/common/1.0.0/templates/class/_statefulset.tpl +++ b/library/common/1.0.0/templates/class/_statefulset.tpl @@ -30,13 +30,13 @@ spec: {{- include "ix.v1.common.lib.workload.statefulsetSpec" (dict "rootCtx" $rootCtx "objectData" $objectData) | nindent 2 }} selector: matchLabels: - {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | nindent 6 }} + {{- include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | nindent 6 }} template: metadata: {{- $labels := (mustMerge ($objectData.podSpec.labels | default dict) (include "ix.v1.common.lib.metadata.allLabels" $rootCtx | fromYaml) (include "ix.v1.common.lib.metadata.podLabels" $rootCtx | fromYaml) - (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "podName" $objectData.shortName) | fromYaml)) -}} + (include "ix.v1.common.lib.metadata.selectorLabels" (dict "rootCtx" $rootCtx "objectType" "pod" "objectName" $objectData.shortName) | fromYaml)) -}} {{- with (include "ix.v1.common.lib.metadata.render" (dict "rootCtx" $rootCtx "labels" $labels) | trim) }} labels: {{- . | nindent 8 }} diff --git a/library/common/1.0.0/templates/lib/metadata/_selectorLabels.tpl b/library/common/1.0.0/templates/lib/metadata/_selectorLabels.tpl index a94adb4e5b..ff9626c0a6 100644 --- a/library/common/1.0.0/templates/lib/metadata/_selectorLabels.tpl +++ b/library/common/1.0.0/templates/lib/metadata/_selectorLabels.tpl @@ -5,8 +5,10 @@ podName is the "shortName" of the pod. The one you define in the .Values.workloa */}} {{- define "ix.v1.common.lib.metadata.selectorLabels" -}} {{- $rootCtx := .rootCtx -}} - {{- $podName := .podName -}} -pod.name: {{ $podName }} + {{- $objectType := .objectType -}} + {{- $objectName := .objectName }} + +{{ printf "%s.name" $objectType }}: {{ $objectName }} app.kubernetes.io/name: {{ include "ix.v1.common.lib.chart.names.name" $rootCtx }} app.kubernetes.io/instance: {{ $rootCtx.Release.Name }} {{- end -}}