Pubtools-quay
项目描述
用于操作Quay服务的脚本集
要求
Python 3.5+
对标记操作需要Skopeo
功能
pubtools-quay-tag-image - 从源复制quay镜像到目标(s)
pubtools-quay-merge-manifest-list - 合并新旧镜像的清单。新(源)镜像的架构将覆盖目标架构。源镜像中缺失的架构仍将保留在合并的清单列表中。目标镜像的清单列表将被合并的清单列表覆盖。
pubtools-quay-untag - 从quay存储库中删除标签。要删除的标签由镜像引用指定。除了Docker凭据外,还需要指定Quay API OAuth令牌。如果存储库中的某些镜像将失去其最后一个标签,脚本将不会执行取消标记操作。在这种情况下,可以通过使用–remove-last参数强制取消标记。
设置
$ pip install -r requirements.txt $ pip install . or $ python setup.py install
用法
在本地将图像从源复制到目标。Quay密码从环境变量注入。
$ export QUAY_PASSWORD=token $ pubtools-quay-tag-image \ --source-ref quay.io/source/image:34 \ --dest-ref quay.io/target/image:34 \ --quay-user quay+username \
通过ssh(使用密码)连接到远程主机,并将复制到多个目标。
$ export QUAY_PASSWORD=token $ export SSH_PASSWORD=123456 $ pubtools-quay-tag-image \ --source-ref quay.io/source/image:34 \ --dest-ref quay.io/target/image:34 \ --dest-ref quay.io/target/image2:34 \ --quay-user quay+username \ --remote-exec \ --ssh-remote-host 127.0.0.1 \ --ssh-remote-host-port 2222 \ --ssh-username user
通过ssh(使用私钥)连接到远程主机,执行复制操作。
$ export QUAY_PASSWORD=token $ export SSH_PASSWORD=123456 $ pubtools-quay-tag-image \ --source-ref quay.io/source/image:34 \ --dest-ref quay.io/target/image:34 \ --quay-user quay+username \ --remote-exec \ --ssh-remote-host 127.0.0.1 \ --ssh-remote-host-port 2222 \ --ssh-username user \ --ssh-key-filename /path/to/file.key \
合并源-ref和dest-ref的清单列表,并用结果覆盖dest-ref。
$ export QUAY_PASSWORD=token $ pubtools-quay-merge-manifest-list \ --source-ref quay.io/src/image:1 \ --dest-ref quay.io/dest/image:1 \ --quay-user quay+username
取消多个图像的标签。
$ export QUAY_PASSWORD=token $ export QUAY_API_TOKEN=oauth_token $ pubtools-quay-tag-image \ --reference quay.io/src/image:1 \ --reference quay.io/src/image:2 \ --quay-user quay+username \ --remote-exec \ --ssh-remote-host 127.0.0.1 \ --ssh-remote-host-port 2222 \ --ssh-username user \ --ssh-key-filename /path/to/file.key \
取消图像的标签,并强制操作,如果标签是某些摘要的最后一个引用。
$ export QUAY_PASSWORD=token $ export QUAY_API_TOKEN=oauth_token $ pubtools-quay-tag-image \ --reference quay.io/src/image:1 \ --remove-last \ --quay-user quay+username \
变更日志
0.27.0 (2024-09-03)
创建entrypoint iib-add-deprecations
0.26.2 (2024-07-19)
在cosign身份中使用标签引用
0.26.1 (2024-07-19)
提高pubtools-sign依赖项
0.26.0 (2024-07-18)
支持cosign签名时的多个身份和标签注释
0.25.0 (2024-06-24)
支持SignEntry中的pub_reference,对应cosign的–sign-container-identity
0.24.0 (2024-06-05)
确保异常的cosign错误被触发
根据目标设置值设置pubtools-iib构建超时参数
修复ML证明双重编码的问题
在证明命令中添加重试
当删除标签时容忍404错误
0.23.0 (2024-05-29)
按仓库对备份项目进行排序
支持取消OCI图像的标签
更新日志消息以显示具有不良清单类型的引用
0.22.0 (2024-05-21)
当清单声明的重试限制达到时触发错误,如果旧的和新的清单都有摘要,则清单过时。
0.21.0 (2024-05-17)
修复推送索引图像到错误命名空间的问题,修复在没有非fbc操作员时删除索引图像签名的问题。
0.20.0 (2024-05-10)
修复ML合并工作流程的SBOM发布问题
在发布之前从SBOM中删除incompleteness_reasons字段
0.19.0 (2024-03-18)
支持容器图像的cosign签名
0.18.0 (2024-03-18)
为清单列表生成SBOM证明
0.17.0 (2024-02-27)
如果选择fbc且目标OCP >=4.11,则不应调用IIB
0.16.0 (2024-02-08)
为容器推送配置跟踪
添加选项以禁用将透明日志发送到rekor
0.15.0 (2023-12-07)
IIB请求失败时结束任务
从目标设置设置AWS KMS凭据
修复0 IIB构建导致推送失败的问题
0.14.0 (2023-10-17)
在调用iib-add-bundles时添加–check-related-images选项
在调用pubtools-iib时删除–skip-pulp参数
0.13.0 (2023-09-27)
实现推送容器安全清单的工作流程
支持预发布浮动标签
删除cosign创建的图像
0.12.1 (2023-09-13)
允许radas消息地址可格式化
0.12.0 (2023-07-25)
支持预发布容器
skopeo复制命令更好的错误报告
本地执行器用于tag-docker操作
0.11.3 (2023-07-25)
并行触发构建索引图像
使请求会话对象为每个线程
0.11.2 (2023-07-10)
为添加和删除签名添加日志
删除较少的签名
使用热修复标签对热修复索引图像进行签名
0.11.1 (2023-05-15)
使执行器可配置
锁定bandit版本
将删除过时的签名添加到task_status.jsonl中
0.11.0 (2023-03-14)
修复并行容器推送中的竞争条件
并行删除签名
在fbc错误上不执行iib操作
当操作员项由于fbc不一致失败时,提供更好的错误消息
将FBC逻辑更改为仅当ocp_version >=4.13时才调用IIB
取消requests-mock版本的锁定
为上传签名设置请求线程
使用新的tox版本重新格式化
添加对FBC操作员的支持
删除Python2支持
使用索引图像目标设置中的命名空间
将iib_deprecation_list_url设置为可选的目标设置
0.10.4 (2022-10-04)
验证捆绑的存在
不要在IIB请求中传递架构
0.10.3 (2022-10-04)
多线程推送图像到quay
添加对热修复操作员的支持
在容器中使用随机文件名作为密码文件
修复签名删除问题
0.10.2 (2022-08-16)
为tag docker签名使用真实的任务ID
从构建详细信息获取中间仓库
0.10.1 (2022-6-17)
推送docker时删除重复的目标
在签名服务上监听特定的子主题
0.10.0 (2022-6-01)
修复amd64图像的架构
当没有要签名的对象时返回空的清单声明
删除推送项的排序
取消python-qpid-proton版本的锁定
删除创建的声明消息
将条件更改为不需要哈希
当当前目标没有机器学习时推送多架构镜像
轮询检查标签是否存在的一致结果
0.9.3 (2022-04-01)
修复签名问题
跳过获取非amd64镜像的v2s1摘要
减少skopeo对源注册表的登录次数
在镜像untagger中容忍get_manifest 404
0.9.2 (2022-03-02)
对所有HTTP请求添加超时
删除入口点发送UMB消息的选项
0.9.1 (2022-02-02)
修复为v2ch2单架构容器创建清单
0.9.0 (2022-28-1)
支持v2ch2单架构容器
支持v2ch1容器
仅在所有索引镜像构建失败时运行回滚
将图像标记的重试作为推送的一部分添加
跳过根据目标设置中的值检查存储库弃用
支持quay操作额外的源主机
签名V2S1清单
使用永久索引镜像作为源标记索引镜像时间戳
0.8.3 (2021-10-6)
修复从索引中使用overwrite的问题
0.8.2 (2021-10-6)
使弃用列表功能可选
0.8.1 (2021-10-5)
禁用签名和取消标记图像时发送UMB消息
0.8.0 (2021-9-7)
使用SSL证书进行Pyxis认证
在从Pyxis获取签名时删除重复的摘要
删除push_docker入口点的返回
0.7.2 (2021-8-23)
在回滚过程中删除标签时不引发404错误
0.7.1 (2021-8-20)
修复在Python 2.6上安装'docker'依赖项的问题
0.7.0 (2021-8-18)
添加钩子以声明感兴趣的事件
创建文档
添加在容器内执行命令的选项
为通过Docker HTTP API获取所有标签添加分页支持
捕获IIB操作异常
使用自己的令牌获取索引镜像清单
降低python-qpid-proton版本
0.6.0 (2021-7-14)
为删除Quay存储库创建入口点
为清除Quay存储库创建入口点
将签名删除添加到tag-docker操作
删除不必要的'external_repos'
为OSBS组织添加使用额外的Quay令牌
允许在删除存储库和清除存储库任务中指定多个存储库
如果没有构造操作员声明消息,则跳过签名
添加对无分隔符存储库的支持
将声明消息的“repo”参数更改为具有外部表示形式
根据pubtools约定修复日志记录器
在skopeo –get-login的输出中检查用户名
删除使用Quay API读取存储库数据的使用
为IIB操作添加签名删除
更新sigstore以与当前实现保持一致
允许推送到不存在的存储库
0.5.0 (2021-6-2)
修复中间索引镜像
实现tag docker
如果签名密钥为None,则添加跳过签名
修复pub XMLRPC调用
实现IIB方法的入口点
0.4.0 (2021-5-4)
实现push-docker原型
将签名顺序更改为在推送之前发生
使用中间索引镜像进行签名
0.3.0 (2021-2-11)
修复pyrsistent依赖的版本约束
0.2.0 (2021-2-9)
修复requirements.txt的定义,允许在Python 2.6上安装
0.1.0 (2021-2-9)
初始版本。
添加了标记图像入口点
添加了合并清单列表入口点
添加了push docker代码框架