Files
phpfpm/templates/_helpers.tpl
T
claude abb5dba4a1
Helm Chart Release / release-chart (push) Successful in 9s
fix: v8.5.10-bのDeployment.spec.selector変更が既存リリースのアップグレードを壊す不具合を修正
既存のnginx/php-fpm Deploymentのspec.selector.matchLabelsにapp.kubernetes.io/component:webを追加していたが、Deployment.spec.selectorは作成後immutableのためhelm upgradeが'field is immutable'で失敗していた。既存Deploymentのselectorは元の内容(name+instanceのみ)に戻し、Selenium側はcomponentラベルではなくapp.kubernetes.io/name自体を<chart名>-seleniumという別名にする方式(新ヘルパーphpfpm.selenium.name/phpfpm.selenium.selectorLabels)に変更した。componentラベルだけを足す設計だとSeleniumのPodもnginx/php-fpm側Deploymentのselectorに一致してしまいReplicaSetの選択重複を起こすため、name自体をvariantにして構造的に防止する。v8.5.10-bは既存リリースへの適用不可のためスキップし、v8.5.10-c以降を使うこと。
2026-09-26 09:46:56 +09:00

44 lines
1.8 KiB
Smarty
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{{- 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=<release>)とラベルの組が完全に一致しないようにする。
component ラベルだけを足す設計だと、Selenium の Pod も name=phpfpm/instance=<release>
を持つため 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 }}