極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有:
- 極狐GitLab 中文文檔
- 極狐GitLab 中文論壇
- 極狐GitLab 官網
軟件包庫中的 Helm charts (BASIC ALL)
WARNING:Helm chart 庫正在開發中,由于功能有限,尚未準備好用于生產。
在項目的軟件包庫中發布 Helm chart。然后在需要將它們用作依賴項時安裝它們。
構建 Helm 包
在 Helm 文檔中閱讀有關這些主題的更多信息:
- 創建您自己的 Helm chart
- 將 Helm chart 打包成 chart 存檔
對 Helm 庫進行身份驗證
要對 Helm 庫進行身份驗證,您需要:
-
個人訪問令牌,其范圍設置為api。
-
部署令牌,其范圍設置為
read_package_registry
、write_package_registry
或兩者均有。 -
CI/CD 作業令牌。
發布軟件包
NOTE:您可以發布具有重復名稱或版本的 Helm chart。如果存在重復項,系統總是返回最新版本的 chart。
構建完成后,可以使用 curl
或 helm cm-push
將 chart 上傳到所需的 channel:
使用 curl
:
curl --request POST \--form 'chart=@mychart-0.1.0.tgz' \--user <username>:<access_token> \https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/api/<channel>/charts
-
<username>
:GitLab 用戶名或部署令牌用戶名。 -
<access_token>
:個人訪問令牌或部署令牌。 -
<project_id>
:項目 ID(如42
)或 URL-encoded 項目路徑(如group%2Fproject
)。 -
<channel>
:channel 的名稱(如stable
)。
使用 helm cm-push
插件:
helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm cm-push mychart-0.1.0.tgz project-1
-
<username>
:GitLab 用戶名或部署令牌用戶名。 -
<access_token>
:個人訪問令牌或部署令牌。 -
<project_id>
:項目 ID(如42
)。 -
<channel>
:channel 的名稱(如stable
)。
發布頻道
您可以將 Helm 包發布到極狐GitLab 中的頻道。頻道是一個方法,您可以使用它來區分 Helm 包庫。例如,您可以使用 stable
和 devel
作為頻道,以允許用戶添加 stable
倉庫,而 devel
倉庫是隔離的。
使用 CI/CD 發布 Helm 包
要通過 GitLab CI/CD 自動發布 Helm 包,您可以使用 CI_JOB_TOKEN
代替命令中的個人訪問令牌。
例如:
image: curlimages/curl:lateststages:- uploadupload:stage: uploadscript:- 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@mychart-0.1.0.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/<channel>/charts"'
-
<username>
:GitLab 用戶名或部署令牌用戶名。 -
<access_token>
:個人訪問令牌或部署令牌。 -
<channel>
:channel 的名稱(如stable
)。
安裝軟件包
NOTE:當請求一個包時,系統只考慮最近創建的 1000 個包。對于每個包,只返回最近的包文件。
要安裝最新版本的 chart,請使用以下命令:
helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm install my-release project-1/mychart
-
<username>
:GitLab 用戶名或部署令牌用戶名。 -
<access_token>
:個人訪問令牌或部署令牌。 -
<project_id>
:項目 ID(如42
)。 -
<channel>
:channel 的名稱(如stable
)。
如果先前已添加倉庫,則可能需要運行:
helm repo update
使用最新可用的 chart 更新 Helm 客戶端。
有關更多信息,請參閱使用 Helm。
故障排查
上傳后,chart 在軟件包庫中不可見
檢查 Sidekiq 日志是否有任何相關錯誤。如果您看到 Validation failed: Version is invalid
,則表示您的 Chart.yaml
文件中的版本不符合 Helm Chart 版本規范。
要修復錯誤,請使用正確的版本語法并再次上傳 chart。
helm push
導致錯誤
Helm 3.7 為 helm-push
插件引入了重大更改。您可以更新 Chart Museum plugin,使用 helm cm-push
。