From abc36d3bb841b0fb07316085420744b7f65d33b5 Mon Sep 17 00:00:00 2001 From: Kjeld Schouten Date: Sat, 3 Jun 2023 00:07:57 +0200 Subject: [PATCH] Label fix (#450) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Description** Working on our CNPG chart, I discovered some of the basic adviced kubernetes labels are put into selectorLabels. This is odd behavior, because they should be put everywhere. For CNPG this lead to it not being able to find deployments as those where lacking basic selector labels and I expect this to happen for other objects as well in the future. However, as this include is also used to match things, we need to keep it in both includes. As they are the same, duplicates should just be merged out without issue. **โš™๏ธ Type of change** - [ ] โš™๏ธ Feature/App addition - [x] ๐Ÿช› Bugfix - [ ] โš ๏ธ Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] ๐Ÿ”ƒ Refactor of current code **๐Ÿงช How Has This Been Tested?** **๐Ÿ“ƒ Notes:** **โœ”๏ธ Checklist:** - [ ] โš–๏ธ My code follows the style guidelines of this project - [ ] ๐Ÿ‘€ I have performed a self-review of my own code - [ ] #๏ธโƒฃ I have commented my code, particularly in hard-to-understand areas - [ ] ๐Ÿ“„ I have made corresponding changes to the documentation - [ ] โš ๏ธ My changes generate no new warnings - [ ] ๐Ÿงช I have added tests to this description that prove my fix is effective or that my feature works - [ ] โฌ†๏ธ I increased versions for any altered app according to semantic versioning **โž• App addition** If this PR is an app addition please make sure you have done the following. - [ ] ๐Ÿชž I have opened a PR on [truecharts/containers](https://github.com/truecharts/containers) adding the container to TrueCharts mirror repo. - [ ] ๐Ÿ–ผ๏ธ I have added an icon in the Chart's root directory called `icon.png` --- _Please don't blindly check all the boxes. Read them and only check those that apply. Those checkboxes are there for the reviewer to see what is this all about and the status of this PR with a quick glance._ --------- Co-authored-by: Stavros kois --- .../tests/certificate/metadata_test.yaml | 2 ++ .../common-test/tests/configmap/metadata_test.yaml | 2 ++ .../common-test/tests/cronjob/metadata_test.yaml | 2 ++ .../common-test/tests/daemonset/metadata_test.yaml | 2 ++ .../common-test/tests/defaults/defaults-test.yaml | 14 ++++++++++++++ .../tests/deployment/metadata_test.yaml | 2 ++ .../tests/imagePullSecret/metadata_test.yaml | 2 ++ .../common-test/tests/ingress/metadata_test.yaml | 4 ++++ library/common-test/tests/job/metadata_test.yaml | 2 ++ .../tests/persistence/metadata_test.yaml | 4 ++++ library/common-test/tests/rbac/metadata_test.yaml | 8 ++++++++ .../common-test/tests/secret/metadata_test.yaml | 2 ++ .../tests/service/external_ip_test.yaml | 4 ++++ .../tests/serviceAccount/metadata_test.yaml | 2 ++ .../tests/statefulset/metadata_test.yaml | 2 ++ library/common/Chart.yaml | 2 +- .../common/templates/lib/metadata/_allLabels.tpl | 2 ++ library/common/templates/lib/metadata/_render.tpl | 13 +++++++++++-- 18 files changed, 68 insertions(+), 3 deletions(-) diff --git a/library/common-test/tests/certificate/metadata_test.yaml b/library/common-test/tests/certificate/metadata_test.yaml index c32961e9..dedd6744 100644 --- a/library/common-test/tests/certificate/metadata_test.yaml +++ b/library/common-test/tests/certificate/metadata_test.yaml @@ -51,6 +51,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/configmap/metadata_test.yaml b/library/common-test/tests/configmap/metadata_test.yaml index f3368c35..79e37f25 100644 --- a/library/common-test/tests/configmap/metadata_test.yaml +++ b/library/common-test/tests/configmap/metadata_test.yaml @@ -48,6 +48,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/cronjob/metadata_test.yaml b/library/common-test/tests/cronjob/metadata_test.yaml index e707913f..4b334f6d 100644 --- a/library/common-test/tests/cronjob/metadata_test.yaml +++ b/library/common-test/tests/cronjob/metadata_test.yaml @@ -56,6 +56,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/daemonset/metadata_test.yaml b/library/common-test/tests/daemonset/metadata_test.yaml index 7ed09b79..e4fdd289 100644 --- a/library/common-test/tests/daemonset/metadata_test.yaml +++ b/library/common-test/tests/daemonset/metadata_test.yaml @@ -55,6 +55,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/defaults/defaults-test.yaml b/library/common-test/tests/defaults/defaults-test.yaml index f3c61a9e..5ed33907 100644 --- a/library/common-test/tests/defaults/defaults-test.yaml +++ b/library/common-test/tests/defaults/defaults-test.yaml @@ -1,6 +1,8 @@ suite: default test templates: - common.yaml +chart: + appVersion: &appVer v9.9.9 tests: - it: should pass with defaults set: @@ -65,6 +67,18 @@ tests: supplementalGroups: - 568 sysctls: [] + - documentIndex: *deploymentDoc + equal: + path: metadata.labels + value: + app: common-test-1.0.0 + release: RELEASE-NAME + helm-revision: "0" + helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/version: *appVer - documentIndex: *deploymentDoc isSubset: path: spec.template.spec diff --git a/library/common-test/tests/deployment/metadata_test.yaml b/library/common-test/tests/deployment/metadata_test.yaml index 50110ded..acc20034 100644 --- a/library/common-test/tests/deployment/metadata_test.yaml +++ b/library/common-test/tests/deployment/metadata_test.yaml @@ -55,6 +55,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/imagePullSecret/metadata_test.yaml b/library/common-test/tests/imagePullSecret/metadata_test.yaml index 21f60282..b5c56ae2 100644 --- a/library/common-test/tests/imagePullSecret/metadata_test.yaml +++ b/library/common-test/tests/imagePullSecret/metadata_test.yaml @@ -51,6 +51,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/ingress/metadata_test.yaml b/library/common-test/tests/ingress/metadata_test.yaml index e79cfb7a..de0acec0 100644 --- a/library/common-test/tests/ingress/metadata_test.yaml +++ b/library/common-test/tests/ingress/metadata_test.yaml @@ -40,6 +40,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer @@ -85,6 +87,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer test_label: test diff --git a/library/common-test/tests/job/metadata_test.yaml b/library/common-test/tests/job/metadata_test.yaml index 84b103f2..adba4022 100644 --- a/library/common-test/tests/job/metadata_test.yaml +++ b/library/common-test/tests/job/metadata_test.yaml @@ -55,6 +55,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/persistence/metadata_test.yaml b/library/common-test/tests/persistence/metadata_test.yaml index 4853e613..b58e9116 100644 --- a/library/common-test/tests/persistence/metadata_test.yaml +++ b/library/common-test/tests/persistence/metadata_test.yaml @@ -50,6 +50,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 @@ -81,5 +83,7 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer diff --git a/library/common-test/tests/rbac/metadata_test.yaml b/library/common-test/tests/rbac/metadata_test.yaml index 04bdd573..e44df810 100644 --- a/library/common-test/tests/rbac/metadata_test.yaml +++ b/library/common-test/tests/rbac/metadata_test.yaml @@ -80,6 +80,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 @@ -105,6 +107,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 @@ -130,6 +134,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 @@ -155,6 +161,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/secret/metadata_test.yaml b/library/common-test/tests/secret/metadata_test.yaml index 4201059f..808e69b3 100644 --- a/library/common-test/tests/secret/metadata_test.yaml +++ b/library/common-test/tests/secret/metadata_test.yaml @@ -48,6 +48,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/service/external_ip_test.yaml b/library/common-test/tests/service/external_ip_test.yaml index a562ba90..7b35013c 100644 --- a/library/common-test/tests/service/external_ip_test.yaml +++ b/library/common-test/tests/service/external_ip_test.yaml @@ -116,6 +116,8 @@ tests: path: metadata.labels value: kubernetes.io/service-name: release-name-common-test + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer helm.sh/chart: common-test-1.0.0 @@ -298,6 +300,8 @@ tests: equal: path: metadata.labels value: + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer helm.sh/chart: common-test-1.0.0 diff --git a/library/common-test/tests/serviceAccount/metadata_test.yaml b/library/common-test/tests/serviceAccount/metadata_test.yaml index deeb8b22..77274d98 100644 --- a/library/common-test/tests/serviceAccount/metadata_test.yaml +++ b/library/common-test/tests/serviceAccount/metadata_test.yaml @@ -47,6 +47,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common-test/tests/statefulset/metadata_test.yaml b/library/common-test/tests/statefulset/metadata_test.yaml index f344be03..988d0b05 100644 --- a/library/common-test/tests/statefulset/metadata_test.yaml +++ b/library/common-test/tests/statefulset/metadata_test.yaml @@ -55,6 +55,8 @@ tests: release: RELEASE-NAME helm-revision: "0" helm.sh/chart: common-test-1.0.0 + app.kubernetes.io/name: common-test + app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: *appVer g_label1: global_label1 diff --git a/library/common/Chart.yaml b/library/common/Chart.yaml index b92bacfc..a5ae0bc8 100644 --- a/library/common/Chart.yaml +++ b/library/common/Chart.yaml @@ -15,4 +15,4 @@ maintainers: name: common sources: null type: library -version: 12.11.0 +version: 12.11.1 diff --git a/library/common/templates/lib/metadata/_allLabels.tpl b/library/common/templates/lib/metadata/_allLabels.tpl index 29489608..3346f793 100644 --- a/library/common/templates/lib/metadata/_allLabels.tpl +++ b/library/common/templates/lib/metadata/_allLabels.tpl @@ -5,6 +5,8 @@ {{- define "tc.v1.common.lib.metadata.allLabels" -}} helm.sh/chart: {{ include "tc.v1.common.lib.chart.names.chart" . }} helm-revision: {{ .Release.Revision | quote }} +app.kubernetes.io/name: {{ include "tc.v1.common.lib.chart.names.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} app.kubernetes.io/managed-by: {{ .Release.Service }} app: {{ include "tc.v1.common.lib.chart.names.chart" . }} diff --git a/library/common/templates/lib/metadata/_render.tpl b/library/common/templates/lib/metadata/_render.tpl index 02546777..9e5f3d9d 100644 --- a/library/common/templates/lib/metadata/_render.tpl +++ b/library/common/templates/lib/metadata/_render.tpl @@ -9,18 +9,27 @@ {{- $annotations := .annotations -}} {{- $rootCtx := .rootCtx -}} + {{- $seenLabels := list -}} + {{- $seenAnnotations := list -}} + {{- with $labels -}} {{- range $k, $v := . -}} - {{- if and $k $v }} + {{- if and $k $v -}} + {{- if not (mustHas $k $seenLabels) }} {{ $k }}: {{ tpl $v $rootCtx | quote }} + {{- $seenLabels = mustAppend $seenLabels $k -}} + {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- with $annotations -}} {{- range $k, $v := . -}} - {{- if and $k $v }} + {{- if and $k $v -}} + {{- if not (mustHas $k $seenAnnotations) }} {{ $k }}: {{ tpl $v $rootCtx | quote }} + {{- $seenAnnotations = mustAppend $seenAnnotations $k -}} + {{- end -}} {{- end -}} {{- end -}} {{- end -}}