Code Stream で連続統合と連続配信 (CICD) パイプラインを作成するには、CICD スマート パイプライン テンプレートを使用します。CICD ネイティブ ビルドを計画するには、使用する前にスマート パイプライン テンプレートへの入力が必要な情報を収集して、この例の計画でパイプラインを作成します。

スマート パイプライン テンプレートに情報を入力して保存した後、テンプレートでステージとタスクを含むパイプラインが作成されます。また、開発や導入など、選択した環境タイプに基づいてイメージを展開する場所も示されます。パイプラインは、Docker イメージを公開し、実行に必要なアクションを実行します。パイプラインの実行後、その実行のトレンドを監視できます。

CICD パイプラインを作成するには、パイプラインの連続統合 (CI) ステージと連続配信 (CD) ステージの両方を計画する必要があります。

パイプラインに Docker Hub のイメージが含まれている場合は、パイプラインを実行する前に、イメージに cURL が組み込まれていることを確認する必要があります。パイプラインが実行されると、vRealize Automation Code Stream は、cURL を使用してコマンドを実行するバイナリ ファイルをダウンロードします。

連続統合 (CI) ステージの計画

パイプラインの CI ステージを計画するには、外部および内部の要件を設定し、スマート パイプライン テンプレートの CI 部分に入力する情報を決定します。サマリを示します。

クラウドベースまたはリモートのオンプレミスのエンドポイントおよびリポジトリには以下が必要です。

  • 開発者がコードをチェックインする Git ソース コード リポジトリ。 Code Stream は、開発者が変更をコミットするときに、パイプラインに最新のコードを取得します。
  • 開発者のソース コードがあるリポジトリの Git エンドポイント。
  • コンテナ内でビルド コマンドを実行する Docker ビルド ホストの Docker エンドポイント。
  • Code Stream がイメージを Kubernetes クラスタに展開できるようにするための Kubernetes エンドポイント。
  • 連続統合テストで実行するコンテナを作成するビルダー イメージ。
  • Docker ビルド ホストからビルダー イメージを取得できるようにするためのイメージ レジストリ エンドポイント。

プロジェクトへのアクセス権が必要です。プロジェクトはパイプライン、エンドポイント、ダッシュボードなどすべての作業をグループ化します。 Code Stream で、プロジェクトのメンバーであることを確認します。メンバーでない場合は、プロジェクトにメンバーとして追加するように Code Stream 管理者に依頼します。VMware Code Streamでプロジェクトを追加する方法を参照してください。

Git Webhook が必要になります。これにより、開発者がコード変更をコミットするときに Code Stream が Git トリガを使用してパイプラインがトリガされるようにできます。Code Stream で Git トリガを使用してパイプラインを実行する方法を参照してください。

ビルドのツールセット:

  • Maven などのビルド タイプ。
  • 使用するすべての後処理ビルド ツール(JUnit、JaCoCo、Checkstyle、FindBugs など)。

公開ツール:

  • ビルド コンテナを展開する Docker などのツール。
  • イメージ タグ(コミット ID またはビルド番号のいずれか)。

ビルドのワークスペース:

  • Docker ビルド ホスト(Docker エンドポイント)。
  • イメージ レジストリ。パイプラインの CI 部分によって、選択したレジストリ エンドポイントからイメージが取得されます。コンテナは CI タスクを実行し、イメージを展開します。レジストリに認証情報が必要な場合は、まずイメージ レジストリ エンドポイントを作成し、ここで選択して、ホストがレジストリからイメージを取得できるようにする必要があります。
  • 連続統合タスクで実行するコンテナを作成するビルダー イメージの URL。

連続配信 (CD) ステージの計画

パイプラインの CD ステージを計画するには、外部および内部の要件を設定し、スマート パイプライン テンプレートの CD 部分に入力する情報を決定します。

クラウドベースまたはリモートのオンプレミスのエンドポイントには以下が必要です。

  • Code Stream がイメージを Kubernetes クラスタに展開できるようにするための Kubernetes エンドポイント。

環境タイプとファイル:

  • すべての環境タイプ ( Code Stream) は、開発や導入などのアプリケーションを展開します。スマート パイプライン テンプレートは、選択した環境タイプに基づいてパイプライン内のステージとタスクを作成します。
    表 1. CICD スマート パイプライン テンプレートで作成されるパイプライン ステージ
    パイプライン コンテンツ 機能
    ビルド公開ステージ コードをビルドおよびテストし、ビルダー イメージを作成し、そのイメージを Docker ホストに公開します。
    開発ステージ 開発 Amazon Web Services (AWS) クラスタを使用してイメージを作成および展開します。このステージでは、クラスタで名前空間を作成し、プライベート キーを作成できます。
    本番ステージ VMware Tanzu Kubernetes Grid Integrated Edition(旧称 VMware Enterprise PKS)の本番バージョンを使用して、イメージを本番環境の Kubernetes クラスタに展開します。
  • CICD スマート パイプライン テンプレートの CD セクションで選択した Kubernetes YAML ファイル。

    ファイルを適用するには、[選択] をクリックして、Kubernetes YAML ファイルを選択し、[プロセス] をクリックします。使用可能なサービスと展開環境がスマート パイプライン テンプレートに表示されます。サービス、クラスタ エンドポイント、および展開方法を選択します。たとえば、Canary 展開モデルを使用するには、[Canary] を選択し、展開フェーズの割合を入力します。

    Canary CICD 展開の処理。

スマート パイプライン テンプレートを使用してブルーグリーン展開のパイプラインを作成する例については、VMware Code Stream のアプリケーションをブルーグリーン展開に展開する方法を参照してください。

スマート パイプライン テンプレートを使用して CICD パイプラインを作成する方法

すべての情報を収集して必要な設定を行った後、次のように CICD スマート パイプライン テンプレートからパイプラインを作成します。

パイプラインで、[新しいパイプライン] > [スマート テンプレート] の順に選択します。

スマート テンプレートを選択します。

CICD スマート パイプライン テンプレートを選択します。

CICD スマート パイプライン テンプレートから、継続的インテグレーションおよび継続的デリバリ パイプラインを作成します。

テンプレートに入力し、作成されるステージでパイプラインを保存します。最終的な変更を行う必要がある場合は、パイプラインを編集して保存できます。

CICD スマート パイプライン テンプレートから作成された新規 CICD パイプライン ステージ。

次に、パイプラインを有効にして実行します。実行後、以下の点を確認できます。

  • パイプラインが正常に完了したことを確認します。[実行] をクリックし、パイプラインを検索します。正常に完了しなかった場合は、エラーを修正して再度実行します。
  • Git Webhook が正しく動作していることを確認します。Git の [Activity] タブにイベントが表示されます。[トリガ] > [Git] > [アクティビティ] の順にクリックします。
  • パイプライン ダッシュボードで、トレンドを確認します。[ダッシュボード] をクリックし、パイプライン ダッシュボードを検索します。カスタム ダッシュボードを作成して、他の KPI もレポートできます。

詳細な例については、コードを my GitHub または GitLab リポジトリから VMware Code Stream の自分のパイプラインに継続的に統合する方法を参照してください。