Harbor
Tier: 基础版,专业版,旗舰版
Offering: JihuLab.com,私有化部署
您可以使用 Harbor 作为极狐GitLab 项目的容器镜像仓库。
Harbor 是一个开源镜像仓库,可帮助您跨 Kubernetes 和 Docker 等云原生计算平台管理制品。
如果您需要极狐GitLab CI/CD 和容器镜像仓库,Harbor 集成可以为您提供帮助。
前提条件
在 Harbor 实例中,确保:
- 已创建要集成的项目。
- 已认证用户具有在 Harbor 项目中拉取、推送和编辑镜像的权限。
配置极狐GitLab
极狐GitLab 支持在群组或项目级别集成 Harbor 项目。在极狐GitLab 中完成以下步骤:
-
在顶部栏中,选择 搜索或跳转到 并找到您的项目。
-
在左侧边栏中,选择 设置 > 集成。
-
选择 Harbor。
-
在 启用集成 下,选中 激活 复选框。
-
提供 Harbor 配置信息:
- Harbor URL:要链接到此极狐GitLab 项目的 Harbor 实例的基础 URL。例如,https://harbor.example.net。
- Harbor 项目名称:Harbor 实例中的项目名称。例如,testproject。
- 用户名:您在 Harbor 实例中的用户名,应符合前提条件中的要求。
- 密码:您的用户名的密码。
-
选择 保存更改。
Harbor 集成激活后:
- 全局变量 $HARBOR_USERNAME、$HARBOR_HOST、$HARBOR_OCI、$HARBOR_PASSWORD、$HARBOR_URL 和 $HARBOR_PROJECT 被创建用于 CI/CD。
- 项目级集成设置会覆盖群组级集成设置。
安全注意事项
保护对 Harbor API 的请求
对于通过 Harbor 集成发出的每个 API 请求,连接到 Harbor API 的凭证使用 username:password 组合。以下是安全使用的建议:
- 在您连接的 Harbor API 上使用 TLS。
- 遵循最小权限原则(在 Harbor 上的访问权限)使用您的凭证。
- 为您的凭证制定轮换策略。
CI/CD 变量安全
推送到您的 .gitlab-ci.yml 文件的恶意代码可能会危及您的变量,包括 $HARBOR_PASSWORD,并将其发送到第三方服务器。有关更多详细信息,请参阅CI/CD 变量安全。
使用 Harbor 变量
使用 OCI 镜像仓库推送 Helm Chart
Helm 默认支持 OCI 镜像仓库。Harbor 2.0 及更高版本支持 OCI。在 Helm 的博客和文档中了解更多关于 OCI 的信息。
yaml1helm: 2 stage: helm 3 image: 4 name: dtzar/helm-kubectl:latest 5 entrypoint: [''] 6 variables: 7 # 启用 OCI 支持(自 Helm v3.8.0 起不再需要) 8 HELM_EXPERIMENTAL_OCI: 1 9 script: 10 # 登录 Helm 镜像仓库 11 - helm registry login "${HARBOR_URL}" -u "${HARBOR_USERNAME}" -p "${HARBOR_PASSWORD}" 12 # 打包您的 Helm Chart,它位于 `test` 目录中 13 - helm package test 14 # 您的 Helm Chart 创建为 <chart name>-<chart release>.tgz 15 # 您可以将所有构建的 Chart 推送到您的 Harbor 仓库 16 - helm push test-*.tgz ${HARBOR_OCI}/${HARBOR_PROJECT}