本篇將介紹4個 Quay 非常實用的進階功能。
可以使用 Tag Expiration 的功能將映像檔設置為在選定的日期和時間從 Red Hat Quay 中自動刪除。以下是有關這個功能的一些注意事項:
當您只想構建並推送一些映像檔進行短期測試用時,標籤過期可以幫忙減少這些老舊的映像檔佔據太多空間。 標籤過期可以通過兩種方式設置:
quay.expires-after = 20h
的標籤將導致標籤在指定時間後自動過期。時間值可以分別為小時,天和周,例如1h,2d,3w。如果您在不同區域上有多個不同的 Quay 服務器,或者想要將 DockerHub 或 Red Hat Registry 的最新官方映像檔同步到本地 Repository 的話,那麼這個 Mirror Repository 功能很適合您。要注意的是,一旦設定為 Mirror Repository,則無法透過一般的方式來將映像檔上傳到該 Repository。而且通常同步是單向的,你不應該讓兩個 Repository 雙向同步。
要鏡像外部Repository,操作如下:
創建一個機械人帳號以存取 Mirror Repository 的圖像:
選擇新建 Repository 並為其命名。
選擇設置按鈕,然後將 Repository 狀態更改為 MIRROR。
*
來選擇多個標籤(1-*)。您至少必須明確輸入一個標籤。使用日誌
中檢查同步狀態Quay 可以為 Repository 生命週期中發生事件時,利用不同方式通知使用者或透過 Webhook 呼叫CI/CD服務進行自動化處理。Quay 常見的事件通知有:
事件發生時,Quay 可以使用以下方法通知用戶:
Quay 提供 OAuth2 兼容的 API。 當您要進行一些自動化的設置及管理 Quay 時非常有用,例如自動設置 Mirror-Repository
或 Notification
。 OAuth access token 的生成通常必須通過 UI 在 “應用程序” 設置中的 “Generate Token” 選項完成。步驟如下:
curl -s -X GET -k https://quay-eu-uat/api/v1/repository/${QUAY_REPO}/image/${IMAGE_ID}/security?vulnerabilities=true -H "Authorization: Bearer ${QUAY_ACCESS_TOKEN}" -H "Content-Type: application/json"
作為私有映像倉庫解決方案,Quay 企業版雖然頗昂貴,但也提供了相當完整且有用的功能。之後我們將繼續介紹如何在 OpenShift 存取 Quay 上面的映像檔。