Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f48879446c |
38
CLAUDE.md
Normal file
38
CLAUDE.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# CLAUDE.md — phpfpm Helm Chart
|
||||||
|
|
||||||
|
## リポジトリ概要
|
||||||
|
|
||||||
|
Raspberry Pi などのベアメタルで稼働することを想定した、Kubernetes 上で動作する Nginx + PHP-FPM の Helm チャート。
|
||||||
|
|
||||||
|
- **Gitea リポジトリ**: `ssh://git@192.168.9.65/helmchart/phpfpm`
|
||||||
|
- **Helm リポジトリ**: `https://git.cafepieters.com/api/packages/helmchart/helm`
|
||||||
|
|
||||||
|
## 実行環境について
|
||||||
|
|
||||||
|
**PHP の実行環境(インタープリタ)はこのリポジトリには含まれていない。**
|
||||||
|
チャートは `docker.io/php:<tag>-fpm-alpine` の公式イメージを Kubernetes 上で起動するものであり、PHP コードそのものは PVC(`/var/www/html`)に別途配置する必要がある。
|
||||||
|
|
||||||
|
## Git コミット情報
|
||||||
|
|
||||||
|
| 項目 | 値 |
|
||||||
|
|------|-----|
|
||||||
|
| 名前 | Claude |
|
||||||
|
| メール | claude@cafepieters.com |
|
||||||
|
| SSH キー | `P:\Claude\.ssh\id_claude` |
|
||||||
|
|
||||||
|
## チャート改修履歴
|
||||||
|
|
||||||
|
### phpEnv — 汎用 PHP 環境変数サポート(2026-04-17)
|
||||||
|
|
||||||
|
`values.yaml` に `phpEnv` セクションを追加し、DB 接続情報と同様に任意のキーと値を PHP-FPM コンテナの環境変数として渡せるようにした。
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
phpEnv:
|
||||||
|
API_KEY: "your-api-key"
|
||||||
|
STRIPE_SECRET: "sk_live_..."
|
||||||
|
REDIS_URL: "redis://localhost:6379"
|
||||||
|
```
|
||||||
|
|
||||||
|
PHP 側では `$_ENV['API_KEY']` または `getenv('API_KEY')` で取得できる。
|
||||||
|
|
||||||
|
**対象ファイル**: `values.yaml`, `templates/deployment.yaml`, `README.md`
|
||||||
46
README.md
46
README.md
@@ -147,6 +147,14 @@ kubectl logs -l app.kubernetes.io/name=phpfpm -c nginx
|
|||||||
| `externalDatabase.username` | ユーザー名 | `user` |
|
| `externalDatabase.username` | ユーザー名 | `user` |
|
||||||
| `externalDatabase.password` | パスワード | `pass` |
|
| `externalDatabase.password` | パスワード | `pass` |
|
||||||
|
|
||||||
|
### PHP 汎用環境変数(phpEnv)
|
||||||
|
|
||||||
|
| パラメータ | 説明 | デフォルト |
|
||||||
|
|-----------|------|-----------|
|
||||||
|
| `phpEnv` | PHP-FPM コンテナに渡す任意の環境変数(キーと値のマップ) | `{}` |
|
||||||
|
|
||||||
|
PHP 側では `$_ENV['KEY']` または `getenv('KEY')` で取得できます。
|
||||||
|
|
||||||
### SMTP設定
|
### SMTP設定
|
||||||
|
|
||||||
| パラメータ | 説明 | デフォルト |
|
| パラメータ | 説明 | デフォルト |
|
||||||
@@ -564,7 +572,43 @@ helm install production-api cafepieters/phpfpm \
|
|||||||
--set externalDatabase.password=$(kubectl get secret db-password -o jsonpath='{.data.password}' | base64 -d)
|
--set externalDatabase.password=$(kubectl get secret db-password -o jsonpath='{.data.password}' | base64 -d)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 例10: SMTP設定によるメール送信
|
### 例10: APIキーなどの任意環境変数を PHP に渡す(phpEnv)
|
||||||
|
|
||||||
|
`phpEnv` を使うと、DB 接続情報と同様に任意のキーと値を PHP-FPM コンテナの環境変数として渡せます。
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# values.yaml
|
||||||
|
phpEnv:
|
||||||
|
API_KEY: "your-api-key"
|
||||||
|
STRIPE_SECRET: "sk_live_xxxxxxxxxxxxxxxx"
|
||||||
|
REDIS_URL: "redis://localhost:6379"
|
||||||
|
EXTERNAL_SERVICE_URL: "https://api.example.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
**PHPでの使用例**:
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
// $_ENV または getenv() で取得
|
||||||
|
$apiKey = getenv('API_KEY');
|
||||||
|
$stripe = $_ENV['STRIPE_SECRET'];
|
||||||
|
$redisUrl = getenv('REDIS_URL');
|
||||||
|
|
||||||
|
echo "API Key: " . $apiKey;
|
||||||
|
```
|
||||||
|
|
||||||
|
**確認コマンド**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 設定された環境変数を確認
|
||||||
|
kubectl exec -it <pod-name> -c php-fpm -- env | grep -E "API_|STRIPE_|REDIS_"
|
||||||
|
```
|
||||||
|
|
||||||
|
**注意事項**:
|
||||||
|
- 機密性の高い値(APIキー、シークレット等)は `--set phpEnv.KEY=value` でデプロイ時に注入するか、Kubernetes の Secret を別途作成して参照することを推奨します。
|
||||||
|
- `phpEnv` の値はすべてプレーンテキストとして環境変数に設定されます(externalDatabase の password のみ Secret 経由)。
|
||||||
|
|
||||||
|
### 例11: SMTP設定によるメール送信
|
||||||
|
|
||||||
PHPアプリケーションからSMTP経由でメール送信を行う設定です。
|
PHPアプリケーションからSMTP経由でメール送信を行う設定です。
|
||||||
|
|
||||||
|
|||||||
@@ -220,6 +220,10 @@ spec:
|
|||||||
name: {{ include "phpfpm.fullname" . }}-db-secret
|
name: {{ include "phpfpm.fullname" . }}-db-secret
|
||||||
key: {{ include "phpfpm.fullname" . }}-db-key
|
key: {{ include "phpfpm.fullname" . }}-db-key
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- range $key, $value := .Values.phpEnv }}
|
||||||
|
- name: {{ $key }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.selenium.enabled }}
|
{{- if .Values.selenium.enabled }}
|
||||||
- name: selenium
|
- name: selenium
|
||||||
image: "{{ .Values.image.selenium.registry }}/{{ .Values.image.selenium.repository }}:{{ .Values.image.selenium.tag }}"
|
image: "{{ .Values.image.selenium.registry }}/{{ .Values.image.selenium.repository }}:{{ .Values.image.selenium.tag }}"
|
||||||
|
|||||||
11
values.yaml
11
values.yaml
@@ -173,4 +173,13 @@ smtp:
|
|||||||
# 自己署名証明書を許可する場合(テスト環境のみ)
|
# 自己署名証明書を許可する場合(テスト環境のみ)
|
||||||
allowSelfSigned: false
|
allowSelfSigned: false
|
||||||
|
|
||||||
resources: {}
|
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"
|
||||||
Reference in New Issue
Block a user