升級及部署庫存變更
DevSecOps 的參考實作 有助於確保在將程式碼變更合併、升級並部署至生產環境之前,先進行審查。 請參閱 對等節點檢閱相符性的最佳作法,以進一步瞭解對等節點檢閱,以提供安全且合規的軟體。
將庫存項目從來源分支調升至目標分支
如果要將程式碼變更從來源分支調升至庫存儲存庫的目標 (暫置、正式作業) 分支,請完成下列步驟:
-
連續整合管線會將 庫存項目 移入來源 (主要) 分支。 使用連續部署 調升管線,將此內容從來源 (主要) 分支調升至目標 (暫置或正式作業) 分支。
- 從 cd-pipeline 儀表板中,按一下 執行管線。
- 選取 手動升級觸發程式。
- 按一下執行。 管線執行會建立合併要求,以將程式碼變更從來源分支升級至目標分支。
手動促銷觸發器 -
核准並合併取回要求。
- 按一下管線執行,並檢查促銷活動管線的執行日誌。
MR 執行日誌 - 找到合併請求的 URL 並開啟合併請求。
- 移入 必要欄位 (優先順序、變更要求受託人、其他說明及其他欄位)。
- 合併合併要求 (MR),將您的變更從來源分支提升至目標分支。
現在,您的變更已升級至目標分支,您可以使用 連續部署管線 來部署它們。
使用升級驗證管道
開啟促銷 PR 後,您可以選擇在促銷驗證管道中執行證據彙集和摘要產生,並在促銷拉取/合併請求 (PR) 上設定證據狀態。 PR 可以由 Promotion pipeline 建立,也可以在 inventory repo 中手動建立。 進一步了解 升級驗證管道。
將變更從來源環境部署至目標環境
來源和目標環境定義在連續部署管線層次。
視連續部署管線 觸發程式設定 的觸發程式設定而定,在合併合併要求或手動合併管線之後,會自動觸發管線。 若要手動合併管線,請按一下 執行管線,然後選擇要執行的觸發程式。
管線會以「管線執行 ID」啟動並標記庫存儲存庫中的現行確定。 管線會使用該標籤從目標分支 (prod) 中挑選內容,並計算現行確定與前次成功部署內容之間的部署差異。 差異由 <target-environment>_latest 標籤標示,其中 target-environment 是在連續部署管線內容中設定的值,例如 prod_latest。
管線會嘗試部署內容。 在部署期間,變更要求 ID 會附加至管線作為標籤使用的確定。 當部署階段或任務成功完成時,管道會透過將 <target-environment>_latest 標籤附加至您已推廣的提交,來結束整個流程。
有關清單工作流程的更多信息,請參閱 了解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。 清單必須引用目標登錄檔中的映像檔及其對應的映像摘要。
晉升工作流程
發佈工作流程如下:
- 將映像從來源登錄檔推廣至目標登錄檔。
- 取得目標登錄檔中該推廣圖片的摘要。
- 執行
cocoa inventory update-locations,並指定目標映像檔的位置和摘要。
cocoa inventory update-locations 指令會更新清單元資料。 它不會複製或簽署容器映像。