managing-infra について
Kubernetes、Terraform、CI/CD、コンテナを扱うチーム向けのインフラパターンスキルです。一般的な作業に使うツールの選定を支援し、セキュリティの既定値、ワークフローパターン、テンプレート、運用上の注意点をまとめています。
主な機能
- 01インフラ作業のツール選定
- 02Kubernetes のセキュリティ既定値
- 03GitHub Actions の CI/CD パターン
- 04リファレンスとすぐ使えるテンプレート
- 05各種ツールの運用上の注意点
活用シーン
- 01Kustomize と Helm の選択
- 02Terraform によるクラウドリソース変更の計画
- 03CI とマルチアーキテクチャリリースの構築
- 04Kubernetes ワークロードのセキュリティ確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill managing-infraインストール後、Claude Code で/managing-infraを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
DOCKERFILE.mdGITHUB-ACTIONS.mdKUBERNETES.mdMAKEFILE.mdTERRAFORM.mdtemplates/ci.ymldeployment.yamlrelease.yml詳細
インフラストラクチャのパターン
用途に応じた選び方
| ツール | 用途 |
|---|---|
| Raw K8s YAML | シンプルなデプロイ、一時的なリソース |
| Kustomize | 環境ごとの差分、テンプレートを使わないオーバーレイ |
| Helm | 複雑なアプリ、サードパーティ製チャート、高度なテンプレート処理 |
| Terraform | クラウドリソース、インフラストラクチャのライフサイクル |
| GitHub Actions | CI/CD、自動テスト、リリース |
| Makefile | ビルドの自動化、自己文書化されたターゲット |
| Dockerfile | コンテナのビルド、マルチステージ、マルチアーキテクチャ |
クイック選択ガイド
Kustomize を選ぶ場合:環境ごとの差分がシンプルで、マニフェストの読みやすさを重視し、YAML にパッチを適用する場合 Helm を選ぶ場合:複雑なテンプレート処理、サードパーティ製チャート、リリース管理が必要な場合
K8s のセキュリティに関するデフォルト設定
すべてのワークロードで、root 以外のユーザー、読み取り専用ファイルシステム、権限昇格の禁止、ケーパビリティの削除、ネットワークポリシーを設定します。
GitHub Actions のパターン
- CI ワークフロー:PR でリント、テスト、コンパイルを実行します(x86 と ARM の両方で実行)。
- リリースワークフロー:タグに基づいてマルチアーキテクチャの Docker ビルドを実行します(ネイティブ ARM ランナー)。
- アクションは SHA で固定し、権限は最小限にします。
参考資料
- KUBERNETES.md - K8s リソースのパターン
- TERRAFORM.md - Terraform モジュールのパターン
- GITHUB-ACTIONS.md - CI/CD ワークフローのパターン
- MAKEFILE.md - ビルド自動化のパターン
- DOCKERFILE.md - コンテナビルドのパターン
- templates/ - すぐに使えるテンプレート
コマンド
kubectl apply -k ./ # Apply kustomize
helm upgrade --install NAME . # Install/upgrade chart
terraform plan && terraform apply
注意点
- Terraform のステートロックの競合:デフォルトのロックタイムアウトは 10 分です。タイムアウトを延長しても、ロック保持プロセスがハングしている場合は解決しません。プロセスが停止していることを確認してから、強制ロック解除してください。
- アンインストール済みで、パージされていないリリースへの Helm リリース名の再利用:インストール時に「already exists」エラーが発生します。
--no-hooksと明示的なパージを使用するか、名前を再利用しないでください。 - 該当するものがない Kustomize パッチは、差分が空でもエラーなく処理されます:パッチを追加するたびに、
kustomize buildで確認してください。 - 計算値に対する Terraform の
for_each:適用時までリソース数が確定せず、プラン間でリソースが不必要に再作成されることがあります。 - 値のスキーマを変更した後の
helm upgrade --install:一致しなくなったフィールドが、気付かないうちに削除されることがあります。値ファイルだけでなく、レンダリング後の出力を差分確認してください。 kubectl apply --server-sideとクライアントサイドの競合:両方を使った場合、クライアントサイドの last-applied-config が、エラーを出さずにサーバーサイドの管理フィールドを覆い隠すことがあります。
コメント
Markdown 対応