feat: 定期実行(CronJob)機能を追加
Helm Chart Release / release-chart (push) Successful in 5s

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:
2026-09-27 16:26:18 +09:00
parent c7397b3c9d
commit 6cd35ce023
6 changed files with 260 additions and 1 deletions
+35
View File
@@ -204,6 +204,41 @@ selenium:
# では不要なため、既定はfalse。
mountHtml: false
# 定期実行タスク(Kubernetes CronJob)
# php-fpmと同じPHPイメージ(image.php)を使い、指定したスケジュールで
# 1回限りのコマンドを実行するCronJobを作成する。複数ジョブを配列で定義できる。
# jobsが空の場合、CronJobは1つも作成されない。
#
# 【マウント/環境変数】/var/wwwにPVCルートをマウントし、externalDatabase/phpEnv/
# extraEnv/extraEnvFrom/SELENIUM_URLはphp-fpmコンテナと同じ内容が渡される。
# html/ 配下の公開コード、または /var/www/<非公開フォルダ> 配下の
# 非公開スクリプト・出力先のどちらも利用できる。
#
# 【Composer/Pythonとの併用について】
# composer.workingDir / python.venvDir が既定の /composer, /venv
# (PVC非マウントの使い捨て領域)のままの場合、CronJobのPodには存在しない
# (php-fpmの長時間稼働Pod内だけに存在する)ため利用できない。
# CronJobからComposer/Pythonの成果物を使いたい場合は、
# composer.workingDir: "/var/www/composer" のように/var/www配下へ変更し、
# PVC上に永続化すること(本体Deployment側で一度セットアップされていれば、
# CronJob側は改めてインストールし直す必要はない)。
#
# 【SMTPとの併用】smtp.enabled: true の場合、CronJobのPodでもmsmtpの導入・
# msmtprc配置・sendmail_path設定を自動で行うため、PHPのmail()関数がそのまま使える。
cron:
jobs: []
# - name: daily-report # 必須。CronJob名の一部に使用(英数字とハイフンのみ、小文字推奨)
# schedule: "0 18 * * *" # 必須。標準cron形式(timeZone省略時はUTC基準)
# command: "php /var/www/html/cron/daily-report.php"
# timeZone: "Asia/Tokyo" # 省略時はUTC(Kubernetes 1.27+で安定サポート)
# concurrencyPolicy: "Forbid" # Allow / Forbid / Replace(既定: Forbid。前回実行の長期化による多重起動を防止)
# restartPolicy: "OnFailure" # OnFailure / Never(既定: OnFailure)
# successfulJobsHistoryLimit: 3
# failedJobsHistoryLimit: 1
# activeDeadlineSeconds: 3600 # 実行タイムアウト(秒)。省略可
# suspend: false # trueにするとコード変更なしでこのジョブだけ一時停止できる
# resources: {} # 未指定時は resources.phpfpm を流用
externalDatabase:
enabled: false
host: mariadb-hostname