From 83291bab450a18088aea0171050926349aaa3bf3 Mon Sep 17 00:00:00 2001 From: Shane Starcher Date: Fri, 20 Dec 2019 16:05:33 -0800 Subject: [PATCH] as of apps/v1beta2 spec.template.labels are immutable (#19134) * as of apps/v1beta2 spec.template.labels are immutable. The chart should not exist in these lables as it will always cause upgrade issues Signed-off-by: Shane Starcher * add chart helper Signed-off-by: Shane Starcher * bump correct version Signed-off-by: David J. M. Karlsen Co-authored-by: David J. M. Karlsen --- stable/memcached/Chart.yaml | 20 ++++++++-------- stable/memcached/templates/NOTES.txt | 2 +- stable/memcached/templates/_helpers.tpl | 20 ++++++++++++++++ stable/memcached/templates/pdb.yaml | 11 +++------ .../memcached/templates/servicemonitor.yaml | 8 +++---- stable/memcached/templates/statefulset.yaml | 23 ++++++++----------- stable/memcached/templates/svc.yaml | 8 +++---- 7 files changed, 49 insertions(+), 43 deletions(-) diff --git a/stable/memcached/Chart.yaml b/stable/memcached/Chart.yaml index fc14ce7870..2144326187 100644 --- a/stable/memcached/Chart.yaml +++ b/stable/memcached/Chart.yaml @@ -1,21 +1,21 @@ apiVersion: v1 name: memcached -version: 3.2.1 +version: 3.2.2 appVersion: 1.5.20 description: Free & open source, high-performance, distributed memory object caching system. keywords: -- memcached -- cache + - memcached + - cache home: http://memcached.org/ icon: https://upload.wikimedia.org/wikipedia/en/thumb/2/27/Memcached.svg/1024px-Memcached.svg.png sources: -- https://github.com/docker-library/memcached + - https://github.com/docker-library/memcached maintainers: -- name: gtaylor - email: gtaylor@gc-taylor.com -- name: olemarkus - email: o.with@sportradar.com -- name: kennethaasan - email: k.aasan@sportradar.com + - name: gtaylor + email: gtaylor@gc-taylor.com + - name: olemarkus + email: o.with@sportradar.com + - name: kennethaasan + email: k.aasan@sportradar.com engine: gotpl diff --git a/stable/memcached/templates/NOTES.txt b/stable/memcached/templates/NOTES.txt index 919ef38892..170a8ffc54 100644 --- a/stable/memcached/templates/NOTES.txt +++ b/stable/memcached/templates/NOTES.txt @@ -3,7 +3,7 @@ Memcached can be accessed via port 11211 on the following DNS name from within y If you'd like to test your instance, forward the port locally: - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "memcached.fullname" . }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "memcached.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") kubectl port-forward $POD_NAME 11211 In another tab, attempt to set a key: diff --git a/stable/memcached/templates/_helpers.tpl b/stable/memcached/templates/_helpers.tpl index a7196fa67c..e656332160 100644 --- a/stable/memcached/templates/_helpers.tpl +++ b/stable/memcached/templates/_helpers.tpl @@ -22,3 +22,23 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- end -}} {{- end -}} {{- end -}} + +{{/* +Common labels +*/}} +{{- define "memcached.labels" -}} +app.kubernetes.io/name: {{ include "memcached.name" . }} +helm.sh/chart: {{ include "memcached.chart" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "memcached.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/stable/memcached/templates/pdb.yaml b/stable/memcached/templates/pdb.yaml index a1d1024134..8f072db108 100644 --- a/stable/memcached/templates/pdb.yaml +++ b/stable/memcached/templates/pdb.yaml @@ -7,15 +7,10 @@ metadata: helm.sh/hook: "post-upgrade, post-install" helm.sh/hook-delete-policy: "before-hook-creation" labels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" +{{ include "memcached.labels" . | indent 4 }} spec: selector: matchLabels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} minAvailable: {{ .Values.pdbMinAvailable }} diff --git a/stable/memcached/templates/servicemonitor.yaml b/stable/memcached/templates/servicemonitor.yaml index 398617491a..4a08f0b55f 100644 --- a/stable/memcached/templates/servicemonitor.yaml +++ b/stable/memcached/templates/servicemonitor.yaml @@ -5,14 +5,12 @@ metadata: name: {{ template "memcached.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" +{{ include "memcached.labels" . | indent 4 }} spec: selector: matchLabels: - app: {{ template "memcached.fullname" . }} + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} endpoints: - port: metrics interval: {{ .Values.metrics.serviceMonitor.interval }} diff --git a/stable/memcached/templates/statefulset.yaml b/stable/memcached/templates/statefulset.yaml index 170f43c260..6140509c0e 100644 --- a/stable/memcached/templates/statefulset.yaml +++ b/stable/memcached/templates/statefulset.yaml @@ -4,15 +4,12 @@ metadata: name: {{ template "memcached.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" +{{ include "memcached.labels" . | indent 4 }} spec: selector: matchLabels: - app: {{ template "memcached.fullname" . }} - release: "{{ .Release.Name }}" + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} {{- if eq .Values.kind "StatefulSet" }} serviceName: {{ template "memcached.fullname" . }} {{- end }} @@ -20,10 +17,8 @@ spec: template: metadata: labels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} {{- with .Values.podLabels }} {{ toYaml . | indent 8 }} {{- end}} @@ -43,8 +38,8 @@ spec: - topologyKey: "kubernetes.io/hostname" labelSelector: matchLabels: - app: {{ template "memcached.fullname" . }} - release: {{ .Release.Name | quote }} + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} {{- else if eq .Values.AntiAffinity "soft" }} preferredDuringSchedulingIgnoredDuringExecution: - weight: 5 @@ -52,8 +47,8 @@ spec: topologyKey: "kubernetes.io/hostname" labelSelector: matchLabels: - app: {{ template "memcached.fullname" . }} - release: {{ .Release.Name | quote }} + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{- if .Values.priorityClassName }} priorityClassName: "{{ .Values.priorityClassName }}" diff --git a/stable/memcached/templates/svc.yaml b/stable/memcached/templates/svc.yaml index 0b45f275d4..10efa42500 100644 --- a/stable/memcached/templates/svc.yaml +++ b/stable/memcached/templates/svc.yaml @@ -4,10 +4,7 @@ metadata: name: {{ template "memcached.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app: {{ template "memcached.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" +{{ include "memcached.labels" . | indent 4 }} annotations: {{ toYaml .Values.serviceAnnotations | indent 4 }} spec: @@ -22,4 +19,5 @@ spec: targetPort: metrics {{- end }} selector: - app: {{ template "memcached.fullname" . }} + app.kubernetes.io/name: {{ include "memcached.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }}