JetBrains Space ヘルプ

Helm チャート

前提条件

  • Helm チャートは、プロジェクトソースの別のディレクトリに保存されます。

  • チャートを Space パッケージに公開する場合は、プロジェクトに Docker レジストリがあることを確認してください。

対象イメージ

Helm チャートを操作する場合の一般的な CI/CD タスクは、それをレジストリに公開することです。Space Automation を使用すると、チャートを Space Package または任意の外部レジストリに公開できます。

Helm チャートを Space Package に公開する

オートメーションには、Helm を操作するための特別な API が提供されていないため、helm コマンドラインツールを直接使用する必要があります。

  1. ジョブの実行番号に基づいてチャートのバージョンを自動的に生成したい場合は、Chart.yaml からバージョンを削除します。バージョン行は次のようになります。

    version:
  2. .space.kts ファイルを編集します。次の例では、helm-chart/hello-helm ディレクトリにある hello-helmcontainers レジストリに公開します。Helm チャートのバージョンは、スクリプト実行番号 0.1.$JB_SPACE_EXECUTION_NUMBER で調整されます。

    job("Publish Helm chart") { container("alpine/helm") { shellScript { content = """ export HELM_EXPERIMENTAL_OCI=1 sed -i.bak "s/^version:/version: 0.1.${'$'}JB_SPACE_EXECUTION_NUMBER/" ./helm_charts/hello-helm/Chart.yaml helm registry login mycompany.registry.jetbrains.space -u ${'$'}JB_SPACE_CLIENT_ID -p ${'$'}JB_SPACE_CLIENT_SECRET helm package ./helm_charts/hello-helm helm push hello-helm-0.1.${'$'}JB_SPACE_EXECUTION_NUMBER.tgz oci://mycompany.registry.jetbrains.space/p/project-key/containers """ } } }

Helm チャートを外部レジストリに公開する

外部レジストリへのチャートの公開は、Space Packages レジストリへの公開とほぼ同じです。唯一の違いは、資格情報をシークレットとパラメーターストレージのリポジトリに保存する必要があることです。

  1. パラメーターとシークレットを作成するは、スクリプトが外部リポジトリにアクセスするために使用する必要があるユーザー名とパスワードを保存します。

    Secrets and parameters
  2. ジョブの実行番号に基づいてチャートのバージョンを自動的に生成したい場合は、Chart.yaml からバージョンを削除します。バージョン行は次のようになります。

    version:
  3. .space.kts ファイルを編集します。

    job("Publish Helm chart") { container("alpine/helm") { env["PSWRD"] = Secrets("repo-password") env["ID"] = Params("repo-user") shellScript { content = """ export HELM_EXPERIMENTAL_OCI=1 sed -i.bak "s/^version:/version: 1.1.${'$'}JB_SPACE_EXECUTION_NUMBER/" ./helm_charts/hello-helm/Chart.yaml helm registry login externalrepo.url -u ${'$'}ID -p ${'$'}PSWRD helm package ./helm_charts/hello-helm helm push hello-helm-1.1.${'$'}JB_SPACE_EXECUTION_NUMBER.tgz oci://externalrepo.url/repo-name """ } } }