Argo ワークフローは、使いやすいインターフェースとツールを提供します。YAML ファイルを使用してワークフローを定義し、継続的インテグレーション (CI) パイプラインを迅速に構成できます。Argo ワークフローを使用すると、クラスター内でジョブを同時に実行し、必要なコンピューティングリソースを動的にスケーリングできます。これにより、CI パイプラインの効率が向上します。
機能概要
Argo ワークフローを使用して CI パイプラインを作成するには、BuildKit を使用してコンテナイメージをビルドおよびプッシュし、BuildKit Cache を使用してイメージビルドを高速化します。ファイルストレージ NAS (NAS) を使用して Go mod キャッシュを保存すると、Go Test および Go Build ステップを高速化できます。これにより、CI パイプラインの作成に必要な時間が大幅に短縮されます。
事前定義された ClusterWorkflowTemplate の紹介
事前定義されたテンプレートを直接使用するか、事前定義されたテンプレートに基づいてカスタムテンプレートを作成できます。この例では、ci-go-v1 という名前の ClusterWorkflowTemplate が作成されます。このテンプレートは、BuildKit Cache と NAS を使用して Go mod キャッシュを保存し、CI パイプラインの作成を大幅に高速化します。
手順
パブリック Git リポジトリを例として使用して、CI パイプラインの作成方法を示します。プライベート Git リポジトリを使用する場合は、最初に CI パイプラインでプライベートリポジトリを複製する必要があります。詳細については、CI パイプラインでプライベート Git リポジトリを複製する を参照してください。
コンテナイメージと NAS ボリュームにアクセスするための資格情報を格納するシークレットは、送信されるパイプラインの名前空間に属している必要があります。
ステップ 1:Container Registry Enterprise Edition インスタンスにアクセスするための資格情報を作成する
資格情報は、BuildKit からイメージをプルするために使用されます。
Container Registry Enterprise Edition インスタンスのアクセス資格情報を構成します。詳細については、Container Registry Enterprise Edition インスタンスのアクセス資格情報を構成する を参照してください。
次のコマンドを実行して、資格情報を格納するシークレットをクラスターに作成します。資格情報は BuildKit によって使用されます。
説明$repositoryDomain:Container Registry イメージリポジトリのドメイン名。$username:Container Registry イメージリポジトリのユーザー名。$password:Container Registry イメージリポジトリのパスワード。kubectl create secret -n argo generic docker-config --from-literal="config.json={\"auths\": {\"$repositoryDomain\": {\"auth\": \"$(echo -n $username:$password|base64)\"}}}"
ステップ 2:NAS ボリュームをマウントする
NAS ボリュームをマウントすると、クローン用のコードリポジトリ情報などのデータをワークフローのさまざまなジョブ間で共有できます。NAS ボリュームは、Go mod キャッシュを保存し、CI パイプラインの go test および go build ステップを高速化するためにも使用できます。
NAS ボリュームのマウント方法の詳細については、ボリュームを使用する を参照してください。
ステップ 3:テンプレートに基づいてパイプラインを起動する
コンソールを使用する
Argo コンソールにログオンします。左側のナビゲーションペインで、クラスタワークフローテンプレートをクリックし、ci-go-v1 という名前の事前定義された ClusterWorkflowTemplate をクリックします。

テンプレートの詳細ページで、右上隅にある + 送信をクリックします。表示されるパネルで、パラメータを構成し、+ 送信をクリックします。
テンプレートパラメータ を参照し、ビジネス要件に基づいてパラメータを構成します。

構成が完了すると、ワークフロー詳細ページでパイプラインの状態を確認できます。

Argo CLI
workflow.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。テンプレートパラメータ を参照し、パラメータを構成します。apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: ci-go-v1- labels: workflows.argoproj.io/workflow-template: ackone-ci namespace: argo spec: arguments: parameters: - name: repo_url value: https://github.com/ivan-cai/echo-server.git - name: repo_name value: echo-server - name: target_branch value: main - name: container_image value: "test-registry.cn-hongkong.cr.aliyuncs.com/acs/echo-server" - name: container_tag value: "v1.0.0" - name: dockerfile value: ./Dockerfile - name: enable_suffix_commitid value: "true" - name: enable_test value: "true" workflowTemplateRef: name: ci-go-v1 clusterScope: true次のコマンドを実行して、パイプラインを送信します。
argo submit workflow.yaml
お問い合わせ
この製品についてご意見やご質問がある場合は、DingTalkグループ35688562にご参加ください。