跳转到主要内容

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代码框架

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pubtools_quay-0.27.0.tar.gz (152.0 kB 查看哈希值)

上传时间

构建分布

pubtools_quay-0.27.0-py2.py3-none-any.whl (97.0 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面