Argoワークフローは、使いやすいインターフェイスとツールを提供します。 YAMLファイルを使用してワークフローを定義し、継続的統合 (CI) パイプラインをすばやく構成できます。 Argoワークフローを使用すると、クラスターでジョブを同時に実行し、必要なコンピューティングリソースを動的にスケールできます。 これにより、CIパイプラインの効率が向上します。
機能紹介
Argoワークフローを使用してCIパイプラインを作成するには、BuildKitを使用してコンテナーイメージをビルドおよびプッシュし、BuildKit Cacheを使用してイメージのビルドを高速化します。 File Storage NAS (NAS) を使用してGo modキャッシュを保存すると、Go Test
およびGo Build
の手順を高速化できます。 これにより、CIパイプラインの作成に必要な時間が大幅に短縮されます。
定義済みのClusterWorkflowTemplateの概要
定義済みテンプレートを直接使用するか、定義済みテンプレートに基づいてカスタムテンプレートを作成できます。 この例では、ci-go-v1
という名前のClusterWorkflowTemplateが作成されます。 テンプレートはBuildKit CacheとNASを使用してGo modキャッシュを格納し、CIパイプラインの作成を大幅に高速化します。
手順
CIパイプラインの作成方法を示す例として、パブリックGitリポジトリを使用します。 プライベートGitリポジトリを使用する場合は、まずCIパイプラインでプライベートリポジトリのクローンを作成する必要があります。 詳細については、「CIパイプラインでのプライベートGitリポジトリのクローン」をご参照ください。
コンテナーイメージとNASボリュームにアクセスするための資格情報を格納するSecretは、送信されるパイプラインの名前空間に属している必要があります。
手順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に参加してお問い合わせください。