diff --git a/deploy/charts/cert-manager/templates/_helpers.tpl b/deploy/charts/cert-manager/templates/_helpers.tpl index 89514377b..0ecc69b93 100644 --- a/deploy/charts/cert-manager/templates/_helpers.tpl +++ b/deploy/charts/cert-manager/templates/_helpers.tpl @@ -23,13 +23,6 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- end -}} {{- end -}} -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "cert-manager.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the name of the service account to use */}} @@ -68,13 +61,6 @@ If release name contains chart name it will be used as a full name. {{ .Release.Namespace}}/{{ template "webhook.fullname" . }}-ca {{- end -}} -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "webhook.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the name of the service account to use */}} @@ -109,13 +95,6 @@ If release name contains chart name it will be used as a full name. {{- printf "%s-cainjector" $trimmedName | trunc 63 | trimSuffix "-" -}} {{- end -}} -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "cainjector.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - {{/* Create the name of the service account to use */}} @@ -126,3 +105,21 @@ Create the name of the service account to use {{ default "default" .Values.cainjector.serviceAccount.name }} {{- end -}} {{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "chartName" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Labels that should be added on each resource +*/}} +{{- define "labels" -}} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- if eq (default .Values.creator "helm") "helm" }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +helm.sh/chart: {{ include "chartName" . }} +{{- end -}} +{{- end -}} diff --git a/deploy/charts/cert-manager/templates/cainjector-deployment.yaml b/deploy/charts/cert-manager/templates/cainjector-deployment.yaml index 8944fb4fe..c57c23250 100644 --- a/deploy/charts/cert-manager/templates/cainjector-deployment.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-deployment.yaml @@ -8,9 +8,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.cainjector.deploymentAnnotations }} annotations: {{ toYaml .Values.cainjector.deploymentAnnotations | indent 4 }} @@ -32,9 +31,8 @@ spec: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 8 }} {{- if .Values.cainjector.podLabels }} {{ toYaml .Values.cainjector.podLabels | indent 8 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/cainjector-psp-clusterrole.yaml b/deploy/charts/cert-manager/templates/cainjector-psp-clusterrole.yaml index 714ce9248..3200e8b50 100644 --- a/deploy/charts/cert-manager/templates/cainjector-psp-clusterrole.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-psp-clusterrole.yaml @@ -8,9 +8,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ['policy'] resources: ['podsecuritypolicies'] diff --git a/deploy/charts/cert-manager/templates/cainjector-psp-clusterrolebinding.yaml b/deploy/charts/cert-manager/templates/cainjector-psp-clusterrolebinding.yaml index fe523f777..819d94606 100644 --- a/deploy/charts/cert-manager/templates/cainjector-psp-clusterrolebinding.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-psp-clusterrolebinding.yaml @@ -8,9 +8,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole diff --git a/deploy/charts/cert-manager/templates/cainjector-psp.yaml b/deploy/charts/cert-manager/templates/cainjector-psp.yaml index cbc4d04a7..2583d9773 100644 --- a/deploy/charts/cert-manager/templates/cainjector-psp.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-psp.yaml @@ -8,9 +8,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' diff --git a/deploy/charts/cert-manager/templates/cainjector-rbac.yaml b/deploy/charts/cert-manager/templates/cainjector-rbac.yaml index 5cfa1fff9..5f1199c72 100644 --- a/deploy/charts/cert-manager/templates/cainjector-rbac.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-rbac.yaml @@ -8,9 +8,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["certificates"] @@ -42,9 +41,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -65,9 +63,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} rules: # Used for leader election by the controller # cert-manager-cainjector-leader-election is used by the CertificateBased injector controller @@ -103,9 +100,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -114,7 +110,5 @@ subjects: - kind: ServiceAccount name: {{ template "cainjector.serviceAccountName" . }} namespace: {{ .Release.Namespace }} - - {{- end -}} {{- end -}} diff --git a/deploy/charts/cert-manager/templates/cainjector-serviceaccount.yaml b/deploy/charts/cert-manager/templates/cainjector-serviceaccount.yaml index f981e9518..bd56468eb 100644 --- a/deploy/charts/cert-manager/templates/cainjector-serviceaccount.yaml +++ b/deploy/charts/cert-manager/templates/cainjector-serviceaccount.yaml @@ -14,9 +14,8 @@ metadata: app: {{ include "cainjector.name" . }} app.kubernetes.io/name: {{ include "cainjector.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cainjector" - helm.sh/chart: {{ include "cainjector.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.global.imagePullSecrets | nindent 2 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/deployment.yaml b/deploy/charts/cert-manager/templates/deployment.yaml index 39a691854..743177131 100644 --- a/deploy/charts/cert-manager/templates/deployment.yaml +++ b/deploy/charts/cert-manager/templates/deployment.yaml @@ -7,9 +7,8 @@ metadata: app: {{ template "cert-manager.name" . }} app.kubernetes.io/name: {{ template "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ template "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.deploymentAnnotations }} annotations: {{ toYaml .Values.deploymentAnnotations | indent 4 }} @@ -32,8 +31,7 @@ spec: app.kubernetes.io/name: {{ template "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "controller" - app.kubernetes.io/managed-by: {{ .Release.Service }} - helm.sh/chart: {{ template "cert-manager.chart" . }} + {{- include "labels" . | nindent 8 }} {{- if .Values.podLabels }} {{ toYaml .Values.podLabels | indent 8 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/psp-clusterrole.yaml b/deploy/charts/cert-manager/templates/psp-clusterrole.yaml index b53af093c..1d40a0238 100644 --- a/deploy/charts/cert-manager/templates/psp-clusterrole.yaml +++ b/deploy/charts/cert-manager/templates/psp-clusterrole.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ['policy'] resources: ['podsecuritypolicies'] diff --git a/deploy/charts/cert-manager/templates/psp-clusterrolebinding.yaml b/deploy/charts/cert-manager/templates/psp-clusterrolebinding.yaml index d20835ee3..1da89c8d5 100644 --- a/deploy/charts/cert-manager/templates/psp-clusterrolebinding.yaml +++ b/deploy/charts/cert-manager/templates/psp-clusterrolebinding.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole diff --git a/deploy/charts/cert-manager/templates/psp.yaml b/deploy/charts/cert-manager/templates/psp.yaml index 3c70dad4a..9e99f5c76 100644 --- a/deploy/charts/cert-manager/templates/psp.yaml +++ b/deploy/charts/cert-manager/templates/psp.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' diff --git a/deploy/charts/cert-manager/templates/rbac.yaml b/deploy/charts/cert-manager/templates/rbac.yaml index 0618ee06b..bf6e6653e 100644 --- a/deploy/charts/cert-manager/templates/rbac.yaml +++ b/deploy/charts/cert-manager/templates/rbac.yaml @@ -1,5 +1,4 @@ {{- if .Values.global.rbac.create -}} - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: @@ -9,9 +8,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: # Used for leader election by the controller # See also: https://github.com/kubernetes-sigs/controller-runtime/pull/1144#discussion_r480173688 @@ -43,9 +41,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -67,9 +64,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["issuers", "issuers/status"] @@ -95,9 +91,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["clusterissuers", "clusterissuers/status"] @@ -123,9 +118,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["certificates", "certificates/status", "certificaterequests", "certificaterequests/status"] @@ -160,9 +154,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["acme.cert-manager.io"] resources: ["orders", "orders/status"] @@ -200,9 +193,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: # Use to update challenge resource status - apiGroups: ["acme.cert-manager.io"] @@ -259,9 +251,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["certificates", "certificaterequests"] @@ -292,9 +283,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -314,9 +304,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -336,9 +325,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -358,9 +346,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -380,9 +367,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -402,9 +388,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -424,9 +409,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rbac.authorization.k8s.io/aggregate-to-view: "true" rbac.authorization.k8s.io/aggregate-to-edit: "true" rbac.authorization.k8s.io/aggregate-to-admin: "true" @@ -449,9 +433,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rbac.authorization.k8s.io/aggregate-to-edit: "true" rbac.authorization.k8s.io/aggregate-to-admin: "true" rules: @@ -473,9 +456,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cert-manager" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["cert-manager.io"] resources: ["signers"] @@ -492,9 +474,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cert-manager" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -517,9 +498,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cert-manager" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["certificates.k8s.io"] resources: ["certificatesigningrequests"] @@ -545,9 +525,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "cert-manager" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -556,5 +535,4 @@ subjects: - name: {{ template "cert-manager.serviceAccountName" . }} namespace: {{ .Release.Namespace | quote }} kind: ServiceAccount - {{- end }} diff --git a/deploy/charts/cert-manager/templates/service.yaml b/deploy/charts/cert-manager/templates/service.yaml index 9c0a1adce..0649631db 100644 --- a/deploy/charts/cert-manager/templates/service.yaml +++ b/deploy/charts/cert-manager/templates/service.yaml @@ -1,4 +1,4 @@ -{{- if .Values.prometheus.enabled }} +{{- if .Values.prometheus.enabled -}} apiVersion: v1 kind: Service metadata: @@ -8,9 +8,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.serviceLabels }} {{ toYaml .Values.serviceLabels | indent 4 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/serviceaccount.yaml b/deploy/charts/cert-manager/templates/serviceaccount.yaml index 05a4ae965..bacff5a66 100644 --- a/deploy/charts/cert-manager/templates/serviceaccount.yaml +++ b/deploy/charts/cert-manager/templates/serviceaccount.yaml @@ -16,7 +16,6 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/servicemonitor.yaml b/deploy/charts/cert-manager/templates/servicemonitor.yaml index e3b3748c3..36584f31a 100644 --- a/deploy/charts/cert-manager/templates/servicemonitor.yaml +++ b/deploy/charts/cert-manager/templates/servicemonitor.yaml @@ -12,9 +12,8 @@ metadata: app: {{ include "cert-manager.name" . }} app.kubernetes.io/name: {{ include "cert-manager.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "controller" - helm.sh/chart: {{ include "cert-manager.chart" . }} + {{- include "labels" . | nindent 4 }} prometheus: {{ .Values.prometheus.servicemonitor.prometheusInstance }} {{- if .Values.prometheus.servicemonitor.labels }} {{ toYaml .Values.prometheus.servicemonitor.labels | indent 4}} diff --git a/deploy/charts/cert-manager/templates/webhook-deployment.yaml b/deploy/charts/cert-manager/templates/webhook-deployment.yaml index e80b4fb0f..98ffbda07 100644 --- a/deploy/charts/cert-manager/templates/webhook-deployment.yaml +++ b/deploy/charts/cert-manager/templates/webhook-deployment.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.webhook.deploymentAnnotations }} annotations: {{ toYaml .Values.webhook.deploymentAnnotations | indent 4 }} @@ -31,9 +30,8 @@ spec: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 8 }} {{- if .Values.webhook.podLabels }} {{ toYaml .Values.webhook.podLabels | indent 8 }} {{- end }} diff --git a/deploy/charts/cert-manager/templates/webhook-mutating-webhook.yaml b/deploy/charts/cert-manager/templates/webhook-mutating-webhook.yaml index 26dc7072b..30e8513d2 100644 --- a/deploy/charts/cert-manager/templates/webhook-mutating-webhook.yaml +++ b/deploy/charts/cert-manager/templates/webhook-mutating-webhook.yaml @@ -6,9 +6,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} annotations: cert-manager.io/inject-ca-from-secret: "{{ .Release.Namespace }}/{{ template "webhook.fullname" . }}-ca" {{- if .Values.webhook.mutatingWebhookConfigurationAnnotations }} diff --git a/deploy/charts/cert-manager/templates/webhook-psp-clusterrole.yaml b/deploy/charts/cert-manager/templates/webhook-psp-clusterrole.yaml index e68d6ac4f..2a8808e7d 100644 --- a/deploy/charts/cert-manager/templates/webhook-psp-clusterrole.yaml +++ b/deploy/charts/cert-manager/templates/webhook-psp-clusterrole.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ['policy'] resources: ['podsecuritypolicies'] diff --git a/deploy/charts/cert-manager/templates/webhook-psp-clusterrolebinding.yaml b/deploy/charts/cert-manager/templates/webhook-psp-clusterrolebinding.yaml index 9250944f2..e8e1bb206 100644 --- a/deploy/charts/cert-manager/templates/webhook-psp-clusterrolebinding.yaml +++ b/deploy/charts/cert-manager/templates/webhook-psp-clusterrolebinding.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole diff --git a/deploy/charts/cert-manager/templates/webhook-psp.yaml b/deploy/charts/cert-manager/templates/webhook-psp.yaml index 852a2cb1c..5a2bb6bd3 100644 --- a/deploy/charts/cert-manager/templates/webhook-psp.yaml +++ b/deploy/charts/cert-manager/templates/webhook-psp.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' diff --git a/deploy/charts/cert-manager/templates/webhook-rbac.yaml b/deploy/charts/cert-manager/templates/webhook-rbac.yaml index 9e06336d9..66ecb4f52 100644 --- a/deploy/charts/cert-manager/templates/webhook-rbac.yaml +++ b/deploy/charts/cert-manager/templates/webhook-rbac.yaml @@ -1,5 +1,4 @@ {{- if .Values.global.rbac.create -}} - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: @@ -9,9 +8,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: [""] resources: ["secrets"] @@ -33,9 +31,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role @@ -56,9 +53,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} rules: - apiGroups: ["authorization.k8s.io"] resources: ["subjectaccessreviews"] @@ -73,9 +69,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole @@ -85,5 +80,4 @@ subjects: kind: ServiceAccount name: {{ template "webhook.serviceAccountName" . }} namespace: {{ .Release.Namespace }} - {{- end -}} diff --git a/deploy/charts/cert-manager/templates/webhook-service.yaml b/deploy/charts/cert-manager/templates/webhook-service.yaml index 3373a340b..5cf9efdbe 100644 --- a/deploy/charts/cert-manager/templates/webhook-service.yaml +++ b/deploy/charts/cert-manager/templates/webhook-service.yaml @@ -7,9 +7,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} spec: type: {{ .Values.webhook.serviceType }} {{- if .Values.webhook.loadBalancerIP }} diff --git a/deploy/charts/cert-manager/templates/webhook-serviceaccount.yaml b/deploy/charts/cert-manager/templates/webhook-serviceaccount.yaml index cde326145..f5db5215c 100644 --- a/deploy/charts/cert-manager/templates/webhook-serviceaccount.yaml +++ b/deploy/charts/cert-manager/templates/webhook-serviceaccount.yaml @@ -13,9 +13,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.global.imagePullSecrets | nindent 2 }} {{- end -}} diff --git a/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml b/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml index 30c6e4e07..0a4216ae7 100644 --- a/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml +++ b/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml @@ -6,9 +6,8 @@ metadata: app: {{ include "webhook.name" . }} app.kubernetes.io/name: {{ include "webhook.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/component: "webhook" - helm.sh/chart: {{ include "webhook.chart" . }} + {{- include "labels" . | nindent 4 }} annotations: cert-manager.io/inject-ca-from-secret: "{{ .Release.Namespace }}/{{ template "webhook.fullname" . }}-ca" {{- if .Values.webhook.validatingWebhookConfigurationAnnotations }} diff --git a/deploy/crds/BUILD.bazel b/deploy/crds/BUILD.bazel index 9d4c2dc22..08a35aa05 100644 --- a/deploy/crds/BUILD.bazel +++ b/deploy/crds/BUILD.bazel @@ -46,6 +46,9 @@ helm_tmpl( helm_pkg = ":package", release_name = "cert-manager", release_namespace = "cert-manager", + values = { + "creator": "static", + }, visibility = ["//visibility:public"], ) @@ -67,6 +70,9 @@ helm_tmpl( helm_pkg = ":crd-%s.package" % crd, release_name = "cert-manager", release_namespace = "cert-manager", + values = { + "creator": "static", + }, visibility = ["//visibility:public"], ) for crd in crds] diff --git a/deploy/crds/crd-certificaterequests.yaml b/deploy/crds/crd-certificaterequests.yaml index faa75cdb9..9d648bedc 100644 --- a/deploy/crds/crd-certificaterequests.yaml +++ b/deploy/crds/crd-certificaterequests.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: cert-manager.io names: diff --git a/deploy/crds/crd-certificates.yaml b/deploy/crds/crd-certificates.yaml index c892d3bd9..27b503191 100644 --- a/deploy/crds/crd-certificates.yaml +++ b/deploy/crds/crd-certificates.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: cert-manager.io names: diff --git a/deploy/crds/crd-challenges.yaml b/deploy/crds/crd-challenges.yaml index 0bc5eb243..026404ac9 100644 --- a/deploy/crds/crd-challenges.yaml +++ b/deploy/crds/crd-challenges.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: acme.cert-manager.io names: diff --git a/deploy/crds/crd-clusterissuers.yaml b/deploy/crds/crd-clusterissuers.yaml index 2530dceaf..9c6c45a6a 100644 --- a/deploy/crds/crd-clusterissuers.yaml +++ b/deploy/crds/crd-clusterissuers.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: cert-manager.io names: diff --git a/deploy/crds/crd-issuers.yaml b/deploy/crds/crd-issuers.yaml index 721517a31..05f82ed8c 100644 --- a/deploy/crds/crd-issuers.yaml +++ b/deploy/crds/crd-issuers.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: cert-manager.io names: diff --git a/deploy/crds/crd-orders.yaml b/deploy/crds/crd-orders.yaml index 65409c6d4..7528fc2bf 100644 --- a/deploy/crds/crd-orders.yaml +++ b/deploy/crds/crd-orders.yaml @@ -8,8 +8,7 @@ metadata: app: '{{ template "cert-manager.name" . }}' app.kubernetes.io/name: '{{ template "cert-manager.name" . }}' app.kubernetes.io/instance: '{{ .Release.Name }}' - app.kubernetes.io/managed-by: '{{ .Release.Service }}' - helm.sh/chart: '{{ template "cert-manager.chart" . }}' + # {{- include "labels" . | nindent 4 }} spec: group: acme.cert-manager.io names: diff --git a/deploy/manifests/BUILD.bazel b/deploy/manifests/BUILD.bazel index bfd1d8e50..ec81f5f1e 100644 --- a/deploy/manifests/BUILD.bazel +++ b/deploy/manifests/BUILD.bazel @@ -10,35 +10,19 @@ RELEASE_NAME = "cert-manager" RELEASE_NAMESPACE = "cert-manager" -# This genrule removes helm annotations. -genrule( - name = "crds.nohelm.yaml", - srcs = [ - "//deploy/crds", - ], - outs = ["crds.nohelm.out"], - cmd = " ".join([ - "$(location //hack/filter-crd)", - "-variant=no-helm", - "$(location //deploy/crds:crds)", - "> $@", - ]), - tools = [ - "//hack/filter-crd", - ], - visibility = ["//visibility:public"], -) - helm_tmpl( name = "manifests.helm", helm_pkg = "//deploy/charts/cert-manager", release_name = RELEASE_NAME, release_namespace = RELEASE_NAMESPACE, + values = { + "creator": "static", + }, ) licensed_file( name = "cert-manager.crds.yaml", - src = ":crds.nohelm.yaml", + src = "//deploy/crds", ) genrule( @@ -58,28 +42,9 @@ genrule( ]), ) -# This genrule removes helm annotations. -genrule( - name = "unlicensed.nohelm", - srcs = [ - ":unlicensed", - ], - outs = ["unlicensed.nohelm.yaml"], - cmd = " ".join([ - "$(location //hack/filter-crd)", - "-variant=no-helm", - "$(location :unlicensed)", - "> $@", - ]), - tools = [ - "//hack/filter-crd", - ], - visibility = ["//visibility:public"], -) - licensed_file( name = "cert-manager.yaml", - src = "unlicensed.nohelm", + src = ":unlicensed", ) pkg_tar( diff --git a/go.mod b/go.mod index f302e271e..701fde1c5 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,6 @@ require ( golang.org/x/sync v0.0.0-20210220032951-036812b2e83c gomodules.xyz/jsonpatch/v2 v2.2.0 google.golang.org/api v0.20.0 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b helm.sh/helm/v3 v3.6.2 k8s.io/api v0.21.2 k8s.io/apiextensions-apiserver v0.21.2 diff --git a/hack/BUILD.bazel b/hack/BUILD.bazel index 6fee0e38b..bd0507a67 100644 --- a/hack/BUILD.bazel +++ b/hack/BUILD.bazel @@ -275,7 +275,6 @@ filegroup( "//hack/bin:all-srcs", "//hack/boilerplate:all-srcs", "//hack/build:all-srcs", - "//hack/filter-crd:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/hack/filter-crd/BUILD.bazel b/hack/filter-crd/BUILD.bazel deleted file mode 100644 index e004c293c..000000000 --- a/hack/filter-crd/BUILD.bazel +++ /dev/null @@ -1,29 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "github.com/jetstack/cert-manager/hack/filter-crd", - visibility = ["//visibility:private"], - deps = ["@in_gopkg_yaml_v3//:go_default_library"], -) - -go_binary( - name = "filter-crd", - embed = [":go_default_library"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/hack/filter-crd/main.go b/hack/filter-crd/main.go deleted file mode 100644 index c671a8797..000000000 --- a/hack/filter-crd/main.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright 2020 The cert-manager Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package main - -import ( - "flag" - "fmt" - "log" - "os" - "strings" - - "gopkg.in/yaml.v3" -) - -var removeKeys = []string{} - -// This code generates regular cert-manager deployment manifest from -// one created for Helm by removing Helm-specific annotations. -func main() { - loadVariant() - - if len(flag.Args()) < 1 { - log.Fatal("Usage: filter-crd ") - } - - f, err := os.Open(flag.Args()[0]) - if err != nil { - log.Fatal("Error opening file: ", err) - } - - decoder := yaml.NewDecoder(f) - var d map[interface{}]interface{} - output := []string{} - - for decoder.Decode(&d) == nil { - - if len(d) == 0 { - continue - } - - checkChain(d, []string{}) - - fileOut, err := yaml.Marshal(d) - if err != nil { - log.Fatal("Error marshaling output: ", err) - } - - output = append(output, string(fileOut)) - d = map[interface{}]interface{}{} // clean out the old, otherwise the decoder will merge keys - } - - fmt.Println(strings.Join(output, "---\n")) -} - -func checkChain(d map[interface{}]interface{}, chain []string) { - for k, v := range d { - if key, ok := k.(string); ok { - chain = append(chain, key) - - // check if keys need to be removed - for _, removeKey := range removeKeys { - if strings.Join(chain, "/") == removeKey { - delete(d, key) - } - } - - if value, ok := v.(map[interface{}]interface{}); ok { - checkChain(value, chain) - } - if value, ok := v.([]interface{}); ok { - d[k] = checkSliceChain(value, append(chain, "[]")) - } - chain = chain[:len(chain)-1] // we're done with this key, remove it from the chain - } - } -} - -func checkSliceChain(s []interface{}, chain []string) []interface{} { - for _, sliceVal := range s { - if d, ok := sliceVal.(map[interface{}]interface{}); ok { - for k, v := range d { - if key, ok := k.(string); ok { - chain = append(chain, key) - - // check if keys need to be removed - for _, removeKey := range removeKeys { - if strings.Join(chain, "/") == removeKey { - delete(d, key) - } - } - - if value, ok := v.(map[interface{}]interface{}); ok { - checkChain(value, chain) - } - if value, ok := v.([]interface{}); ok { - d[k] = checkSliceChain(value, append(chain, "[]")) - } - - chain = chain[:len(chain)-1] // we're done with this key, remove it from the chain - } - } - } - } - - return s -} - -func loadVariant() { - variant := "" - flag.StringVar(&variant, "variant", "", "variant of remove rules") - flag.Parse() - - // filter-crd is also able to be used without variant which should produce the same output again - // this section used to have multiple variants for legacy releases, this has been removed now - // TODO: ultimately we should find a we should find a way to remove the Helm specific labels - // without using this hack - if variant == "no-helm" { - removeKeys = []string{ - "metadata/labels/app.kubernetes.io/managed-by", - "metadata/labels/helm.sh/chart", - "spec/template/metadata/labels/app.kubernetes.io/managed-by", - "spec/template/metadata/labels/helm.sh/chart", - } - } -}