Helm Chart Release / release-chart (push) Successful in 5s
uploadMaxSizeでnginx/PHPのアップロード上限は連動していたが、 ingress.enabled: true の場合、ingress-nginx側にも独自の上限 (デフォルト1MB)があり、そこで先に弾かれるケースが残っていた。 templates/ingress.yaml で、ingress.annotationsに nginx.ingress.kubernetes.io/proxy-body-sizeが明示指定されていない 場合、uploadMaxSizeの値を自動的に付与するようにした(merge使用、 明示指定があればそちらを優先)。 これでuploadMaxSize 1箇所の設定でnginx・PHP・Ingressの3箇所すべてに 反映される。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
246 lines
7.8 KiB
YAML
246 lines
7.8 KiB
YAML
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
|
||
|
||
# アップロード可能な最大サイズ
|
||
# 以下3箇所に同じ値を反映する(どれか一つでも小さいと、そこで上限に達して失敗するため):
|
||
# - nginx(Podコンテナ内)の client_max_body_size
|
||
# - PHPの upload_max_filesize / post_max_size
|
||
# - ingress.enabled: true の場合、ingress-nginxの nginx.ingress.kubernetes.io/proxy-body-size
|
||
# 単位はnginx/PHP共通でk/m/g(大文字小文字問わず)が使用可能(例: "100m", "1g")
|
||
uploadMaxSize: "100m"
|
||
|
||
ingress:
|
||
enabled: false
|
||
className: ""
|
||
# nginx.ingress.kubernetes.io/proxy-body-size は uploadMaxSize の値が自動的に付与されるため
|
||
# 明示的に指定する必要はない(Ingress側の上限もnginx/PHPと揃う)
|
||
# 別の値にしたい場合や別コントローラーを使う場合は、ここに明示指定すれば上書きされる
|
||
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"
|
||
# }
|
||
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" |