しおしお

IntelliJ IDEAのことなんかを書いてます

IntelliJ IDEAのCloud Codeプラグインを使ってSkaffoldしてみたよ

IntelliJ IDEAのCloud CodeプラグインのSkaffold機能を試してみたいと思います。

準備

Cloud Code - IntelliJ IDEs Plugin | Marketplaceをお使いのIntelliJ IDEAにインストールします。 Supported Productsに、Communityの記載があるのでUltimate以外でも使えそうです。

f:id:sioiri:20211222161048p:plain:w600

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

実行構成を作成する

  1. 下の画像のように実行構成のCloud Code: Kubernetesを選択し、新規の実行構成を作成します。
  2. RunタブのDeploymentからデプロイ対象を選択します。
  3. RunタブのWatch modeからファイル変更後のリビルド方法を選択します。
    ファイルの保存のたびにリビルドが実行されるのが鬱陶しい場合には、デフォルトのOn demandで良いかと思います。
  4. Build/DeployタブのSkaffold configurationのプルダウンから対象のskaffold.ymlを選択します。
  5. 最後に保存して終了です。

f:id:sioiri:20211222161443p:plain:w600

※現状の機能では、細かなオプションの指定などはできなさそうな感じでした。

実行(デプロイ)する

作成した実行構成から起動(デプロイ)します。

f:id:sioiri:20211222162552p:plain:w600

起動の確認

起動が成功すると、Runウィンドウからポートフォワードされローカルからアクセス可能なサービスの一覧が見れたりするようです。

f:id:sioiri:20211222162844p:plain:w600

Cloud CodeプラグインKubernetes Explorerもデプロイが成功したことが確認できます。

f:id:sioiri:20211222163120p:plain:w600

Kubernetes - IntelliJ IDEs Plugin | Marketplaceでも同じ情報を見れますが、Cloud CodeプラグインはCommunity版でも使えるメリットがあるかなと思います。

ファイルを変更して再デプロイ

実行構成で、Run -> Watch modeをデフォルトのOn demandにしている場合には、RunウィンドウのコンソールでCtrl + Alt + ,(カンマ)を入力することで再デプロイを行えます。 ファイル変更後に自分のタイミングでコンソールからデプロイの指示を行えば良いので、無駄なデプロイが走らず良い感じです。

デバッグ実行してみる

Skaffoldでデプロイしたアプリケーションのデバッグをしたい場合には、IntelliJ IDEAからデバッグモードで実行(デプロイ)します。

f:id:sioiri:20211222163848p:plain:w600

デバッグモードで実行すると、デプロイ完了後に自動的にリモートデバッグ用のクライアント側が実行されるようです。 Skaffoldで起動したSpring BootなアプリケーションをIntelliJ IDEAでデバッグする - しおしおのように、自分で実行構成準備しなくてよいのがいいですね。

f:id:sioiri:20211222164258p:plain:w600

ファイル変更後にOn demandで再デプロイすることで、リモートデバッグ用のクライアントが自動で再起動もされるようです。

最後に…

Cloud Codeプラグインを入れることで、IntelliJ IDEA上ですべてが行える(ターミナルも不要)のがよいですね!

おわり。