Agent Skills by ALSEL
汎用DevOps・インフラ⭐ リポ 2品質スコア 64/100

cpln

複数のクラウド(AWS、GCP、Azure、プライベートクラウド)にコンテナ化されたワークロードをデプロイ・管理したり、マルチクラウドインフラを構成したり、シークレットやアクセス制御を管理したり、認証情報不要のクラウドアクセスの為にアイデンティティをセットアップしたり、GitOpsで自動デプロイを実行したり、AIツールをControl PlaneのMCP Serverを経由で接続する際に使用します。

description の原文を見る

Use when deploying and managing containerized workloads across multiple clouds (AWS, GCP, Azure, private), configuring multi-cloud infrastructure, managing secrets and access control, setting up identities for credential-free cloud access, automating deployments with GitOps, or connecting AI tools to Control Plane via the MCP Server.

SKILL.md 本文

Control Plane スキル

Control Plane とは

Control Plane は、AWS、GCP、Azure、プライベートクラウド全体でコンテナ化されたワークロードを統一されたインターフェイスからデプロイおよび管理するハイブリッドプラットフォームです。クラウドプロバイダーの違いを一貫性のある API、CLI (cpln)、Console UI、Terraform プロバイダー、Pulumi プロバイダー、Kubernetes Operator、MCP Server の背後に抽象化します。PCI DSS Level 1、SOC 2 Type II、HIPAA 適格認定取得済みです。

主要なエントリーポイント:

このスキルを使用する場合

マルチクラウド GVC 全体でワークロードをデプロイする場合、インフラストラクチャを構成する場合 (ロケーション、ネットワーク、ファイアウォール、ドメイン)、シークレット + アイデンティティ + ポリシーアクセスチェーンを管理する場合、cpln apply / CI/CD で自動化する場合、cpln logs / exec / connect / port-forward でデバッグする場合、イメージをビルドしてプッシュする場合、Kubernetes / Docker Compose / Helm から移行する場合、mk8s / BYOK / Kubernetes Operator を使用する場合、または MCP Server 経由で AI ツールを接続する場合。

リソースモデル

Org (Organization) — トップレベルの分離境界、グローバルに一意な名前
├── Principals: ユーザー、グループ、サービスアカウント           (org スコープ)
├── Governance: ポリシー、クォータ、監査コンテキスト          (org スコープ)
├── Infrastructure: クラウドアカウント、エージェント、ロケーション、    (org スコープ)
│                   IP Sets、mk8s クラスター
├── Assets: シークレット (12 タイプ)、イメージ、ドメイン           (org スコープ)
└── GVC (Global Virtual Cloud) — デプロイメント環境
    ├── Workloads (1+ コンテナ、4 タイプ)             (GVC スコープ)
    ├── Identities (クラウドアクセス、シークレット、ネットワーク)      (GVC スコープ)
    └── Volume Sets (永続ストレージ)                  (GVC スコープ)

スコープルール:

  • Org スコープ: シークレット、ドメイン、クラウドアカウント、エージェント、ポリシー、イメージ、グループ、サービスアカウント、IP Sets、mk8s
  • GVC スコープ: Workloads、Identities、Volume Sets
  • ワークロードは親 org からシークレットを参照できますが、ボリュームセットとアイデンティティは自身の GVC からのみ参照できます
  • ドメインは org スコープですが、一度に正確に 1 つの GVC に関連付けられます
  • プルシークレットは GVC レベル で構成されます (ワークロードごとではなく) — Docker、ECR、GCP シークレットタイプのみプルシークレットとして機能します
  • 1 ワークロードあたり 1 つのアイデンティティですが、1 つのアイデンティティは同じ GVC 内の複数のワークロードで共有できます。アイデンティティは GVC 全体で共有できません — それを必要とする各 GVC で同じ仕様でアイデンティティを再作成してください。

プラットフォーム機能

機能説明使用時期
Workloadsサーバーレス、標準、cron、ステートフルとしてコンテナをデプロイ主要デプロイメント単位 — ほとんどのユーザーはここから開始します
Template Catalog30+ の本番対応テンプレート (Postgres、Redis、Kafka、MongoDB など)データベース、キュー、または一般的なサービスが必要 — ゼロから構築する代わりにインストール
Managed Kubernetes (mk8s)AWS、GCP、Azure、Hetzner など全体で Kubernetes クラスターをプロビジョニング完全な Kubernetes クラスターが必要 (チームは mk8s クラスターにデプロイ)
CPLN Platform (BYOK)既存の Kubernetes クラスターを Control Plane ロケーションとして登録既に Kubernetes があります — 上に Control Plane ワークロード管理が必要
Kubernetes OperatorControl Plane リソースを Kubernetes CRD として管理 (ArgoCD/GitOps)Control Plane インフラの Kubernetes ネイティブ GitOps が必要
Agentsプライベートネットワークへのセキュアトンネル (VPC、オンプレミス、データセンター)ワークロードがファイアウォール背後のプライベート TCP エンドポイントに到達する必要
External Loggingログを S3、CloudWatch、Coralogix、Datadog、Logz.io、Stackdriver にシップコンプライアンス、長期保持、または外部ログ分析
Domains自動 TLS、ジオ-ルーティング、パスベースルーティング搭載のカスタムドメイン独自ドメインでワークロードを公開 (CNAME または NS デリゲーション)
MCP Serverインフラをプログラムで管理する AI エージェント向け 80+ ツールAI 支援インフラストラクチャ管理

ガードレール — まず読んでください

本番環境の障害を防ぐ 8 つのルール。スキップするとデータロス、クロステナント変更、サイレント実行時障害、トークン予算の浪費につながります。

1. 状態を変更する前に Org / プロファイル / GVC を確認

cpln の状態を変更するコマンド (createdeleteupdateapplypatcheditadd-bindingremove-bindingadd-keyforce-redeploymentcloneimage build --push、シークレット create-* バリアント、add-locationremove-location) を実行する前に、ターゲット orgプロファイル、および (該当する場合) GVC が明確に確立されている必要があります。いずれかが不足している場合は、停止して質問してください。アクティブな CLI プロファイルにサイレントにフォールバックしないでください。

コンテキストは次の場合にのみ確立されます: ユーザーが現在のリクエストで名前を付けた、この会話の前に名前を付けた、この セッションで MCP set_context を呼び出した、または明示的な「デフォルトプロファイルを使用」命令を与えた場合。それ以外の場合は質問してください:

このコマンドを実行する前に、ターゲットを確認したいです。アクティブなプロファイルは <name> (org: <org>、GVC: <gvc>) のようです。それを使用すべき、または別の org / プロファイル / GVC を使用すべき?

読み取り専用 コマンド (getqueryauditlogspermissionsaccess-reporteventlog) の場合、デフォルト化は許容可能です — ただし ターゲットを最初にアナウンス: "プロファイル <name> → org <org>、GVC <gvc> を使用中…"

2. シークレットアクセス — 3 つの必須ステップ

ワークロードはすべての 3 つなしでシークレットにアクセスできません:

  1. Identity 作成および割り当て: cpln workload update WL --gvc GVC --set spec.identityLink=//identity/ID
  2. Policy identity に reveal を付与: cpln policy create --name P --target-kind secret --resource SECRET その後 cpln policy add-binding P --permission reveal --identity //gvc/GVC/identity/ID
  3. Reference 環境変数またはボリューム内: cpln://secret/NAME.payload (opaque)、cpln://secret/NAME.KEY (dictionary)、.username/.password (userpass)、.cert/.key (tls) など

いずれか 1 つが不足 = サイレント実行時障害。#1 サポート問題。

3. イメージ参照

  • 決して 外部イメージを docker.io/ で接頭辞を付けないでください。docker.io/library/nginx:latest ではなく nginx:latest を使用してください。
  • Org 独自のレジストリ ワークロード仕様内: //image/NAME:TAG。ホスト名 <own-org>.registry.cpln.iodocker login/push にのみ使用され、ワークロード仕様内では決して使用されません。
  • クロス org プル: <other-org>.registry.cpln.io/NAME:TAG
  • イメージは linux/amd64 である必要があります。cpln image build --push はこれをデフォルトとします。間違ったプラットフォーム = 実行時に exec format error
  • ワークロード仕様の port はコンテナが実際にリッスンしているポートと一致する必要があります。そうでないとヘルスチェックが失敗します。

4. ファイアウォールデフォルト — すべてが拒否されます

  • 内部 (ワークロード間): inboundAllowType: none — すべてブロック。same-gvcsame-org、または workload-list に設定します。
  • 外部インバウンド: 無効。CIDR を追加 (0.0.0.0/0 ですべて) または cpln workload create--public を使用します。
  • 外部アウトバウンド: 無効。CIDR またはホスト名を追加します。ホスト名エグレスはポート 80、443、445 に制限されます。CIDR ルールはホスト名より優先されます。ブロックルールはに許可より優先されます。

ファイアウォール構成なしのワークロードは、データベースに到達できず、ユーザーに到達できず、ピアと通信できません。常に明示的に構成します。

5. ワークロードタイプ制約 (作成後は不変)

機能serverlessstandardstatefulcron
ゼロへのスケールrps または concurrencyKEDA のみKEDA のみいいえ
ポート正確に 1 コンテナ × 1 ポート (必須)0 以上0 以上公開してはいけません
Capacity AIはい (デフォルト)はい (デフォルト)常に無効N/A
永続ボリュームいいえいいえはい (ボリュームセット)いいえ
replicaDirect LBいいえいいえこのタイプのみいいえ
spec.job禁止禁止禁止必須
マルチメトリック オートスケーリングいいえはい (cpu/memory/rps)はい (cpu/memory/rps)N/A
maxConcurrency使用無視無視N/A
timeoutSeconds 最大60036003600N/A
ワークロードあたりのコンテナ最大数8888
  • ワークロードタイプは不変です。 タイプを変更するには削除 + 再作成が必要です。まず状態をキャプチャします: cpln workload get NAME --gvc GVC -o yaml-slim > NAME.bak.yaml
  • Capacity AI は次と互換性がありません: ステートフル、CPU オートスケーリング、マルチメトリックオートスケーリング、GPU。
  • Cron はオーバーライドなしですべての GVC ロケーションにデプロイします。spec.jobschedule 必須。プローブ、オートスケーリング、timeoutSecondscapacityAIdebug は無視されます。
  • ワークロード名 最大 49 文字。-headless で終わることはできません。
  • コンテナ名予約、プローブ XOR ルール、GPU 制約、および完全な検証については、マニフェストを作成する際に /reference/workload/general を取得してください。

6. 破壊的な操作 — 爆発半径で確認

破壊的な操作の前に、構造化されたサマリーを提示し、明示的な確認を待機してください — 権限がオートアプルーブする場合でも。権限モードはツール-プロンプト UX です。これは会話レベルのセーフティで、独立しています。

  • 常に破壊的: 任意の cpln <resource> deletegvc delete-all-workloadsvolumeset shrinkvolumeset snapshot deletevolumeset volume delete
  • サービス中断: policy remove-binding (実行時アクセスが壊れる)、serviceaccount remove-key (CI/CD が壊れる)、group remove-member (ユーザーがロックアウト)、gvc remove-location (再デプロイメントを強制)。
  • 暗黙的な破壊 (不変性の罠): org 削除は不可能。ワークロード type/name は不変 (名前変更は cpln workload clone OLD --name NEW --gvc GVC 経由)。ボリュームセット fileSystemType および performanceClass は不変。cpln apply 名前変更リソースの新しいリソースを作成 (古いものは cpln delete --file ... で削除する必要があります)。

削除 + 再作成が唯一の道の場合: (1) -o yaml-slim で状態をキャプチャ、(2) 同じ名前を再利用して URL/内部 DNS/ドメインルート/ポリシー targetLinks/アイデンティティバインディングを保持、(3) 確認 — ユーザーは 技術 ではなく 目標 を承認しました。

必須の確認形式:

破壊的な操作を実行する必要があります:

  • アクション: <正確なコマンド>
  • 影響を受け: <name + kind> in <org> / <gvc>
  • 爆発半径: <トラフィック、進行中のリクエスト、ダウンストリーム呼び出し元、ディスク上のデータ、CI/CD パイプライン、パブリック URL>
  • 可逆性: <X 経由で可逆 / 可逆でない>
  • 軽減: <<file>.bak.yaml としてマニフェストをキャプチャ; 同じ名前を再利用します; など>

進行を確認してください。

明確なはいとは異なる何か = 停止してください。複数の破壊的なタスクを 1 つの事前質問にバンドルします。破壊的と非破壊的をバンドルしてスリップスルーしないでください。

7. 制約の競合 — 表面化、サイレント デフォルトなし

互換性制約がユーザーの意図をブロックする場合 (ステートフルへの並行性オートスケーリング、cron へのゼロへのスケール、shared ボリュームセット上のスナップショット、CPU メトリックを持つ Capacity AI)、それを表面化し、代替案を提示します。disabled / none / 1 replica / manual にサイレント ダウングレードしないでください — これらはしばしば過小プロビジョニング バグまたは SPOF を付属させます。

必須形式:

<resource> を構成する制約にぶつかりました:

  • あなたが求めたもの: <intent>
  • 制約: <正確な制限>
  • 代替案:
    • <value><なに、トレードオフ>
    • <value><...>
  • 私の推奨: <option> 理由: <プロジェクト根拠の推論>

どちらをお選びですか? または上流の選択を再検討してください (例: ワークロードタイプ)?

保守的なデフォルトが正しい場合でも (例: シングルライター SQLite の場合の min=max=1)、推論で明示的に言ってください。時々正しい答えは以前の決定から撤退することです。

8. 長時間実行操作 — AI レイヤーからポーリングしない

ステートフル プロビジョニング、大規模イメージプッシュ、mk8s 作成、GVC ロケーション追加 — 長時間。AI レイヤーからステータスをポーリングしないでください。 各ポーリングは会話コンテキストを再読み込みし、ゼロ診断値のために数千トークンを焼きます。

デフォルト待機: cpln apply --file <m>.yaml --ready。CLI の内部でブロック。AI トークン ≈ 0。

ギャップ: --ready は終末コンテナエラー (ゼロ以外の終了、イメージプル エラー、クラッシュループ、致命的なスタートアップ) で高速失敗しません。最初のデプロイが正しく構成されていない場合、プレーンな --ready はコンテナが死亡している間、その完全なタイムアウトを通じて座っています。

パタース-ウィンドウ ペイシェンス セーフティネット を使用 (バックグラウンドで --ready を実行、期待される待機を睡眠、30 秒ごとに確認された終末エラーを監視) の場合: 最初のデプロイ、新しくビルドされたイメージ、ワークロードタイプ移行、最近の障害後の再適用。プレーンな --ready は問題ありません: イメージタグバンプ、env 更新、健康なワークロード上の小さな構成調整。完全な bash パターン: /guides/cpln-apply

その他の待機:

  • アプリケーション層: curl --retry 30 --retry-delay 5 --retry-connrefused -fsS https://<endpoint>/healthz (cpln workload get WL --gvc GVC -o json | jq -r .status.endpoint 経由でエンドポイントを検索)
  • --ready なし操作 (force-redeployment、post-update): timeout 600 bash -c 'until cpln workload get N --gvc G -o json | jq -e ".status.healthCheck.status == true" >/dev/null 2>&1; do sleep 10; done'

ハード ルール — FAILED / killed / timeout の場合: 診断、再待機なし。 1 度に取得: cpln workload get-deployments N --gvc G (失敗したデプロイメント + 正確なエラー)、cpln logs '{gvc="G", workload="N"}' --org ORG stderr について、マニフェストを再読み込みします。修正、セーフティネット付きで再適用。READY 後、最大 1 つ のフォローアップ サニティチェック。

90 秒以上の待機については事前に期待値を設定: サーバーレス/標準初回デプロイ 30–90 秒 · ステートフル初回デプロイ 2–5 分 · force-redeployment 30–90 秒 · ボリュームセット拡張 30–60 秒 · 大規模イメージプッシュ (1GB+) 1–5 分 · コールドパス GVC + 初回ワークロード 1–3 分 · mk8s クラスター 10–30+ 分 (バックグラウンドまたはスキップ)。

ワークロードタイプ — 1 つを選択

必要使用
アイドル時にゼロスケールすべき Web アプリserverless
常に実行、複数ポート、または非 HTTP である必要があるサービスstandard
スケジュール上のバックグラウンドジョブcron
永続ストレージが必要なデータベースまたはステートフルアプリstateful

オートスケーリング戦略

戦略ServerlessStandardStatefulCron
同時リクエストはいいいえいいえいいえ
1 秒あたりのリクエストはいはいはいいいえ
CPU 利用率はいはいはいいいえ
メモリ利用率はいはいはいいいえ
リクエスト レイテンシーいいえはいはいいいえ
マルチメトリック (cpu/memory/rps)いいえはいはいいいえ
KEDA (カスタムメトリック)いいえはいはいいいえ

ゼロへのスケールrps または concurrency を持つサーバーレスのみです。標準とステートフルはKEDA のみを通じてゼロにスケールできます。Cron はゼロにスケールできません。その他すべてのタイプは minScale ≥ 1 が必要です。

戦略最適用途
同時リクエストリクエスト駆動型サービス、変動する並行性を持つ API
1 秒あたりのリクエスト予測可能なパターンを持つ高スループット API
CPU 利用率計算集約型ワークロード (画像処理、ML 推論)
メモリ利用率メモリ集約型アプリケーション (キャッシュ、データ処理)
リクエスト レイテンシーレイテンシー感応型サービス (リアルタイム、インタラクティブ)
KEDAイベント駆動型スケーリング (キュー深度、外部メトリック)
無効固定レプリカ数、手動でスケーリング

ワークロードリソース検証 — 知っておくべき制約

制約ルール
CPU / メモリ最小値25 ミリコア / 32 MiB
メモリ対 CPU 比memory(MiB) / cpu(millicores) ≤ 8 (タグ cpln/relaxMemoryToCpuRatio で 32 に緩和)
port vs ports同じコンテナ上で相互排他; ポート番号はすべてのコンテナで一意
ボリューム最大 15、一意のパス、パスは別のパスの親になることはできません
target 上限cpu/memory メトリクスで ≤ 100。KEDA では許可されません
metric/multi/targetmetricmulti は相互排他。targetmulti と相互排他
replicaDirect LBステートフルのみ

デフォルト: type=serverlesscpu=50mmemory=128Miautoscaling.target=95minScale=1maxScale=5scaleToZeroDelay=300sterminationGracePeriodSeconds=90firewallConfig.internal.inboundAllowType=none

完全な検証 (ステートフル最小/最大比、GPU 制約 — nvidia t4/a10g、コンテナ名予約、プローブ XOR ルール、ヘルスチェック タイミング範囲) については、/reference/workload/general を取得してください。

シークレット — タイプと参照構文

12 タイプ: opaquedictionaryuserpassawsgcpazure-sdkazure-connectordockerecrtlskeypairnats-accountcpln secret create は存在しませんcreate-opaquecreate-aws など を使用してください。

環境変数 / ボリュームの参照構文:

タイプフォーム
opaquecpln://secret/NAME.payload
dictionarycpln://secret/NAME.KEY (1 env var/key、またはディレクトリとしてマウント)
userpasscpln://secret/NAME.username / .password
tlscpln://secret/NAME.cert / .key
keypaircpln://secret/NAME.publicKey / .privateKey
awscpln://secret/NAME.accessKey / .secretKey / .roleArn
gcpcpln://secret/NAME (通常はボリュームマウント — JSON ファイル)

注入方法: env var (cpln://secret/NAME...)、ボリュームマウント (大規模/マルチファイル/GCP JSON)、または GVC レベルのプルシークレット (spec.pullSecretLinksdockerecrgcp タイプのみ)。

CLI 基礎

セットアップ

cpln login                                                  # インタラクティブ ブラウザ ログイン
cpln profile update default --org my-org --gvc my-gvc       # デフォルト org/GVC を設定

CI/CD の場合、プラットフォームのシークレット管理を通じて環境変数を設定します (--token は決して使用しません。ログにリークします):

変数目的
CPLN_TOKENサービスアカウントキー (cpln serviceaccount add-key)
CPLN_ORGデフォルト組織
CPLN_GVCデフォルト GVC
CPLN_PROFILEプロファイルオーバーライド

コマンドごとにオーバーライド: --org--gvc--profile

検証ルール

cpln コマンドを記憶から記述しないでください。 cpln <command> --help または MCP cpln_suggest ツールで検証してください。コマンドがリソースコマンドマップにない場合は、存在しないと仮定してください。完全な規約: https://docs.controlplane.com/cli-conventions.md

コマンド構造

リソースコマンド: cpln <resource> <action> [REF] [--flags]。スタンドアロン コマンドはこのパターンを破ります: cpln applycpln deletecpln logscpln port-forwardcpln cpcpln convertcpln login

共有フラグ (ほぼすべてのコマンド)

  • コンテキスト: --profile--org--gvc
  • 出力: --output/-o (textjsonyamljson-slimyaml-slimtfcrdnames)、--max (デフォルト 50)
  • リクエスト: --token--endpoint--insecure/-k
  • デバッグ: --verbose/-v--debug/-d

ラウンドトリップの場合は常に -o yaml-slim / json-slim を使用してください。 プレーン yaml/json は サーバー側フィールド (statusidcreatedlastModifiedlinks) を含めます。これらは cpln apply を破ります。スリムバリアントはそれらをストリップします。

リソース コマンド マップ

リソーススコープCRUD非標準サブコマンド
workloadgvc完全connectexecruncron (get/run/start/stop)、replica (get/stop)、force-redeploymentget-deploymentsopenstartstop
gvcorg完全add-locationremove-locationdelete-all-workloads
secretorg汎用 create なし12 タイプ固有の create コマンド、reveal
policyorg完全add-bindingremove-binding
identitygvc完全
volumesetgvc完全expandshrinksnapshot (create/delete/get/restore)、volume (delete/get)
domainorg完全 (clone なし)
cloudaccountorg汎用 create なしcreate-awscreate-azurecreate-gcpcreate-ngs
imageorgcreate なしbuildcopydocker-login
agentorg完全 (clone なし)infomanifestup
grouporg完全add-memberremove-member
ipsetorg完全add-locationremove-locationupdate-location
serviceaccountorg完全 (update なし)add-keyremove-key
mk8sorgcreate なしdashboardjoinkubeconfig
userorgcreate なしinvite
orgdelete なし (不変)
profilelocalget、delete、updateloginset-defaulttoken
helmgvcgetinstallupgradetemplaterollbackuninstalllisthistory
stackgvcdeploymanifestrm
locationorg部分的installuninstall
auditctxorg完全 (delete なし)
quotaorgget、edit、patch

標準 CRUD 動詞

get (引数なし = すべてを一覧表示 — list サブコマンドはありません)、get REFcreate --name NAMEdelete REF...edit REFpatch REF --file FILEupdate REF --set PROP=VALclone REF --name NEWaudit [REF]querytag REF --tag K=V。また: access-report REFeventlog REFpermissions

存在しないコマンド

誤り正解
cpln secret createcpln secret create-opaquecreate-aws など (12 タイプ固有バリアント)
cpln <resource> listcpln <resource> get (引数なし = すべてを一覧表示)
cpln mk8s createcpln apply --file mk8s-manifest.yaml
cpln logs --followcpln logs --tail (または -t または -f)
cpln workload logcpln logs '{gvc="GVC", workload="WORKLOAD"}'
cpln cloudaccount createcpln cloudaccount create-awscreate-azurecreate-gcpcreate-ngs
cpln apply (no --file)cpln apply --file manifest.yaml
cpln workload update --identity Xcpln workload update REF --set spec.identityLink=//identity/X
cpln secret update --data '{}'cpln secret edit REF または cpln apply --file ...
cpln gvc update --location LOCcpln gvc update REF --set 'spec.staticPlacement.locationLinks+=//location/LOC'
cpln image push / cpln image pullcpln image build --push (build+push) または docker push (after cpln image docker-login)
cpln image tag バージョンタグ用Docker バージョンタグを直接 cpln image build --name NAME:TAG 経由で使用します。cpln image tag は存在しますが、メタデータ key=value タグを管理します (Docker バージョンタグではなく)。
cpln workload create --type stateful/croncpln apply --file workload.yaml — CLI フラグは serverless/standard create のみをサポート

高価値コマンド形式

リソースコマンドマップ + 標準 CRUD 動詞がほとんどのケースをカバーします。これらは記憶する価値のある構文に敏感なものです:

タスクコマンド
バンドルの適用 / 削除cpln apply --file ./manifests/ --gvc GVC --ready  ·  cpln delete --file manifest.yaml
ワークロード作成 (cron/stateful via apply、CLI フラグではなく)cpln workload create --name APP --gvc GVC --image IMAGE --port PORT
Opaque シークレット作成cpln secret create-opaque --name SECRET --file data.txt (stdin の場合は --file - を使用)
バインド権限cpln policy add-binding POLICY --permission reveal --identity //gvc/GVC/identity/ID
ワークロードにアイデンティティを割り当てcpln workload update WL --gvc GVC --set spec.identityLink=//identity/ID
ログを表示cpln logs '{gvc="GVC", workload="WL"}' --org ORG --tail
コンテナで実行 (-- 区切り文字に注意)cpln workload exec WL --gvc GVC -- COMMAND
ポート フォーワードcpln port-forward WL 8080:8080 --gvc GVC
再適用用にエクスポートcpln workload get WL --gvc GVC -o yaml-slim > wl.yaml
名前変更 (get/edit/apply よりも推奨)cpln workload clone OLD --name NEW --gvc GVC
イメージをビルドしてプッシュcpln image build --name IMAGE:TAG --push
K8s マニフェストを変換cpln convert --file k8s-manifest.yaml

マニフェスト パターン

リソース形式

すべてのリソースが spec を使用しません。トップレベルフィールドはタイプごとに異なります: workload/gvc/identity/volumeset は spec を使用します。secret は type + data を使用します。policy は targetKind + targetLinks + bindings を使用します。

kind: workload
name: my-app
spec:
  type: serverless
  containers:
    - name: main
      image: nginx:latest                              # 正確な ref、docker.io/ 接頭辞なし
      port: 80
      memory: 256Mi
      cpu: 250m
      env:
        - name: DB_PASSWORD
          value: cpln://secret/db-password.payload     # opaque → .payload
  defaultOptions:
    autoscaling: { minScale: 1, maxScale: 5, metric: rps, target: 100 }
  firewallConfig:
    external:
      inboundAllowCIDR: ["0.0.0.0/0"]
      outboundAllowCIDR: ["0.0.0.0/0"]
---
kind: secret
name: db-password
type: opaque
data: { encoding: plain, payload: my-secret-value }
---
kind: policy
name: secret-access
targetKind: secret                                     # 単数形、小文字
targetLinks: [//secret/db-password]
bindings:
  - permissions: [reveal]
    principalLinks: [//gvc/my-gvc/identity/my-app-identity]    # GVC スコープ プリンシパル リンク
---
kind: identity
name: my-app-identity

リソースごとの完全な検証ルール (ワークロード検証、GPU 制約、アイデンティティ XOR ルール、ドメイン DNS モード、ボリュームセット オートスケーリング) については、このスキルの終わりのリソース セクションの対応するリファレンス ページを取得してください。

マルチリソース適用 — 単一呼び出し、多くではなく

cpln apply は、ディレクトリまたはマルチドキュメント YAML が与えられると、リソース間依存関係グラフを歩みます。複数の apply 呼び出しに分割すると、apply が解決するために構築された順序付けの問題を再導入します (まだ適用されていないシークレットを参照するワークロードなど)。

  • 単一 GVC バンドル (最も一般的): --gvc <gvc> を 1 回渡します。バンドル内のすべての GVC スコープリソースに GVC を入力しますね(インラインで宣言していない場合)。
  • リソースごと GVC 宣言 (リソースが複数の GVC にまたがる、またはマニフェストが自己記述的である必要がある): 各 GVC スコープリソースの トップレベル gvc: フィールドを宣言します (kind/name と同じレベル)。--gvc なしで適用; 適用は各リソースを宣言された GVC にルーティングします。

Org スコープ リソース (secretpolicydomainimageagentgroupcloudaccountserviceaccountipsetmk8s) は gvc フィールド/フラグを無視します。単一リソース適用は初期マルチリソース デプロイではなく、1 つの既存リソースへのインクリメンタル更新用です。

ワークフロー

ワークロードにシークレット アクセスを許可

3 ステップ ルール (ガードレール #2) をコマンドとして:

# 1. シークレット (ファイルベース; stdin の場合は --file -)
cpln secret create-opaque --name db-password --file ./db-password.txt

# 2. アイデンティティ、ワークロードに割り当て
cpln identity create --name my-app-identity --gvc my-gvc
cpln workload update my-app --gvc my-gvc \
  --set spec.identityLink=//identity/my-app-identity

# 3. reveal でのポリシー、次にシークレット参照を挿入。
#    <container-name> を実際のコンテナで置き換えます (via -o yaml-slim で検索)。
#    Opaque は .payload を使用; dictionary は .KEY; userpass は .username/.password; tls .cert/.key。
cpln policy create --name secret-access --target-kind secret --resource db-password
cpln policy add-binding secret-access \
  --permission reveal \
  --identity //gvc/my-gvc/identity/my-app-identity
cpln workload update my-app --gvc my-gvc \
  --set spec.containers.<container-name>.env.DB_PASSWORD.value=cpln://secret/db-password.payload

バンドルの場合: 4 つすべてのリソースを 1 つのマルチドキュメント ファイルに入れて cpln apply --file bundle.yaml --gvc my-gvc --ready を実行します。Apply は依存関係を解決します。

GitOps with cpln apply

cpln gvc get my-gvc -o yaml-slim > manifests/gvc.yaml         # 常に yaml-slim
cpln workload get my-app --gvc my-gvc -o yaml-slim > manifests/workload.yaml
# 編集、コミット、次に CI:
cpln apply --file ./manifests/ --gvc my-gvc --ready           # 1 呼び出し; apply は順序を解決

失敗したワークロードをデバッグ

cpln workload get-deployments my-app --gvc my-gvc                  # 正確な障害理由
cpln logs '{gvc="my-gvc", workload="my-app"}' --org my-org --tail  # stderr/stdout
cpln workload exec my-app --gvc my-gvc -- env | grep CPLN          # 挿入された env をチェック
cpln workload connect my-app --gvc my-gvc                          # インタラクティブ シェル
cpln port-forward my-app 8080:8080 --gvc my-gvc                    # ローカル アクセス

Terraform / Pulumi / Kubernetes Operator デプロイメント パターンについては、関連するドキュメント ページを取得してください (このスキルの最後のリソースを参照)。

ネットワークと ロード バランサー

ファイアウォール デフォルト (ガードレール #4 に含まれる): 内部 none、外部インバウンドとアウトバウンド無効。ブロック > 許可; CIDR > ホスト名; ホスト名エグレス = ポート 80/443/445 のみ (outboundAllowPort でオーバーライド); ホスト名は *.example.com ワイルドカードをサポート。

エンドポイント:

  • 内部 DNS (同じ GVC): WORKLOAD.GVC.cpln.local:PORT
  • パブリック正規 (GVC endpointNamingFormat で設定):
    • org (新しい GVC のデフォルト): {workload}-{gvcAlias}.{orgEndpointPrefix}.cpln.app
    • default: {workload}-{gvcAlias}.cpln.app
    • legacy: レガシースキーム
  • gvcAlias は自動生成され、GVC 名と異なる場合があります。正確な検索: cpln workload get WL --gvc GVC -o json | jq -r '.status.endpoint'。コンテナは CPLN_GLOBAL_ENDPOINT env var も受け取ります。
  • ロケーション ID: aws-us-east-1gcp-us-central1azure-eastus
  • 内部トラフィックは自動 mTLS です。すべてのワークロードは CPLN_TOKEN env var を取得します (自動ローテーション JWT、そのワークロードの内部からのみ有効)。
  • Serverless Host ヘッダーはカスタムドメインではなく、正規エンドポイントです。 オリジナルは X-Forwarded-Host に含まれています。Standard/Stateful はカスタムドメインを Host として受け取ります。

ロード バランサー:

タイプスコープカスタムポート静的 IPワークロード タイプ
デフォルト (共有)すべてのワークロードいいえいいえすべて
ダイレクトワークロードあたりはい (TCP/UDP)IP Sets 経由すべて
専用 (GVC)GVC あたりはいIP Sets 経由すべて
レプリカ ダイレクト (spec.loadBalancer.replicaDirect)レプリカあたり構成可能IP Sets 経由ステートフルのみ

GVC 上の専用 LB (spec.loadBalancer.dedicated: true) はロック解除: 443/80 以外のドメインポート、ワイルドカード ホスト名、redirect.class.status5xx/status401 ルール、ドメイン上の tcp プロトコル。trustedProxies: 0 (ソース IP)、1 (最後の X-Forwarded-For)、2 (2 番目から最後の)。

ポリシー

リソースに対する権限をプリンシパルにバインドします。間違ったターゲットの種類、リンク形式、またはアクセス許可名はすべてサイレント失敗します。

  • targetKind は単数形で小文字です。有効: accountagentauditctxcloudaccountdomaingroupgvcidentityimagelocationorgpolicyquotasecretserviceaccounttaskuservolumesetworkload有効ではない (親経由で制御): ipsetmk8sworkloadreplica
  • ターゲット スコープ — 正確に 1 つを選択: target: all | targetLinks: [...] | targetQuery: {spec: {match, terms}}
  • スコープ別ターゲット リンク: org スコープ //KIND/NAME、GVC //gvc/NAME、GVC スコープ //gvc/GVC/KIND/NAME、ユーザー //user/EMAIL
  • プリンシパル リンク: ユーザー //user/EMAIL、サービスアカウント //serviceaccount/NAME、グループ //group/NAMEアイデンティティ //gvc/GVC/identity/NAME (決して //identity/NAME ではなく — サイレント無視)。
  • ポリシーあたり最大 50 バインディング、バインディングあたり 200 プリンシパル リンク。各バインディングのアクセス許可はアルファベット順で一意である必要があります。ビルトイン ポリシー (origin: builtin) は変更または削除できません。

種ごとの完全な権限テーブル (および revealusemanage など実際に何を付与するか) については、cpln policy permissions、MCP mcp__cpln__get_permissions ツール、または /reference/policy を取得してください。

アイデンティティ

GVC スコープ。--set spec.identityLink=//identity/NAME 経由で割り当てます。ワークロードあたり 1 つのアイデンティティ。1 つのアイデンティティは同じ GVC 内のワークロード全体で共有できます。プロバイダーあたり 1 つのクラウド アカウント (1 AWS + 1 GCP + 1 Azure — 2 AWS ではなく)。アイデンティティは GVC 全体で共有できません — GVC ごとに再作成してください。

プロバイダー セクションにはそれぞれ XOR ルールがあります (例: AWS roleNamepolicyRefs; GCP serviceAccountbindings)。ネットワーク リソース: IPsFQDN。ネイティブ ネットワーク リソース: awsPrivateLinkgcpServiceConnect。各最大 50。完全な XOR ルールとプロバイダー固有のフィールドについては、/reference/identity を取得してください。

ドメイン

フィールドルール
dnsModecname または nsApex ドメインは cname を使用する必要があります — NS は apex をサポートしません。
certChallengeTypehttp01 または dns01NS モードは dns01 を必須とします (http01 は拒否されます)。
gvcLinkworkloadLinkports.routes相互排他。workloadLink (レプリカ-ダイレクト) はステートフルのみです。
acceptAllHostsacceptAllSubdomains相互排他。どちらも専用 LB が必要です。
ports[].protocolhttphttp2 (デフォルト)、tcp (tcp は専用 LB が必須)。
ルート スコープドメイン内のすべてのルートは、同じ GVC 内のワークロードをターゲットにする必要があります。

CNAME レコード → cpln.app。NS レコード → ns1.cpln.cloudns2.cpln.cloudns1.cpln.livens2.cpln.live。自動 TLS = Let's Encrypt、90 日有効、60 日ごとに自動更新。カスタム証明書は PEM コンテンツを含む keypair シークレット タイプを使用します。CORS、ヘッダー ワイルドカード、ルート制限、および完全なルート スキーマについては、/reference/domain を取得してください。

ボリューム セット

ステートフルのみ。cpln://volumeset/NAMErecoveryPolicy: retain (デフォルト) または recycle でマウント。

ファイルシステムアクセスバインディングスナップショット / 縮小 / 削除 / 復元
ext4RWO1 ステートフル ワークロードはい
xfsRWO1 ステートフル ワークロードはい
sharedRWX任意の数のワークロードいいえ

パフォーマンス クラス: general-purpose-ssd (最小 10 GB)、high-throughput-ssd (最小 200 GB)、shared (fileSystemType: shared の場合は自動設定)。すべてに対して最大容量 65,536 GB。

  • fileSystemTypeperformanceClass の両方は不変です。 どちらかを変更 = 削除 + 再作成 (データロス — ガードレール #6)。
  • shrinkVolume データを破棄します。ボリュームは 6 時間ごとに 1 回だけ拡張できます。
  • createFinalSnapshot: true (デフォルト) はボリューム削除前に自動スナップショット — オンのままにします。

オートスケーリング、予測スケーリング、shared 上のマウント オプション、および AWS KMS カスタム暗号化については、/reference/volumeset を取得してください。

境界 — Console のみの操作

CLI / API / Terraform はほぼすべてを処理します (リソース

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
controlplane-docs
リポジトリ
controlplane-docs/docs
ライセンス
Apache-2.0
最終更新
2026/5/12

Source: https://github.com/controlplane-docs/docs / ライセンス: Apache-2.0

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: controlplane-docs · controlplane-docs/docs · ライセンス: Apache-2.0