Files
phpfpm/values.yaml
T
claudeandClaude Fable 5 8f1b050bb2
Helm Chart Release / release-chart (push) Successful in 5s
feat: アップロード最大サイズをvalues.yamlで設定可能に (v8.5.9-b)
大きなファイルのアップロードが失敗する問題(nginxとPHPそれぞれに
別々の上限があり、片方だけ上げても失敗する)に対応するため、
uploadMaxSize パラメータを新設(デフォルト 100m)。

- values.yaml: uploadMaxSize を追加
- templates/configmap.yaml: nginx の client_max_body_size に反映
- templates/deployment.yaml: PHP-FPM起動時に
  /usr/local/etc/php/conf.d/99-uploads.ini を生成し、
  upload_max_filesize / post_max_size に同じ値を設定(常時適用)
- README.md: パラメータ表と設計についての注記を追加

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 23:22:26 +09:00

242 lines
7.4 KiB
YAML
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.
replicaCount: 1
image:
nginx:
registry: docker.io
repository: nginx
tag: "1.31.3-alpine-perl"
pullPolicy: IfNotPresent
php:
registry: docker.io
repository: php
tag: "8.5.9-fpm-alpine3.24"
pullPolicy: IfNotPresent
selenium:
registry: docker.io
repository: selenium/standalone-chromium
tag: "150.0-chromedriver-150.0"
pullPolicy: IfNotPresent
service:
# type: ClusterIP
type: LoadBalancer
port: 80
# アップロード可能な最大サイズ
# nginxの client_max_body_size と、PHPの upload_max_filesize / post_max_size に
# 同じ値を反映する(両方を揃えないと、どちらか一方の上限で失敗するため)
# 単位はnginx/PHP共通でk/m/g(大文字小文字問わず)が使用可能(例: "100m", "1g"
uploadMaxSize: "100m"
ingress:
enabled: false
className: ""
annotations: {}
# {
# acme.cert-manager.io/http01-ingress-class: "nginx",
# cert-manager.io/cluster-issuer: "letsencrypt-issuer",
# nginx.ingress.kubernetes.io/from-to-www-redirect: "true",
# nginx.ingress.kubernetes.io/proxy-body-size: "100m"
# }
hosts:
- host: example.tld
paths:
- path: /
pathType: Prefix
tls: []
# [
# {
# hosts: [ "example.com" ],
# secretName: "example-tls"
# }
# ]
persistence:
enabled: true
accessMode: ReadWriteOnce
size: 1Gi
nginx:
customConfig:
enabled: false
snippet: |-
# リアルIP転送設定(ベアメタル/LoadBalancer環境向け)
forwardRealIP:
# リアルIP取得機能を有効化
enabled: false
# リアルIPを取得するヘッダー名
# LoadBalancer/Ingressによって異なる
# - X-Real-IP: シンプルな1段プロキシ
# - X-Forwarded-For: 多段プロキシ対応(推奨)
header: "X-Forwarded-For"
# 再帰的にリアルIPを検索(多段プロキシ環境で推奨)
recursive: true
# 信頼するプロキシのネットワーク範囲
# ベアメタルクラスターでは、PodネットワークとServiceネットワークを指定
trustedProxies:
- "10.0.0.0/8" # プライベートネットワーク
- "172.16.0.0/12" # プライベートネットワーク
- "192.168.0.0/16" # プライベートネットワーク
# 追加で信頼するプロキシ(環境に応じてカスタマイズ)
additionalTrustedProxies: []
# - "203.0.113.0/24" # 外部LoadBalancerなど
# Composer設定
composer:
# Composerを使用するかどうか
enabled: false
# Composerの導入先ディレクトリ(composer.json / vendor の配置先)
# デフォルトの /composer はWebルート外かつPVCにマウントされない「使い捨て」領域:
# - vendor/ や composer.json がWeb経由で公開されない
# - Pod再起動のたびにクリーンな環境へ再構築されるため、
# 不正アクセスでマルウェアを書き込まれても再起動で消える
#
# 【重要】PHPコードからの autoload.php の読み込み方:
# require_once '/composer/vendor/autoload.php';
#
# PVC上に永続化したい場合は /var/www 配下(例: "/var/www/composer")を指定
# 旧来の動作(Webルート直下に導入)へ戻す場合は "/var/www/html" を指定
workingDir: "/composer"
# Composerでインストールするパッケージ
# packages配列が空の場合、composer.jsonを使用
packages: []
# - "monolog/monolog:^2.0"
# - "guzzlehttp/guzzle:^7.0"
# composer.jsonファイルを使用する場合
useComposerJson: false
# composer.jsonの内容(useComposerJson: trueの場合に使用)
composerJson: |
{
"require": {
"monolog/monolog": "^2.0"
}
}
# composer.lockファイルの内容(オプション、再現性を保証)
composerLock: ""
# Composerのインストールオプション
installOptions: "--no-dev --optimize-autoloader"
# 追加のAPKパッケージ(Composer依存関係のビルドに必要な場合)
additionalApkPackages: []
# - "libpng-dev"
# - "libjpeg-turbo-dev"
# 追加のPHP拡張(docker-php-ext-installで導入)
additionalPhpExtensions: []
# - "gd"
# - "zip"
# Python設定(オプション、PHPからPythonスクリプトを呼び出す用途)
python:
# Pythonを使用するかどうか
enabled: false
# Python仮想環境(venv)の導入先ディレクトリ
# デフォルトの /venv はWebルート外かつPVCにマウントされない「使い捨て」領域:
# - Pod再起動のたびにクリーンな環境へ再構築される(Composerと同じ設計)
#
# 【重要】PHPからのPython呼び出し方(execを利用):
# exec('/venv/bin/python3 /path/to/script.py 2>&1', $output, $exitCode);
#
# PVC上に永続化したい場合は /var/www 配下(例: "/var/www/venv")を指定
venvDir: "/venv"
# pipでインストールするパッケージ
# packages配列が空の場合、requirements.txtを使用
packages: []
# - "requests>=2.31.0"
# - "pillow"
# requirements.txtを使用する場合
useRequirementsTxt: false
# requirements.txtの内容(useRequirementsTxt: trueの場合に使用)
requirementsTxt: |
requests>=2.31.0
# pip installのオプション
installOptions: "--no-cache-dir"
# 追加のAPKパッケージ(ネイティブ拡張のビルドに必要な場合、例: numpy等)
additionalApkPackages: []
# - "gcc"
# - "musl-dev"
# - "python3-dev"
# - "jpeg-dev"
# Selenium設定(レガシー互換性維持)
selenium:
enabled: false
externalDatabase:
enabled: false
host: mariadb-hostname
port: 3306
database: dbname
username: user
password: pass
# SMTP設定(PHPのメール送信用)
smtp:
enabled: false
# SMTPサーバー設定
host: "smtp.example.com"
# プロトコルとポート設定
# - auto: 自動判定(推奨)
# - starttls: STARTTLS(ポート587
# - tls: SSL/TLS(ポート465
protocol: "auto"
# ポート番号(通常は自動判定されるため手動設定は不要)
# protocol: auto の場合は以下の値を参考に
# - 25: SMTP (非暗号化)
# - 587: SMTP + STARTTLS (暗号化)
# - 465: SMTP + SSL/TLS (暗号化)
port: 587
# 認証設定
auth:
enabled: true
username: "smtp-user@example.com"
# password はSecretで管理する
# values-secret.yaml などで以下のように指定:
# smtp:
# auth:
# password: "your-smtp-password"
password: ""
# 送信元アドレス(固定値)
# PHPプログラムで mail() 関数の $additional_parameters で上書き可能
# 例: mail($to, $subject, $body, $headers, "-f user@example.com")
from: "noreply@example.com"
# TLS/SSL設定
tls:
# 証明書検証を有効化(本番環境では true を推奨)
verify: true
# 自己署名証明書を許可する場合(テスト環境のみ)
allowSelfSigned: false
resources: {}
# PHP-FPM コンテナに渡す任意の環境変数
# DB接続情報(externalDatabase)と同様に、values.yamlで設定した値がPHPに環境変数として渡される
# PHPからは $_ENV['KEY'] または getenv('KEY') で取得可能
phpEnv: {}
# API_KEY: "your-api-key"
# STRIPE_SECRET: "sk_live_xxxxxxxxxxxxxxxx"
# REDIS_URL: "redis://localhost:6379"
# SOME_SERVICE_URL: "https://api.example.com"