Helmアーティファクトのデプロイ

Helmは、Kubernetes用に構築されたソフトウェアの共有、パッケージ化およびデプロイ機能を提供するオープン・ソースのKubernetesパッケージ・マネージャです。Oracle Cloud Infrastructure (OCI) DevOpsサービスは、Kubernetes Engine (OKE)クラスタへのHelmチャートのデプロイメントをサポートします。インライン・アーティファクトとして指定され、デプロイメント用のHelmステージに追加されたHelmコマンドを実行することもできます。

Helmチャートのデプロイメントが発生するのは、Helmチャートが初めてデプロイされた場合、またはアーティファクトまたはHelmステージ・パラメータで更新が検出された場合のみです。これは、デプロイメントを実行する前に自動的に検証されます。ただし、アーティファクトまたは他のHelmステージ・パラメータへの更新に関係なくHelmチャートをデプロイするには、デプロイメントの実行中にENFORCE_HELM_DEPLOYMENTパラメータをtrueに設定する必要があります。このパラメータは、ステージ・レベルとパイプライン・レベルの両方で動作します。パラメータが特定のステージに設定されている場合は、そのステージにのみ適用されます。パラメータがパイプラインまたはデプロイメント引数に設定されている場合は、パイプライン内のすべてのステージに適用されます。ただし、パイプラインまたはデプロイメント引数とステージ・オーバーライド引数にパラメータが設定されている場合は、パイプライン・パラメータまたはデプロイメント引数がステージ・オーバーライド引数より優先されます。このパラメータは、パイプライン内のすべてのステージに適用されます。

特定のHelmデプロイメント・ステージでは、OCI_DEVOPS_DEPLOY_USE_CREATE_NAMESPACE_FLAGをステージ・パラメータ・オーバーライドとして使用できます。このパラメータをtrueまたはfalseに設定して、Helmチャートのデプロイにhelm upgradeコマンドを使用するときに--create-namespaceフラグを制御できます。このパラメータはステージ・レベルで動作し、デプロイメント構成の粒度が向上します。詳細は、パラメータの構成を参照してください。

開始する前に、デプロイメント・パイプラインを持ち、Kubernetes Engineクラスタを作成する必要があります。パブリックとプライベートの両方のOKEクラスタにデプロイできます。

デプロイメント・パイプラインの動的グループおよびポリシーの作成については、デプロイメント・パイプライン・ポリシーを参照してください。詳細は、DevOps IAMポリシーを参照してください。

Helmチャートは、デプロイメント用にOCIコンテナ・レジストリ・リポジトリに配置する必要があります。Helmチャートの追加を参照してください。Helmコマンドを実行するには、Helmコマンドをインライン・アーティファクトとして指定する必要があります。Helmコマンド仕様を参照してください。

Helmチャートには、Kubernetes YAMLマニフェスト・ファイルのテンプレートと、デフォルトのテンプレート値を指定するためのvalues.yamlファイルが含まれています。values.yamlは、OCIアーティファクト・レジストリにある汎用ファイルです。このファイルへの参照を作成する必要があります。アーティファクト・レジストリ・アーティファクトの追加を参照してください。

ノート

デプロイメントでは、Helmチャートtarballのパラメータ置換はサポートされていません。ただし、values.yamlファイルでサポートされています。

Oracle Cloudコンソール、REST APIおよびCLIを使用したDevOpsへのアクセスについては、DevOpsへのアクセスを参照してください。

    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「DevOps」で、「プロジェクト」をクリックします。
    2. プロジェクトおよびデプロイメント・パイプラインを選択します。
    3. パイプラインにステージを追加するには、「+」アイコンをクリックし、「ステージの追加」を選択します。
    4. ステージ・タイプとして「KubernetesクラスタへのHelmチャートのインストール」または「KubernetesクラスタでのHelmコマンドの実行」を選択し、「次へ」をクリックします。
    5. ステージの名前と説明を入力します。説明の追加はオプションです。
    6. 「環境」で、既存のクラスタ環境を選択します。
    7. Helmステージを作成する目的を選択します。オプションは次のとおりです:

      • KubernetesクラスタでのHelmチャートのインストールまたはアップグレード
      • KubernetesクラスタでのHelmコマンドの実行
    8. Helmコマンドを実行するオプションを選択した場合は、Helmコマンド仕様アーティファクトを選択し、ステージを追加します。詳細は、Helmコマンド仕様を参照してください。
    9. Helmチャートをインストールまたはアップグレードするオプションを選択した場合は、リリース名を入力します。例: helm-release。

      リリースとは、特定の構成を持つHelmチャートの実行中のインスタンスを指します。1つのチャートを同じクラスタに何度もインストールして、異なるリリースを作成できます。リリース名は、helm-release-${version}のようにパラメータ化できます。

      リリース名は、RFC 1123標準に従う必要があります。小文字の英数字または'-'のみを使用できます。先頭と末尾は英数字にする必要があります。

    10. このステージがパイプラインから削除されたときにOKEクラスタからHelmリリースをアンインストールするには、「ステージ削除時にHelmリリースをアンインストールします」チェック・ボックスを選択します。
    11. 「アーティファクトの選択」をクリックして、デプロイメント用のHelmチャートを選択します。
    12. (オプション)「アーティファクトの選択」をクリックして、ヘルム・チャートに渡される値を含むvalues.yamlファイルを選択します。このファイルには、オーバーライド可能なデフォルト・パラメータが含まれています。
    13. (オプション)デフォルトの環境ネームスペースをオーバーライドするには、「Kubernetesネームスペースのオーバーライド」に値を入力します。値は、helm-${namespace}のようにパラメータ化できます。

      ネームスペースの値は、RFC 1123標準に従う必要があります。小文字の英数字または'-'のみを使用できます。先頭と末尾は英数字にする必要があります。

    14. (オプション)デプロイメントのタイムアウト値を秒単位で入力します。
    15. (オプション) Helmアップグレード・オプションを指定して、Helmチャート・バージョンをアップグレードするか、Helmリリースの構成を変更します。Helmアップグレードを参照してください。

      Helmチャートのデプロイメント中に、Helmコマンドの値および文字列値を設定できます。

      デプロイメント当たりのアップグレードの最大数を指定します。デフォルトでは、この値は10に設定されます。アップグレードの制限を設定しない場合は、ゼロを入力します。

    16. 検証が失敗した場合に、最後に成功したリリース・バージョンに自動的にロールバックするには、「はい」を選択します。詳細は、デプロイメントのロールバックを参照してください。
    17. (オプション)パイプラインにタグを追加するには、「タグ付けオプションの表示」をクリックします。タグ付けとは、テナンシ内のリソースを整理およびトラッキングできるメタデータ・システムです。

      リソースを作成する権限がある場合、それにフリーフォーム・タグを追加する権限もあります。

      定義済タグを追加するには、タグ・ネームスペースを使用する権限が必要です。

      詳細は、リソース・タグを参照してください。

    18. ステージをパイプラインに追加するには、「追加」をクリックします。

      ステージの削除中にhelmリリースをアンインストールするチェック・ボックスを選択した場合は、「Helmリリースのアンインストールの警告」ダイアログ・ボックスで「確認」をクリックします。Helmリリースがアンインストールされると、リリースをアンインストールするための作業リクエストが作成され、そのステータスは「デプロイメント・パイプライン」ページの「デプロイメント」セクションで追跡されます。

      ステージ・プレビューによって、構成のスナップショットが提供されます。

    必要に応じて、パイプラインに順次またはパラレルにステージを追加します。ターゲット環境にビルド出力をデプロイするには、デプロイメント・パイプラインを実行します。

    デプロイメント中に、前の状態にロールバックされるこのステージのデプロイメントを取り消すことができます。Helmリリース・アップグレードの進行中にデプロイメントを取り消すと、アップグレードは取り消され、リリースは前の状態にロールバックされます。

    ビルド・パイプラインからデプロイメントを自動的にトリガーするには、ビルド・パイプラインに「デプロイメントのトリガー」ステージを追加します。

  • パイプラインにOKE Helmステージを作成するには、create-OKE-helm-chart-stageコマンドを実行します:

    oci devops deploy-stage create-oke-helm-chart-stage

    必須パラメータ:

    • --helm-chart-artifact-id
    • --oke-cluster-environment-id
    • --pipeline-id
    • --stage-predecessor-collection
    • --release-name

    「目的」フィールドをHelmステージに追加するには、update-oke-helm-chart-stageコマンドを実行します:

    oci devops deploy-stage update-oke-helm-chart-stage --helm-command-artifact-ids --purpose

    Helmステージをアンインストールするには、create-oke-helm-chart-stageコマンドを実行します:

    oci devops deploy-stage create-oke-helm-chart-stage --is-uninstall-on-stage-delete

    deploy-stageのすべてのコマンドを取得するには:

    oci devops deploy-stage -h

    create-oke-helm-chart-stageコマンドのヘルプを取得するには:

    oci devops deploy-stage create-oke-helm-chart-stage -h
  • Kubernetesクラスタ・ステージをパイプラインに作成するには、CreateDeployStage操作を使用します。deployStageType属性には、値としてOKE_HELM_CHART_DEPLOYMENTを指定します。