Cloud Code for IntelliJ で Google Cloud と Kubernetes YAML ファイルを操作する

Cloud Code は、Google Cloud と Kubernetes 関連の構成ファイル(スキーマベースの検証、診断、クイック ドキュメントなど)の編集に役立つように設計されています。

サポートされる YAML 構成ファイル

さらに、Cloud Code は、すぐに使える Kubeflow などの人気のある Kubernetes CRD もサポートしています。

カスタム スキーマの使用

また、Cloud Code では、IntelliJ の設定([File] > [Settings] > [Tools] > [Cloud Code] > [Kubernetes]、または Mac OS X の場合は [IntelliJ IDEA] > [Preferences] > [Tools] > [Cloud Code] > [Kubernetes] の順に選択して [CRD Schema Locations] セクションに移動)で独自の CRD スキーマを指定できます。

ローカル ファイルまたは URL のどちらかを指定できます。github.com を指す URL は自動的に raw.githubusercontent.com に変換されます。

クラスタからのスキーマの pull

Kubernetes Explorer で Kubernetes v1.16 以降が実行されているクラスタに切り替えると、Cloud Code によってインストールされているすべての CRD のスキーマが自動的に pull されます。

Skaffold の追加のサポート

Skaffold は Cloud Code の機能を強化する基盤となるエンジンで、アプリケーションのビルド、push、デプロイと、CI/CD パイプラインの作成に役立ちます。

Cloud Code には、Skaffold 構成ファイルを管理するための追加サポートが含まれています。プロジェクトを開くと、Cloud Code で最新でない Skaffold スキーマが検出され、既存の Skaffold YAML 構成ファイルに対して Skaffold スキーマ バージョンのアップグレードが利用可能になると、イベントログを介してプロンプトが表示されます。

既存の Skaffold YAML ファイルが最新バージョンではないため、イベントログ内の通知で Skaffold スキーマ バージョンのアップグレードを求めるメッセージが表示されます。

または、[Tools] > [Cloud Code] > [Kubernetes] に移動して、[Check for Skaffold Schemas Upgrades] を選択し、利用可能なスキーマのアップグレードを確認できます。

スニペットを使って構成する

一般的な YAML スキーマにすぐに使えるスニペット(Ctrl+Space でオプションを表示)が用意されています。このスニペットを使用すると、新しい YAML ファイルを簡単に構成でき、ベスト プラクティスに準拠しながら既存のファイルに追加することもできます。繰り返しフィールドの操作も簡単です。1 つのフィールドに入力すると、Cloud Code が残りのインスタンスに値を挿入します。

繰り返しフィールドでスニペットを使用する

現在、次のスニペットが提供されています。

  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Service
  • Migrate to Containers - Export
  • Migrate to Containers - PersistentVolumeClaim
  • Migrate to Containers - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

コンテキストを使用して補完する

Cloud Code は、現在のスキーマに基づいてコンテキスト補完を行います。これにより、正しいオプションを簡単に選択できます。

Kubernetes スキーマのコンテキスト補完

YAML スキーマの検証

Cloud Code は、YAML ファイル内の無効なタグと値を報告し、可能な場合には修正を提案することで、スキーマの検証をサポートします。

名前フィールドの値に赤い下線が付され、無効な値「1234」がハイライト表示されています。テキストにカーソルを合わせると「データの型が正しくありません。」と表示されます。想定される文字列。

Skaffold YAML ファイルの検証

Cloud Code では、Skaffold 構成ファイルの編集のサポートが追加されています。また、スマート テンプレートを使用することで、skaffold.yaml ファイルを簡単に検証できます。Cloud Code での既存のアプリの使用に関するガイドをご覧ください。

Skaffold YAML テンプレート

コンテキストを使用して Skaffold 構成ファイルを補完する

Cloud Code は、現在のスキーマに基づいてコンテキスト補完を行い、関連するドキュメントを表示します。これにより、正しいオプションを簡単に選択できます。

Skaffold の補完

クイック ドキュメントで定義を確認する

Cloud Code では、構成ファイル内の行をハイライト表示し、[View] > [Quick Documentation] を選択すると、リソースに関連するドキュメントが表示されます。

クイック ドキュメント

構造と有効性の問題に関する YAML の lint チェック

Cloud Code は、一般的なスキーマの問題に関する lint チェックをサポートし、わかりやすいエラーを表示します。

YAML ファイルの lint チェック

YAML ファイルを適用する

kubectl apply -f を実行して、現在のファイルを使って構成の変更を適用するには、IDE のガターにある kubectl アクション アイコン kubectl actions アイコン を使用して [Apply] を選択します。表示される差分ビューで、[Apply] をクリックする前に違いを確認できます。

kubectl アクション リストでハイライト表示されている Apply オプション

YAML ファイルの差分

ソース管理の YAML ファイルとデプロイされた YAML ファイルの差分を表示したい場合は、エディタのガターにある kubectl アクション アイコン kubectl actions アイコン を使用します。[Diff] オプションを選択すると、2 つのスキーマ ファイルを比較できます。

kubectl アクション リストでハイライト表示されている Diff オプション

YAML ファイルのドライランを実行する

ファイルのドライランを実行して有効性を確認するには、IDE のガターにある kubectl アクション アイコン kubectl actions アイコン を使用して [Dry-run on Server] または [Dry-run on Client] を選択します。これにより、kubectl apply -f dry-run=server(またはクライアント オプションの場合は kubectl apply -f dry-run=client)が実行され、ターミナル ウィンドウでファイルを正常に作成できるかどうかが通知されます。

kubectl アクション リストでハイライト表示されている Dry-run on Server オプション

次のステップ

サポートを受ける

IntelliJ IDE でフィードバックを送信するか、問題を報告するには、[Tools] > [Cloud Code] > [Help / About] > [Submit feedback or report an issue] を選択します。ここから、GitHub で問題を報告したり、Stack Overflow で質問したりできます。