diff --git a/README.md b/README.md index 46f5cd2..040828d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,154 @@ -Helmチャート作成用のテンプレートです。 -カスタマイズしてお使いください。 +# YOURLS with NGINX Helm Chart + +このHelmチャートは、YOURLS (Your Own URL Shortener) をNGINXとPHP-FPMの構成でKubernetesにデプロイします。 + +## 特徴 + +- NGINX (1.29.3-alpine-perl) + YOURLS (1.10.2-fpm-alpine) のマルチコンテナPod構成 +- MySQL/MariaDBのサブチャートによるデータベース管理 +- 永続ボリュームによるデータ保存 +- Ingressサポート (オプション) +- セキュアな環境変数管理 +- リソース制限とヘルスチェック + +## 前提条件 + +- Kubernetes 1.19+ +- Helm 3.0+ +- PersistentVolumeプロビジョナーのサポート (永続化を有効にする場合) + +## ディレクトリ構造 + +``` +yourls-nginx/ +├── Chart.yaml +├── values.yaml +├── templates/ +│ ├── _helpers.tpl +│ ├── deployment.yaml +│ ├── service.yaml +│ ├── configmap.yaml +│ ├── secret.yaml +│ ├── pvc.yaml +│ ├── ingress.yaml +│ └── NOTES.txt +└── README.md +``` + +## インストール + +### 1. 依存関係の更新 + +```bash +helm dependency update +``` + +### 2. 基本インストール + +```bash +helm install my-yourls ./yourls-nginx +``` + +### 3. カスタム設定でインストール + +```bash +helm install my-yourls ./yourls-nginx \ + --set yourls.config.site=https://短縮.example.com \ + --set yourls.config.username=admin \ + --set yourls.config.password=SecurePassword123 \ + --set mysql.auth.password=SecureMySQLPassword +``` + +### 4. values.yamlをカスタマイズしてインストール + +```bash +# values.yamlを編集 +vim values.yaml + +# インストール +helm install my-yourls ./yourls-nginx -f values.yaml +``` + +## 設定項目 + +### イメージ設定 + +| パラメータ | 説明 | デフォルト値 | +|-----------|------|-------------| +| `image.nginx.registry` | NGINXイメージのレジストリ | `docker.io` | +| `image.nginx.repository` | NGINXイメージのリポジトリ | `nginx` | +| `image.nginx.tag` | NGINXイメージのタグ | `1.29.3-alpine-perl` | +| `image.yourls.registry` | YOURLSイメージのレジストリ | `docker.io` | +| `image.yourls.repository` | YOURLSイメージのリポジトリ | `yourls` | +| `image.yourls.tag` | YOURLSイメージのタグ | `1.10.2-fpm-alpine` | + +### YOURLS設定 + +| パラメータ | 説明 | デフォルト値 | +|-----------|------|-------------| +| `yourls.config.site` | YOURLSのサイトURL | `https://yourls.example.com` | +| `yourls.config.username` | 管理者ユーザー名 | `admin` | +| `yourls.config.password` | 管理者パスワード | `admin` | +| `yourls.config.cookiekey` | Cookieの暗号化キー | `modify_this_random_string` | +| `yourls.persistence.enabled` | データの永続化 | `true` | +| `yourls.persistence.size` | PVCのサイズ | `1Gi` | + +### MySQL設定 + +| パラメータ | 説明 | デフォルト値 | +|-----------|------|-------------| +| `mysql.enabled` | MySQLサブチャートの有効化 | `true` | +| `mysql.auth.database` | データベース名 | `yourls` | +| `mysql.auth.username` | データベースユーザー名 | `yourls` | +| `mysql.auth.password` | データベースパスワード | `yourls` | +| `mysql.primary.persistence.size` | PVCのサイズ | `8Gi` | + +### Ingress設定 + +| パラメータ | 説明 | デフォルト値 | +|-----------|------|-------------| +| `ingress.enabled` | Ingressの有効化 | `false` | +| `ingress.className` | Ingress class名 | `nginx` | +| `ingress.hosts[0].host` | ホスト名 | `yourls.example.com` | + +## アップグレード + +```bash +helm upgrade my-yourls ./yourls-nginx -f values.yaml +``` + +## アンインストール + +```bash +helm uninstall my-yourls +``` + +## セキュリティに関する注意事項 + +1. **デフォルトパスワードの変更**: インストール後すぐにデフォルトの管理者パスワードを変更してください +2. **COOKIEKEY**: `yourls.config.cookiekey`をランダムな文字列に変更してください +3. **データベースパスワード**: 本番環境では強力なパスワードを設定してください +4. **HTTPS**: 本番環境では必ずIngressでTLS/HTTPSを有効にしてください + +## トラブルシューティング + +### Podの状態確認 + +```bash +kubectl get pods -l app.kubernetes.io/name=yourls-nginx +kubectl logs -c nginx +kubectl logs -c yourls +``` + +### データベース接続の確認 + +```bash +kubectl exec -it -c yourls -- env | grep YOURLS_DB +``` + +### 永続ボリュームの確認 + +```bash +kubectl get pvc +kubectl describe pvc +```