IntelliJ IDEAのCloud CodeプラグインのSkaffold機能を試してみたいと思います。
準備
Cloud Code - IntelliJ IDEs Plugin | Marketplaceをお使いのIntelliJ IDEAにインストールします。
Supported Products
に、Communityの記載があるのでUltimate以外でも使えそうです。
Skaffold.ymlの準備
Spring Bootなアプリケーションを起動するためのSkaffold.ymlを準備します。
※k8sのマニフェストを作っている場合、skaffold init
で生成することもできます。
apiVersion: skaffold/v2beta26 kind: Config metadata: name: skaffold-example build: artifacts: - image: siosio/hello buildpacks: builder: gcr.io/buildpacks/builder:v1 local: push: false useBuildkit: true deploy: kubectl: manifests: - k8s/deployment.yaml - k8s/service.yaml
実行構成を作成する
- 下の画像のように実行構成の
Cloud Code: Kubernetes
を選択し、新規の実行構成を作成します。 Run
タブのDeployment
からデプロイ対象を選択します。Run
タブのWatch mode
からファイル変更後のリビルド方法を選択します。
ファイルの保存のたびにリビルドが実行されるのが鬱陶しい場合には、デフォルトのOn demand
で良いかと思います。Build/Deploy
タブのSkaffold configuration
のプルダウンから対象のskaffold.ymlを選択します。- 最後に保存して終了です。
※現状の機能では、細かなオプションの指定などはできなさそうな感じでした。
実行(デプロイ)する
作成した実行構成から起動(デプロイ)します。
起動の確認
起動が成功すると、Runウィンドウからポートフォワードされローカルからアクセス可能なサービスの一覧が見れたりするようです。
Cloud CodeプラグインのKubernetes Explorer
もデプロイが成功したことが確認できます。
※Kubernetes - IntelliJ IDEs Plugin | Marketplaceでも同じ情報を見れますが、Cloud CodeプラグインはCommunity版でも使えるメリットがあるかなと思います。
ファイルを変更して再デプロイ
実行構成で、Run -> Watch mode
をデフォルトのOn demand
にしている場合には、RunウィンドウのコンソールでCtrl + Alt + ,(カンマ)
を入力することで再デプロイを行えます。
ファイル変更後に自分のタイミングでコンソールからデプロイの指示を行えば良いので、無駄なデプロイが走らず良い感じです。
デバッグ実行してみる
Skaffoldでデプロイしたアプリケーションのデバッグをしたい場合には、IntelliJ IDEAからデバッグモードで実行(デプロイ)します。
デバッグモードで実行すると、デプロイ完了後に自動的にリモートデバッグ用のクライアント側が実行されるようです。 Skaffoldで起動したSpring BootなアプリケーションをIntelliJ IDEAでデバッグする - しおしおのように、自分で実行構成準備しなくてよいのがいいですね。
ファイル変更後にOn demand
で再デプロイすることで、リモートデバッグ用のクライアントが自動で再起動もされるようです。
最後に…
Cloud Codeプラグインを入れることで、IntelliJ IDEA上ですべてが行える(ターミナルも不要)のがよいですね!
おわり。