自动更新Harbor仓库的描述信息

Harbor 镜像仓库可以添加描述信息,像 Docker Hub 那样,浏览镜像仓库,就能大致了解镜像的用途及使用方法。但是手动维护描述信息会很麻烦,更好的方案是直接将代码仓库的 README.md 文件自动更新到描述信息。本文记录了一种在 Drone CI 中通过定制 kaniko 插件来自动更新 Harbor 仓库描述信息的方案。

方案

使用 Go 语言,新建 desc.go,代码如下:

编译

bin/desc 添加到镜像中:

desc 工具的用法:

plugin.sh 中使用 desc

更进一步,还可以考虑在此步骤中将代码仓库的自动信息附加到 README.md 的结尾,方便从镜像仓库快速跳转到代码仓库查看 Dockerfile 等需求。

用法

通过 kaniko 参数可以设置 DESC_APIDESC_FILE

更好的方式是定制 desc 工具,使用符合自身业务的 DESC_APIDESC_FILE 默认值,这样就可以不用在 yaml 中指定了。

演示

Harbor 中的效果如图所示。

Harbor 描述信息

harbor proxy

上文 desc 中调用的 DESC_API 是没有认证的,实际上是一个代理。在我的场景下,使用 OIDC 登录 Harbor,没有理解 OIDC 方式下调用 API 的方法,所以就弄了个代理,用 admin 账号调用 API,并且限制只能 CI 服务器的 IP 调用。应该还有更好的方案来调用 Harbor API。

Harbor Proxy 通过 Nginx 实现,核心配置如下:

完整项目请参考 Github

参考资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注