Offshore Task List (PR = Task Ticket) / オフショア作業チケット一覧
Scope / スコープ
EN: AWS production deployment for the Portal API (search-only mode). CI/CD is build-only skeleton; no auto-deploy in this phase.
JP: Portal API の AWS 本番デプロイ(検索専用モード)。CI/CD はビルドのみのスケルトンで、自動デプロイは本フェーズ対象外。
PR-01 — Finalize prod Overlay (No Cron) / 本番オーバーレイ確定(Cron なし)
Goal / 目的
EN: Production runs search-only; Cron resources excluded or suspended.
JP: 本番は検索専用で稼働。Cron リソースは出力から除外または停止。
Files / 変更ファイル
EN: Modify k8s/overlays/prod/kustomization.yaml and ensure only API/Chroma/Ingress render.
JP: k8s/overlays/prod/kustomization.yaml を修正し、API/Chroma/Ingress のみがレンダリングされる状態に。
Definition of Done (DoD) / 受け入れ基準
EN: kubectl kustomize k8s/overlays/prod | grep -i cron shows nothing; kubectl apply -k works.
JP: kubectl kustomize k8s/overlays/prod | grep -i cron の結果が空で、kubectl apply -k が成功する。
PR-02 — Production Secrets Wiring (DB / Auth) / 本番シークレット配線(DB/認証)
Goal / 目的
EN: Provide DB and Auth secrets (examples + references).
JP: DB と認証のシークレット(サンプルと参照設定)を提供。
Files / 変更ファイル
EN: Add secret-api-db.example.yaml, secret-api-auth.example.yaml, update patch-api-env-from-secret.yaml.
JP: secret-api-db.example.yaml と secret-api-auth.example.yaml を追加し、patch-api-env-from-secret.yaml を更新。
Definition of Done (DoD) / 受け入れ基準
EN: With real secrets, /health/ready = 200.
JP: 実シークレット適用時に /health/ready = 200 を返す。
PR-03 — RDS Connectivity via ExternalName / ExternalName による RDS 接続
Goal / 目的
EN: postgres Service points to RDS endpoint.
JP: postgres Service が RDS エンドポイントを参照。
Files / 変更ファイル
EN: Add external-postgres.yaml (Service: ExternalName).
JP: external-postgres.yaml を追加(Service: ExternalName)。
Definition of Done (DoD) / 受け入れ基準
EN: API connects to postgres:5432.
JP: API から postgres:5432 へ接続できる。
PR-04 — Portal API Prod Env (JWKS / Read-Only Stance) / 本番環境設定(JWKS/Read-Only 方針)
Goal / 目的
EN: APP_ENV=prod, AUTH_MODE=jwks, with graceful shutdown.
JP: APP_ENV=prod、AUTH_MODE=jwks を設定し、Graceful Shutdown を有効化。
Files / 変更ファイル
EN: Update patch-api-env-from-secret.yaml, patch-api-prestop.yaml.
JP: patch-api-env-from-secret.yaml と patch-api-prestop.yaml を更新。
Definition of Done (DoD) / 受け入れ基準
EN: Invalid token → 401/403; /health/ready = 200.
JP: 不正トークンで 401/403、/health/ready = 200。
PR-05 — ALB Ingress (TLS + Hostname) / ALB Ingress(TLS+ホスト名)
Goal / 目的
EN: Public HTTPS access via AWS Load Balancer Controller + ACM.
JP: AWS Load Balancer Controller と ACM により、HTTPS で公開アクセス。
Files / 変更ファイル
EN: Add ingress-portal-api.yaml.
JP: ingress-portal-api.yaml を追加。
Definition of Done (DoD) / 受け入れ基準
EN: HTTPS host returns 200 for /health/ready.
JP: HTTPS ホストの /health/ready が 200 を返す。
PR-06 — NetworkPolicies (Least Privilege) / NetworkPolicy(最小権限)
Goal / 目的
EN: Restrict ingress to API from ALB; restrict egress to Chroma + Postgres only.
JP: API への Ingress を ALB のみに制限し、Egress は Chroma と Postgres のみに制限。
Files / 変更ファイル
EN: Add netpol-allow-api.yaml, netpol-api-egress.yaml.
JP: netpol-allow-api.yaml と netpol-api-egress.yaml を追加。
Definition of Done (DoD) / 受け入れ基準
EN: Non-whitelisted egress blocked; required paths allowed.
JP: 許可リスト外の Egress は遮断、必要経路は通過。
PR-07 — Chroma (Search-Only, Stable Resources) / Chroma(検索専用・安定稼働)
Goal / 目的
EN: Ensure Chroma resources (PVC/probes) are stable.
JP: Chroma のリソース(PVC/Probes)を安定化。
Files / 変更ファイル
EN: Add/modify patch-chroma-resources.yaml.
JP: patch-chroma-resources.yaml を追加/修正。
Definition of Done (DoD) / 受け入れ基準
EN: /api/v1/heartbeat healthy.
JP: /api/v1/heartbeat が正常。
PR-08 — Ingress Smoke Script / Ingress スモークスクリプト
Goal / 目的
EN: One-command smoke checks with Bearer token.
JP: Bearer トークン付きで 1 コマンドのスモークチェックを実行可能に。
Files / 変更ファイル
EN: Add scripts/smoke_prod.sh; doc in docs/RUNBOOK-PROD.md.
JP: scripts/smoke_prod.sh を追加し、docs/RUNBOOK-PROD.md に手順を記載。
Definition of Done (DoD) / 受け入れ基準
EN: Script shows expected 200/401/403.
JP: スクリプト出力が想定どおり 200/401/403 を示す。
PR-09 — RUNBOOK-PROD (Ops) / 運用ランブック(本番)
Goal / 目的
EN: Document deploy, rollback, secret rotation, kill switches.
JP: デプロイ、ロールバック、シークレットローテーション、キルスイッチの手順を文書化。
Files / 変更ファイル
EN: Add docs/RUNBOOK-PROD.md.
JP: docs/RUNBOOK-PROD.md を追加。
Definition of Done (DoD) / 受け入れ基準
EN: Another engineer can operate prod following the doc alone.
JP: 別のエンジニアがこの文書だけで本番運用できる。
PR-10 — CI Skeleton (Build Only) / CI スケルトン(ビルドのみ)
Goal / 目的
EN: Build images on tag push; no deploy.
JP: タグ push をトリガにイメージをビルド(デプロイなし)。
Files / 変更ファイル
EN: Add .github/workflows/build.yml.
JP: .github/workflows/build.yml を追加。
Definition of Done (DoD) / 受け入れ基準
EN: Tag push publishes image to GHCR.
JP: タグ push で GHCR にイメージが公開される。
PR-11 — PROD_PARAMS (Environment Matrix) / 本番パラメータ表
Goal / 目的
EN: Capture all prod parameters in one place.
JP: 本番の全パラメータを 1 箇所に集約。
Files / 変更ファイル
EN: Add docs/PROD_PARAMS.md (Region, VPC, Subnets, RDS endpoint, ACM ARN, Host, JWKS URI, Audience/Scope, PVC sizes).
JP: docs/PROD_PARAMS.md を追加(Region, VPC, Subnets, RDS endpoint, ACM ARN, Host, JWKS URI, Audience/Scope, PVC sizes など)。
Definition of Done (DoD) / 受け入れ基準
EN: Parameter sheet complete.
JP: パラメータ表が網羅的に埋まっている。
PR-12 — (Optional) SecurityContext Hardening / (任意)SecurityContext 強化
Goal / 目的
EN: runAsNonRoot, readOnlyRootFilesystem, etc.
JP: runAsNonRoot、readOnlyRootFilesystem などの適用。
Files / 変更ファイル
EN: Add patch-api-security.yaml.
JP: patch-api-security.yaml を追加。
Definition of Done (DoD) / 受け入れ基準
EN: No basic pod security warnings.
JP: Pod セキュリティの基本的な警告が出ない。
コメントを残す