日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于EventBridge的事件驅(qū)動(dòng)CI Pipeline

更新時(shí)間:

基于事件總線EventBridge和分布式工作流Argo Workflows,可以構(gòu)建高效、快速、低成本的事件驅(qū)動(dòng)自動(dòng)化CI Pipeline,大幅簡(jiǎn)化和加速應(yīng)用交付過(guò)程。本文介紹如何構(gòu)建基于事件驅(qū)動(dòng)的自動(dòng)化CI Pipeline流程。

前提條件

概述

基于事件驅(qū)動(dòng)的自動(dòng)化CI Pipeline,包含2部分:

  1. 基于Git事件的觸發(fā),代碼提交到Git倉(cāng)庫(kù)時(shí),觸發(fā)相應(yīng)的事件。

  2. CI系統(tǒng)運(yùn)行構(gòu)建前的測(cè)試,構(gòu)建Docker鏡像,并推送至鏡像倉(cāng)庫(kù)。

鏡像構(gòu)建成功后,可使用CD系統(tǒng)(如ACK One GitOps)將新的Image Tag同步到Kubernetes集群中。

image

在本實(shí)踐中,事件驅(qū)動(dòng)方案采用了在可用性、易用性、安全性、可擴(kuò)展性等多方面具有優(yōu)勢(shì)事件總線EventBridge,CI部分基于CNCF畢業(yè)項(xiàng)目Argo Workflows來(lái)構(gòu)建。ACK One工作流集群全托管Argo Workflows,提升了穩(wěn)定性、可觀測(cè)等性能,提供運(yùn)維能力,幫助您實(shí)現(xiàn)更大規(guī)模、具有更快的運(yùn)行速度和更低成本的CI Pipeline。

image
  1. 用戶向Git倉(cāng)庫(kù)提交代碼。

  2. EventBridge根據(jù)配置的規(guī)則,捕獲Git事件并將其傳遞給ACK One工作流集群,從而觸發(fā)CI工作流的執(zhí)行。

  3. 基于ACK One工作流集群的CI工作流構(gòu)建Docker Image,并推送至鏡像倉(cāng)庫(kù)中。之后可通過(guò)GitOps自動(dòng)同步相應(yīng)鏡像變化至ACK集群。

步驟一:在ACK One工作流集群中準(zhǔn)備CI環(huán)境

  1. 創(chuàng)建ACR EE訪問(wèn)憑證并掛載NAS存儲(chǔ)卷。具體操作,請(qǐng)參見(jiàn)基于工作流集群構(gòu)建Golang項(xiàng)目的CI Pipeline中的步驟一步驟二

    說(shuō)明

    請(qǐng)確保命名空間與Workflow資源保持一致。

  2. Apps Code Repo示例為echo-server項(xiàng)目,請(qǐng)將其Fork到您自己的GitHub賬號(hào)下,并參考在CI Pipeline中Clone私有Git倉(cāng)庫(kù)來(lái)修改WorkflowTemplate。

步驟二:使用EventBridge實(shí)現(xiàn)Git事件驅(qū)動(dòng)CI Pipeline

  1. 創(chuàng)建自定義事件總線

  2. 事件總線EventBridge與GitHub進(jìn)行集成對(duì)接。具體操作,請(qǐng)參見(jiàn)GitHub集成

  3. 配置事件規(guī)則(可選),以下為本示例配置內(nèi)容。詳細(xì)配置事件規(guī)則的方式,請(qǐng)參見(jiàn)管理事件規(guī)則

    1. 事件模式:如下設(shè)置為只觸發(fā)來(lái)自release-v1分支的變更。

      {
          "source": [
              "github.event"
          ],
          "data": {
              "body": {
                  "ref": [
                      "refs/heads/release-v1"
                  ]
              }
          }
      }
      
    2. 配置事件目標(biāo)。

      1. 服務(wù)類型:選擇容器服務(wù)Kubernetes

      2. 集群配置文件 KubeConfig:輸入ACK One工作流集群的KubeConfig。

      3. YAML配置:本示例選擇模板

      4. 變量:增加workflowName,配置事件ID。

        {
        	"workflowName": "$.id"
        }
      5. 模板:填入Workflow CI CR。以下示例僅供參考,請(qǐng)根據(jù)您的實(shí)際信息構(gòu)建CR。

        重要

        資源配置的要求是必須明確設(shè)置namenamespace,不能使用generateName。如果資源屬于默認(rèn)命名空間default,也必須聲明。

        apiVersion: argoproj.io/v1alpha1
        kind: Workflow
        metadata:
          name: ci-go-v1-eb-${workflowName}
          namespace: default
          labels:
            workflows.argoproj.io/workflow-template: ackone-ci
        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: release-v1
            - name: container_image
              value: "YOUR-IMAGE-REGISTRY-ADDRESS"     # 容器鏡像庫(kù)的地址,請(qǐng)根據(jù)您的實(shí)際信息替換.
            - 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
      6. 網(wǎng)絡(luò)訪問(wèn):本示例選擇公網(wǎng)

  4. 根據(jù)上述配置,當(dāng)您在GitHub倉(cāng)庫(kù)的release-v1分支上進(jìn)行代碼修改并提交時(shí),該操作會(huì)觸發(fā)自動(dòng)化流程,您可以通過(guò)以下方式驗(yàn)證。

    1. 查看事件軌跡。

      1. 登錄事件總線EventBridge控制臺(tái),在左側(cè)導(dǎo)航欄,單擊事件總線
      2. 單擊對(duì)應(yīng)事件總線名稱,在左側(cè)導(dǎo)航欄,單擊事件追蹤

      3. 進(jìn)入事件追蹤頁(yè)面,可查看對(duì)應(yīng)事件軌跡。

        image

    2. 查看新建的Workflow的執(zhí)行拓?fù)洹?/p>

      在ACK One工作流集群查看新建的Workflow的執(zhí)行拓?fù)洹>唧w操作,請(qǐng)參見(jiàn)開(kāi)啟Argo Server訪問(wèn)工作流集群

      image