cron.jobs(配列)にジョブを定義すると、php-fpmと同じPHPイメージを使う Kubernetes CronJobをジョブごとに生成する。 - templates/cronjob.yaml(新規): PVCルートを/var/wwwにマウントし、 externalDatabase/phpEnv/extraEnv/extraEnvFrom/SELENIUM_URLをphp-fpm コンテナと同じ内容で注入。smtp.enabled時はmsmtpも自動導入。 - templates/_helpers.tpl: phpfpm.cron.name/selectorLabelsを追加。 Selenium分離と同じ理由で、生成PodのラベルをDeploymentのselectorと 衝突しないバリアント名(<chart>-cron)にする。 - values.yaml: cronセクションを追加(既定は空配列で無効)。 - README.md: パラメータ表と使用例、Composer/Pythonとの併用時の注意点 (デフォルトの使い捨て領域はCronJobから見えないため、永続化パスへの 変更が必要)を追加。 templates/deployment.yamlは変更していない(既存Deploymentへの影響なし)。 手動リリース 8.5.10-e。
This commit is contained in:
@@ -41,3 +41,23 @@ name を variant にすることで、この重複を構造的に防止する。
|
||||
app.kubernetes.io/name: {{ include "phpfpm.selenium.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Cron(CronJob)用の名前・ラベル(v8.5.10-e)。
|
||||
|
||||
Selenium と同じ理由で、CronJobが生成するPodのラベルにも nginx/php-fpm の
|
||||
Deployment と同じ app.kubernetes.io/name("phpfpm")+ instance を持たせては
|
||||
いけない。同じ組み合わせだとDeploymentのReplicaSetコントローラーが
|
||||
matchLabels(name=phpfpm, instance=<release>)に一致するPodとしてCronJob由来
|
||||
のPodまで対象に含めてしまい、replicaCountとの差分調整でCronJobのPodを
|
||||
意図せず削除する等の事故につながる。name自体をvariant("phpfpm-cron")に
|
||||
することで構造的に衝突を防ぐ。
|
||||
*/}}
|
||||
{{- define "phpfpm.cron.name" -}}
|
||||
{{- printf "%s-cron" (include "phpfpm.name" .) | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end }}
|
||||
|
||||
{{- define "phpfpm.cron.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "phpfpm.cron.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
Reference in New Issue
Block a user