mcpField
M
managing-infra

managing-infra

github.com/julianobarbosaクラウド・DevOps14114 回インストール2 日前に更新
リポジトリ

managing-infra について

Kubernetes、Terraform、CI/CD、コンテナを扱うチーム向けのインフラパターンスキルです。一般的な作業に使うツールの選定を支援し、セキュリティの既定値、ワークフローパターン、テンプレート、運用上の注意点をまとめています。

主な機能

  1. 01インフラ作業のツール選定
  2. 02Kubernetes のセキュリティ既定値
  3. 03GitHub Actions の CI/CD パターン
  4. 04リファレンスとすぐ使えるテンプレート
  5. 05各種ツールの運用上の注意点

活用シーン

  1. 01Kustomize と Helm の選択
  2. 02Terraform によるクラウドリソース変更の計画
  3. 03CI とマルチアーキテクチャリリースの構築
  4. 04Kubernetes ワークロードのセキュリティ確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill managing-infra

インストール後、Claude Code で/managing-infraを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

DOCKERFILE.md
GITHUB-ACTIONS.md
KUBERNETES.md
MAKEFILE.md
TERRAFORM.md
templates/
ci.yml
deployment.yaml
release.yml

詳細

インフラストラクチャのパターン

用途に応じた選び方

ツール用途
Raw K8s YAMLシンプルなデプロイ、一時的なリソース
Kustomize環境ごとの差分、テンプレートを使わないオーバーレイ
Helm複雑なアプリ、サードパーティ製チャート、高度なテンプレート処理
Terraformクラウドリソース、インフラストラクチャのライフサイクル
GitHub ActionsCI/CD、自動テスト、リリース
Makefileビルドの自動化、自己文書化されたターゲット
Dockerfileコンテナのビルド、マルチステージ、マルチアーキテクチャ

クイック選択ガイド

Kustomize を選ぶ場合:環境ごとの差分がシンプルで、マニフェストの読みやすさを重視し、YAML にパッチを適用する場合 Helm を選ぶ場合:複雑なテンプレート処理、サードパーティ製チャート、リリース管理が必要な場合

K8s のセキュリティに関するデフォルト設定

すべてのワークロードで、root 以外のユーザー、読み取り専用ファイルシステム、権限昇格の禁止、ケーパビリティの削除、ネットワークポリシーを設定します。

GitHub Actions のパターン

  • CI ワークフロー:PR でリント、テスト、コンパイルを実行します(x86 と ARM の両方で実行)。
  • リリースワークフロー:タグに基づいてマルチアーキテクチャの Docker ビルドを実行します(ネイティブ ARM ランナー)。
  • アクションは SHA で固定し、権限は最小限にします。

参考資料

コマンド

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 が、エラーを出さずにサーバーサイドの管理フィールドを覆い隠すことがあります。

コメント