升級及部署庫存變更

DevSecOps 的參考實作 有助於確保在將程式碼變更合併、升級並部署至生產環境之前,先進行審查。 請參閱 對等節點檢閱相符性的最佳作法,以進一步瞭解對等節點檢閱,以提供安全且合規的軟體。

將庫存項目從來源分支調升至目標分支

如果要將程式碼變更從來源分支調升至庫存儲存庫的目標 (暫置、正式作業) 分支,請完成下列步驟:

  1. 連續整合管線會將 庫存項目 移入來源 (主要) 分支。 使用連續部署 調升管線,將此內容從來源 (主要) 分支調升至目標 (暫置或正式作業) 分支。

    1. 從 cd-pipeline 儀表板中,按一下 執行管線。
    2. 選取 手動升級觸發程式。
    3. 按一下執行。 管線執行會建立合併要求,以將程式碼變更從來源分支升級至目標分支。

    手動促銷觸發器
    手動促銷觸發器

  2. 核准並合併取回要求。

    1. 按一下管線執行,並檢查促銷活動管線的執行日誌。

    MR 執行日誌
    MR 執行日誌

    1. 找到合併請求的 URL 並開啟合併請求。
    2. 移入 必要欄位 (優先順序、變更要求受託人、其他說明及其他欄位)。
    3. 合併合併要求 (MR),將您的變更從來源分支提升至目標分支。

現在,您的變更已升級至目標分支,您可以使用 連續部署管線 來部署它們。

使用升級驗證管道

開啟促銷 PR 後,您可以選擇在促銷驗證管道中執行證據彙集和摘要產生,並在促銷拉取/合併請求 (PR) 上設定證據狀態。 PR 可以由 Promotion pipeline 建立,也可以在 inventory repo 中手動建立。 進一步了解 升級驗證管道。

將變更從來源環境部署至目標環境

來源和目標環境定義在連續部署管線層次。

持續部署管道屬性“
持續部署管道屬性

視連續部署管線 觸發程式設定 的觸發程式設定而定,在合併合併要求或手動合併管線之後,會自動觸發管線。 若要手動合併管線,請按一下 執行管線,然後選擇要執行的觸發程式。

管線會以「管線執行 ID」啟動並標記庫存儲存庫中的現行確定。 管線會使用該標籤從目標分支 (prod) 中挑選內容,並計算現行確定與前次成功部署內容之間的部署差異。 差異由 <target-environment>_latest 標籤標示,其中 target-environment 是在連續部署管線內容中設定的值,例如 prod_latest。

管線會嘗試部署內容。 在部署期間,變更要求 ID 會附加至管線作為標籤使用的確定。 當部署階段或任務成功完成時,管道會透過將 <target-environment>_latest 標籤附加至您已推廣的提交,來結束整個流程。

Git Repos and Issue Tracking倉庫標籤
Git Repos and Issue Tracking倉庫標籤

有關清單工作流程的更多信息,請參閱 了解DevSecOps管道。

更新庫存中的圖片位置

將映像檔推廣至目標容器註冊表後,請更新清單中的映像檔位置,使其指向已推廣的映像檔。

請使用 cocoa inventory update-locations 指令來更新庫存儲存庫中的工件位置。

cocoa inventory update-locations \
  --name="${inventory_image_type}/inventory.json" \
  --org="<org>" \
  --repo="<repo-name>" \
  --location="prod#${inventory_target_name}@${DIGEST}" \
  --environment="master"

例如:

cocoa inventory update-locations \
  --name="<inventory-entry-name>/inventory.json" \
  --org="<org-name>" \
  --repo="<repo-name>" \
  --location="prod#icr.io/.../baseimage:4.x.y@sha256:..." \
  --environment="master"

--location 參數用於指定目標映像的位置及其 SHA-256 摘要。 位置的格式如下:

<environment>#<image>:<tag>@sha256:<digest>

例如:

prod#icr.io/<namespace>/<repository>/baseimage:4.x.y@sha256:<digest>

宣傳照拍攝與簽名會

在更新清單之前,必須將映像複製到目標登錄檔中,並為目標映像參考提供有效的簽名。

在映像檔經過推廣並簽署後,請從目標登錄檔中取得該映像檔的摘要,並將該摘要用於 cocoa inventory update-locations。 {: important} 在映像檔完成升級並簽署後,執行 cocoa inventory update-locations。 清單必須引用目標登錄檔中的映像檔及其對應的映像摘要。

晉升工作流程

發佈工作流程如下:

  1. 將映像從來源登錄檔推廣至目標登錄檔。
  2. 取得目標登錄檔中該推廣圖片的摘要。
  3. 執行 cocoa inventory update-locations ,並指定目標映像檔的位置和摘要。

cocoa inventory update-locations 指令會更新清單元資料。 它不會複製或簽署容器映像。