diff --git a/charts/metrics-server/CHANGELOG.md b/charts/metrics-server/CHANGELOG.md index f64f6050e..66e18c17b 100644 --- a/charts/metrics-server/CHANGELOG.md +++ b/charts/metrics-server/CHANGELOG.md @@ -20,6 +20,7 @@ - Add chart options to secure the connection between Metrics Server and the Kubernetes API Server. ([#1288](https://github.com/kubernetes-sigs/metrics-server/pull/1288)) _@mkilchhofer_ - Add `unhealthyPodEvictionPolicy` to the Metrics Server PDB as a user enabled feature. ([#1574](https://github.com/kubernetes-sigs/metrics-server/pull/1574)) @peterabarr +- Add `namespaceOverride` which allows deploying to a namespace other than `.Release.namespace`. ([#1710](https://github.com/kubernetes-sigs/metrics-server/pull/1710)) @TheRealNoob ### Changed diff --git a/charts/metrics-server/templates/_helpers.tpl b/charts/metrics-server/templates/_helpers.tpl index 9b87f118f..2c039e020 100644 --- a/charts/metrics-server/templates/_helpers.tpl +++ b/charts/metrics-server/templates/_helpers.tpl @@ -23,6 +23,17 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Allow the release namespace to be overridden for multi-namespace deployments in combined charts +*/}} +{{- define "metrics-server.namespace" -}} + {{- if .Values.namespaceOverride -}} + {{- .Values.namespaceOverride -}} + {{- else -}} + {{- .Release.Namespace -}} + {{- end -}} +{{- end -}} + {{/* Create chart name and version as used by the chart label. */}} diff --git a/charts/metrics-server/templates/apiservice.yaml b/charts/metrics-server/templates/apiservice.yaml index d1f437042..f652d656d 100644 --- a/charts/metrics-server/templates/apiservice.yaml +++ b/charts/metrics-server/templates/apiservice.yaml @@ -3,9 +3,9 @@ {{- $previous := dict }} {{- if eq .Values.tls.type "helm" }} -{{- $previous = lookup "v1" "Secret" .Release.Namespace (include "metrics-server.fullname" .) }} +{{- $previous = lookup "v1" "Secret" (include "metrics-server.namespace" .) (include "metrics-server.fullname" .) }} {{- $commonName := include "metrics-server.fullname" . }} -{{- $ns := .Release.Namespace }} +{{- $ns := (include "metrics-server.namespace" .) }} {{- $altNames = append $altNames (printf "%s.%s" $commonName $ns) }} {{- $altNames = append $altNames (printf "%s.%s.svc" $commonName $ns) }} {{- $altNames = append $altNames (printf "%s.%s.svc.%s" $commonName $ns .Values.tls.clusterDomain) }} @@ -14,6 +14,7 @@ apiVersion: v1 kind: Secret metadata: name: {{ include "metrics-server.fullname" . }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} type: Opaque @@ -30,7 +31,7 @@ data: {{- $existing := dict }} {{- if .Values.apiService.create }} {{- if and (eq .Values.tls.type "existingSecret") .Values.tls.existingSecret.lookup }} -{{- $existing := lookup "v1" "Secret" .Release.Namespace .Values.tls.existingSecret.name }} +{{- $existing := lookup "v1" "Secret" (include "metrics-server.namespace" .) .Values.tls.existingSecret.name }} {{- end }} apiVersion: apiregistration.k8s.io/v1 kind: APIService @@ -41,7 +42,7 @@ metadata: {{- if or .Values.apiService.annotations .Values.tls.certManager.addInjectorAnnotations }} annotations: {{- if and (eq .Values.tls.type "cert-manager") .Values.tls.certManager.addInjectorAnnotations }} - cert-manager.io/inject-ca-from: {{ .Release.Namespace }}/{{ include "metrics-server.fullname" . }} + cert-manager.io/inject-ca-from: {{ include "metrics-server.namespace" . }}/{{ include "metrics-server.fullname" . }} {{- end }} {{- with .Values.apiService.annotations }} {{- toYaml . | nindent 4 }} @@ -64,7 +65,7 @@ spec: insecureSkipTLSVerify: {{ .Values.apiService.insecureSkipTLSVerify }} service: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} port: {{ .Values.service.port }} version: v1beta1 versionPriority: 100 diff --git a/charts/metrics-server/templates/certificate.yaml b/charts/metrics-server/templates/certificate.yaml index c4de300f8..03c530c35 100644 --- a/charts/metrics-server/templates/certificate.yaml +++ b/charts/metrics-server/templates/certificate.yaml @@ -6,7 +6,7 @@ metadata: annotations: {{- toYaml .Values.additionalAnnotations | nindent 4 }} name: {{ include "metrics-server.fullname" . }}-issuer - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} spec: selfSigned: {} {{- end }} @@ -15,13 +15,13 @@ apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} spec: commonName: {{ include "metrics-server.fullname" . }} dnsNames: - - {{ include "metrics-server.fullname" . }}.{{ .Release.Namespace }} - - {{ include "metrics-server.fullname" . }}.{{ .Release.Namespace }}.svc - - {{ include "metrics-server.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.tls.clusterDomain }} + - {{ include "metrics-server.fullname" . }}.{{ include "metrics-server.namespace" . }} + - {{ include "metrics-server.fullname" . }}.{{ include "metrics-server.namespace" . }}.svc + - {{ include "metrics-server.fullname" . }}.{{ include "metrics-server.namespace" . }}.svc.{{ .Values.tls.clusterDomain }} secretName: {{ include "metrics-server.fullname" . }} usages: - server auth diff --git a/charts/metrics-server/templates/clusterrolebinding-auth-delegator.yaml b/charts/metrics-server/templates/clusterrolebinding-auth-delegator.yaml index 826c3b7b3..06c125f37 100644 --- a/charts/metrics-server/templates/clusterrolebinding-auth-delegator.yaml +++ b/charts/metrics-server/templates/clusterrolebinding-auth-delegator.yaml @@ -12,5 +12,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} {{- end -}} diff --git a/charts/metrics-server/templates/clusterrolebinding-nanny.yaml b/charts/metrics-server/templates/clusterrolebinding-nanny.yaml index 43738ccbf..6101d3f2a 100644 --- a/charts/metrics-server/templates/clusterrolebinding-nanny.yaml +++ b/charts/metrics-server/templates/clusterrolebinding-nanny.yaml @@ -13,6 +13,6 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} {{- end -}} {{- end -}} diff --git a/charts/metrics-server/templates/clusterrolebinding.yaml b/charts/metrics-server/templates/clusterrolebinding.yaml index 512cb6511..53abd4e46 100644 --- a/charts/metrics-server/templates/clusterrolebinding.yaml +++ b/charts/metrics-server/templates/clusterrolebinding.yaml @@ -12,5 +12,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} {{- end -}} diff --git a/charts/metrics-server/templates/configmaps-nanny.yaml b/charts/metrics-server/templates/configmaps-nanny.yaml index c25005ec2..52f856d1a 100644 --- a/charts/metrics-server/templates/configmaps-nanny.yaml +++ b/charts/metrics-server/templates/configmaps-nanny.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ include "metrics-server.addonResizer.configMap" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} data: diff --git a/charts/metrics-server/templates/deployment.yaml b/charts/metrics-server/templates/deployment.yaml index d7535b876..fea685fee 100644 --- a/charts/metrics-server/templates/deployment.yaml +++ b/charts/metrics-server/templates/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} {{- with .Values.deploymentAnnotations }} diff --git a/charts/metrics-server/templates/pdb.yaml b/charts/metrics-server/templates/pdb.yaml index de7689d4a..4ab5df673 100644 --- a/charts/metrics-server/templates/pdb.yaml +++ b/charts/metrics-server/templates/pdb.yaml @@ -3,7 +3,7 @@ apiVersion: {{ include "metrics-server.pdb.apiVersion" . }} kind: PodDisruptionBudget metadata: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} spec: diff --git a/charts/metrics-server/templates/role-nanny.yaml b/charts/metrics-server/templates/role-nanny.yaml index f0bf8fceb..d490a8747 100644 --- a/charts/metrics-server/templates/role-nanny.yaml +++ b/charts/metrics-server/templates/role-nanny.yaml @@ -4,7 +4,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ include "metrics-server.addonResizer.role" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} rules: diff --git a/charts/metrics-server/templates/rolebinding-nanny.yaml b/charts/metrics-server/templates/rolebinding-nanny.yaml index 228c0cfec..419b9270e 100644 --- a/charts/metrics-server/templates/rolebinding-nanny.yaml +++ b/charts/metrics-server/templates/rolebinding-nanny.yaml @@ -4,7 +4,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: {{ printf "%s-nanny" (include "metrics-server.fullname" .) }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} roleRef: @@ -14,6 +14,6 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} {{- end -}} {{- end -}} diff --git a/charts/metrics-server/templates/rolebinding.yaml b/charts/metrics-server/templates/rolebinding.yaml index 3fda74337..5fe3e39a8 100644 --- a/charts/metrics-server/templates/rolebinding.yaml +++ b/charts/metrics-server/templates/rolebinding.yaml @@ -13,5 +13,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ include "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} {{- end -}} diff --git a/charts/metrics-server/templates/service.yaml b/charts/metrics-server/templates/service.yaml index 35318a48b..690128839 100644 --- a/charts/metrics-server/templates/service.yaml +++ b/charts/metrics-server/templates/service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} {{- with .Values.service.labels -}} diff --git a/charts/metrics-server/templates/serviceaccount.yaml b/charts/metrics-server/templates/serviceaccount.yaml index 80ef6996f..a8f9fda72 100644 --- a/charts/metrics-server/templates/serviceaccount.yaml +++ b/charts/metrics-server/templates/serviceaccount.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ template "metrics-server.serviceAccountName" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} {{- with .Values.serviceAccount.annotations }} diff --git a/charts/metrics-server/templates/servicemonitor.yaml b/charts/metrics-server/templates/servicemonitor.yaml index 079318d20..6bede95ea 100644 --- a/charts/metrics-server/templates/servicemonitor.yaml +++ b/charts/metrics-server/templates/servicemonitor.yaml @@ -3,7 +3,7 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ include "metrics-server.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ include "metrics-server.namespace" . }} labels: {{- include "metrics-server.labels" . | nindent 4 }} {{- with .Values.serviceMonitor.additionalLabels }} @@ -13,7 +13,7 @@ spec: jobLabel: app.kubernetes.io/instance namespaceSelector: matchNames: - - {{ .Release.Namespace }} + - {{ include "metrics-server.namespace" . }} selector: matchLabels: {{- include "metrics-server.selectorLabels" . | nindent 6 }} diff --git a/charts/metrics-server/values.yaml b/charts/metrics-server/values.yaml index 209403570..de999cc7d 100644 --- a/charts/metrics-server/values.yaml +++ b/charts/metrics-server/values.yaml @@ -13,6 +13,7 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" +namespaceOverride: "" serviceAccount: # Specifies whether a service account should be created