{{- define "phpfpm.name" -}} {{- .Chart.Name | trunc 63 | trimSuffix "-" -}} {{- end }} {{- define "phpfpm.fullname" -}} {{- if .Release.Name -}} {{- printf "%s-%s" .Release.Name (include "phpfpm.name" .) | trunc 63 | trimSuffix "-" -}} {{- else -}} {{- include "phpfpm.name" . -}} {{- end }} {{- end }} {{- define "phpfpm.labels" -}} app.kubernetes.io/name: {{ include "phpfpm.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{- define "phpfpm.selectorLabels" -}} app.kubernetes.io/name: {{ include "phpfpm.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* Selenium 用の名前・セレクタラベル(v8.5.10-b)。 nginx/php-fpm の既存 Deployment は spec.selector が作成後 immutable なため、 そちらの selector には手を加えられない("field is immutable" でアップグレードが 失敗する)。そのため Selenium 側は app.kubernetes.io/name 自体を variant ("phpfpm-selenium")にして、nginx/php-fpm の Deployment の selector (name=phpfpm, instance=)とラベルの組が完全に一致しないようにする。 component ラベルだけを足す設計だと、Selenium の Pod も name=phpfpm/instance= を持つため nginx/php-fpm 側 Deployment の selector にも一致してしまい、 2つの Deployment(ReplicaSet)が同じ Pod 集合を取り合う selector 重複を起こす。 name を variant にすることで、この重複を構造的に防止する。 */}} {{- define "phpfpm.selenium.name" -}} {{- printf "%s-selenium" (include "phpfpm.name" .) | trunc 63 | trimSuffix "-" -}} {{- end }} {{- define "phpfpm.selenium.selectorLabels" -}} app.kubernetes.io/name: {{ include "phpfpm.selenium.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }}