Helm Chart Release / release-chart (push) Successful in 6s
- service.externalTrafficPolicy: Local を追加し、kube-proxyのSNATによる 実IPアドレス消失を解消(ベアメタル/MetalLB構成向け) - wp-config.php内の危険な二重REMOTE_ADDR上書き処理を削除 (Nginx real_ipモジュールの信頼境界を迂回できるIP詐称の余地があった) - smtp.* 設定を追加し、msmtp経由の外部SMTPリレー送信に対応 (helmchart/phpfpm と同一の実装パターンを踏襲) - README.md / CLAUDE.md を更新
209 lines
6.3 KiB
YAML
209 lines
6.3 KiB
YAML
# デフォルト値設定
|
||
replicaCount: 2
|
||
|
||
image:
|
||
nginx:
|
||
registry: docker.io
|
||
repository: nginx
|
||
tag: "1.31.3-alpine-perl"
|
||
pullPolicy: IfNotPresent
|
||
wordpress:
|
||
registry: docker.io
|
||
repository: wordpress
|
||
tag: "7.0.2-php8.5-fpm-alpine"
|
||
pullPolicy: IfNotPresent
|
||
|
||
# WordPress設定
|
||
wordpress:
|
||
# データベース設定
|
||
dbHost: mysql-service
|
||
dbName: wordpress
|
||
dbUser: wordpress
|
||
# 本番環境ではSecretを使用してください
|
||
dbPassword: "changeme"
|
||
tablePrefix: wp_
|
||
|
||
# WordPress初期設定
|
||
siteTitle: "My WordPress Site"
|
||
adminUser: "admin"
|
||
adminPassword: "" # 空の場合はランダム生成
|
||
adminEmail: "admin@example.com"
|
||
|
||
# WordPress Multisite設定
|
||
multisite:
|
||
enabled: false
|
||
# サブドメイン型: true, サブディレクトリ型: false
|
||
subdomains: false
|
||
# Multisiteのベースドメイン(サブドメイン型の場合必須)
|
||
domain: "example.com"
|
||
|
||
# ads.txt設定
|
||
adsTxt:
|
||
enabled: false
|
||
content: |
|
||
# ads.txt content
|
||
# google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
|
||
|
||
# SMTP設定(wp_mail()/PHPのmail()関数によるメール送信用)
|
||
# コンテナ内にはメール送信を行うMTA(sendmail相当)が存在しないため、
|
||
# デフォルトのままではWordPressからのメール(パスワードリセット、通知等)は送信できません。
|
||
# 外部SMTPリレー(Gmail、SendGrid、自前のメールサーバー等)経由で送信する場合に有効化してください。
|
||
smtp:
|
||
enabled: false
|
||
|
||
# SMTPサーバー設定
|
||
host: "smtp.example.com"
|
||
|
||
# プロトコルとポート設定
|
||
# - auto: 自動判定(推奨)
|
||
# - starttls: STARTTLS(ポート587)
|
||
# - tls: SSL/TLS(ポート465)
|
||
protocol: "auto"
|
||
port: 587
|
||
|
||
# 認証設定
|
||
auth:
|
||
enabled: true
|
||
username: "smtp-user@example.com"
|
||
# password はSecretで管理する
|
||
# helm install ... --set smtp.auth.password='your-password' 等で指定
|
||
password: ""
|
||
|
||
# 送信元アドレス(固定値。wp-config.phpやプラグイン側の指定より優先されます)
|
||
from: "noreply@example.com"
|
||
|
||
# TLS/SSL設定
|
||
tls:
|
||
# 証明書検証を有効化(本番環境では true を推奨)
|
||
verify: true
|
||
# 自己署名証明書を許可する場合(テスト環境のみ)
|
||
allowSelfSigned: false
|
||
|
||
nginx:
|
||
# Ingress ControllerやCDN(Cloudflare等)、外部LB等、X-Forwarded-Forヘッダーを
|
||
# 付与するリバースプロキシを前段に置く場合にのみ有効にしてください。
|
||
# 本チャートのデフォルト構成(Service直下にPodがぶら下がるベアメタル/MetalLB構成)では
|
||
# X-Forwarded-For を付与する層が存在しないため、この設定を有効にしても効果はありません。
|
||
# その場合は下記の service.externalTrafficPolicy: Local を使用してください。
|
||
forwardRealIP:
|
||
enabled: false
|
||
# 信頼できるプロキシのIPレンジを追加してください
|
||
trustedProxies:
|
||
- 10.0.0.0/8
|
||
- 172.16.0.0/12
|
||
- 192.168.0.0/16
|
||
# CloudflareやAWS ALB等を使っている場合は以下のIPレンジも追加してください
|
||
# - 173.245.48.0/20
|
||
# - 103.21.244.0/22
|
||
|
||
extraConfig: |
|
||
|
||
# Service設定
|
||
service:
|
||
type: LoadBalancer
|
||
# type: ClusterIP
|
||
port: 80
|
||
targetPort: 80
|
||
# ベアメタルクラスター(MetalLB等)でクライアントの実IPを取得するための設定。
|
||
# kube-proxyはデフォルト(Cluster)だと送信元IPをノードIPにSNATしてしまうため、
|
||
# Local にすることでSNATを回避し、Nginxの$remote_addrに実IPがそのまま渡ります。
|
||
# 注意: Local にすると、Podが存在しないノードへのアクセスは失敗するため、
|
||
# DaemonSetまたは全ノードにPodが分散する構成を推奨します。
|
||
# LoadBalancer / NodePort でのみ有効(ClusterIPでは無視されます)。
|
||
externalTrafficPolicy: Local
|
||
|
||
# Ingress設定
|
||
ingress:
|
||
enabled: false
|
||
className: nginx
|
||
annotations: {}
|
||
# コメントを外すだけで有効化できる設定例
|
||
# cert-manager.io/cluster-issuer: "letsencrypt-issuer",
|
||
# acme.cert-manager.io/http01-ingress-class: "nginx",
|
||
# nginx.ingress.kubernetes.io/ssl-redirect: "true",
|
||
# nginx.ingress.kubernetes.io/force-ssl-redirect: "true",
|
||
# nginx.ingress.kubernetes.io/from-to-www-redirect: "true",
|
||
# nginx.ingress.kubernetes.io/proxy-body-size: "100m",
|
||
# nginx.ingress.kubernetes.io/proxy-buffer-size: "16k",
|
||
# IP取得用(Nginx Ingress Controllerの場合)
|
||
# nginx.ingress.kubernetes.io/use-forwarded-headers: "true",
|
||
# nginx.ingress.kubernetes.io/compute-full-forwarded-for: "true",
|
||
# IP取得用(AWS ALBの場合)
|
||
# alb.ingress.kubernetes.io/target-type: ip,
|
||
# IP取得用(GKE Ingressの場合)
|
||
# cloud.google.com/neg: '{"ingress": true}',
|
||
hostname: wordpress.example.com
|
||
path: /
|
||
pathType: Prefix
|
||
# TLS設定(true にするだけで hostname を使用して自動設定)
|
||
tls: false
|
||
# tlsを有効にすると自動的に以下が設定されます:
|
||
# - hosts: [hostname]
|
||
# - secretName: {hostname}-tls
|
||
|
||
# 追加のホスト設定
|
||
extraHosts: []
|
||
# - name: blog.example.com
|
||
# path: /
|
||
|
||
# 追加のTLS設定
|
||
extraTls: []
|
||
# - hosts:
|
||
# - blog.example.com
|
||
# secretName: blog-example-com-tls
|
||
|
||
# PersistentVolume設定(wp-contentのみ永続化 - bitnami方式)
|
||
persistence:
|
||
enabled: true
|
||
storageClass: ""
|
||
accessMode: ReadWriteOnce
|
||
size: 10Gi
|
||
# 注意: WordPress本体はemptyDirに配置(使い捨て)
|
||
# wp-contentディレクトリのみがPVCに永続化されます
|
||
|
||
# リソース設定
|
||
resources:
|
||
nginx:
|
||
limits:
|
||
cpu: 500m
|
||
memory: 512Mi
|
||
requests:
|
||
cpu: 250m
|
||
memory: 256Mi
|
||
wordpress:
|
||
limits:
|
||
cpu: 1000m
|
||
memory: 1Gi
|
||
requests:
|
||
cpu: 500m
|
||
memory: 512Mi
|
||
|
||
# Health Check
|
||
healthCheck:
|
||
enabled: true
|
||
livenessProbe:
|
||
httpGet:
|
||
path: /
|
||
port: 80
|
||
initialDelaySeconds: 60
|
||
periodSeconds: 10
|
||
timeoutSeconds: 5
|
||
failureThreshold: 6
|
||
readinessProbe:
|
||
httpGet:
|
||
path: /
|
||
port: 80
|
||
initialDelaySeconds: 30
|
||
periodSeconds: 5
|
||
timeoutSeconds: 3
|
||
failureThreshold: 3
|
||
|
||
# Node Selector
|
||
nodeSelector: {}
|
||
|
||
# Tolerations
|
||
tolerations: []
|
||
|
||
# Affinity
|
||
affinity: {}
|