1.6.19. OpenShift CLI (oc)
在以前的版本中,当将 oc-mirror 插件 v2 与-
delete标志搭配使用时,从镜像 registry 中删除 Operator 目录,进程会失败并显示以下错误:2024/08/02 12:18:03 [ERROR]: [OperatorImageCollector] pinging container registry localhost:55000: Get "https://localhost:55000/v2/": http: server gave HTTP response to HTTPS client.这是因为 oc-mirror 插件 v2 使用 HTTPS 而不是 HTTP 查询本地缓存。在这个版本中,HTTP 客户端在查询前正确配置,从而解决了这个问题。(OCPBUGS-41503)
在以前的版本中,当在 mirror-to-disk 模式中使用 oc-mirror 插件 v2 时,目录镜像和内容会存储在
working-dir下的子文件夹中,具体取决于镜像摘要。在完全断开连接的环境中的 disk-to-mirror 过程中,插件会尝试通过源 registry (不可用)解析目录镜像标签,从而导致此类错误:[ERROR] : [OperatorImageCollector] pinging container registry registry.redhat.io: Get "http://registry.redhat.io/v2/": dial tcp 23.217.255.152:80: i/o timeout在这个版本中,插件会在 disk-to-mirror 过程中检查本地缓存,以确定摘要,以避免查询 registry。(OCPBUGS-36214)
-
在以前的版本中,当在断开连接的环境中在 mirror-to-disk 模式下使用 oc-mirror 插件 v2 时,插件无法访问
api.openshift.com来下载graph.tar.gz,从而导致镜像失败。在这个版本中,插件会在设置了UPDATE_URL_OVERRIDE环境变量的断开连接的环境中搜索图形镜像的本地缓存。如果缺少图形镜像,则该插件会跳过它而不会失败。(OCPBUGS-38469) -
在以前的版本中,oc-mirror 插件 v2 无法在完全断开连接的环境中从 disk-to-mirror 中镜像 Operator 目录。此问题也会影响在
ImageSetConfiguration文件中指定了targetCatalog的目录。在这个版本中,插件可以在完全断开连接的环境中成功镜像目录,targetCatalog功能可以正常工作。(OCPBUGS-34521) 在以前的版本中,使用 oc-mirror 插件 v2 时,对于
oc-mirror命令不会验证-v2和--v2标识。因此,如果用户错误地使用了-v2,(这会将日志级别设置为 2),而不是使用--v2(这会切换为 oc-mirror plugin v2),会收到一个不明确的错误消息。在这个版本中,提供了标记验证。如果使用-v2标志,ImageSetConfig使用v2alpha1API,且没有指定--v2,会显示一个错误信息。现在,启用了以下信息,为用户提供清晰的信息:[ERROR]: Detected a v2 ImageSetConfiguration, please use --v2 instead of -v2.在以前的版本中,oc-mirror 插件 v2 在 registry 中遇到错误时不会自动执行重试,如超时、过期的身份验证令牌、HTTP 500 错误等。在这个版本中,这些错误的重试会被实现,用户可以使用以下标记配置重试行为:
-
--retry-times:指定重试尝试的次数。默认值为 2。 -
--retry-delay:设置重试之间的延迟。默认值为 1 秒。 -
--image-timeout:定义同步一个镜像的超时时间。默认值为 10 分钟。 --max-parallel-downloads:控制在单个复制操作期间同时拉取的最大层数。默认值为 6。
-
-
在以前的版本中,当将 oc-mirror 插件 v2 与
-rebuild-catalogs标志搭配使用时,目录缓存会在本地重新生成,这会导致因为opm二进制文件和平台兼容性问题以及集群的缓存完整性问题而造成失败。在这个版本中,--rebuild-catalogs标志默认为 true,因此目录会被重新构建,而不会重新生成内部缓存。另外,image 命令已被修改以在 pod 启动期间生成缓存,这可能会延迟 pod 初始化。(OCPBUGS-37667) - 在以前的版本中,在使用系统代理设置代理后面运行时,oc-mirror 插件 v2 不使用系统代理配置为发行版本恢复签名。在这个版本中,系统代理设置会在签名恢复过程中应用。(OCPBUGS-37055)
-
在以前的版本中,当遇到与语义版本不兼容的捆绑包版本的 Operator 时,oc-mirror 插件 v2 会停止镜像过程,这也会阻止创建集群资源,如 IDMS、ITMS 和
CatalogSource对象。在这个版本中,插件会跳过这些有问题的镜像,而不是停止进程。如果镜像使用不正确的语义版本化,控制台中会显示一条警告消息,其中包含相关的镜像详情。(OCPBUGS-33081) -
在以前的版本中,当因为网络问题或无效的 Operator 目录失败时,oc-mirror 插件 v2 不会生成
ImageDigestMirrorSet(IDMS) 或ImageTagMirrorSet(ITMS) 文件。在这个版本中,oc-mirror会在 Operator 或额外镜像失败时继续镜像其他镜像,只有在发行镜像失败时停止。集群资源基于成功镜像的镜像生成,日志文件中收集所有错误以进行检查。(OCPBUGS-34020) - 在以前的版本中,OpenShift Container Platform 发行镜像在某些 registry 中不可见,如 Red Hat Quay。这导致用户无法安装 OpenShift Container Platform,因为缺少发行镜像。在这个版本中,发行镜像总是被标记,以确保它们出现在 Red Hat Quay 等 registry 中,从而启用正确的安装。(OCPBUGS-36410)
-
在以前的版本中,
oc adm must-gather命令需要很长时间才能在大型集群中收集与 CPU 相关的性能数据。在这个版本中,数据会并行收集,而不是按顺序收集,这会缩短数据收集时间。(OCPBUGS-34360) -
在以前的版本中,
oc set env命令错误地更改了Route和DeploymentConfig对象的 API 版本,如apps.openshift.io/v1变为v1。这会导致命令退出并带有unable to recognize no matches for kind错误。在这个版本中,错误已被修复,os set env命令会在Route和DeploymentConfig对象中保留正确的 API 版本。(OCPBUGS-32108) -
在以前的版本中,当
must-gather操作因任何原因且用户手动删除 leftover 命名空间失败时,must-gather命令创建的集群角色绑定将保留在集群中。在这个版本中,当删除临时must-gather命名空间时,关联的集群角色绑定会自动删除。(OCPBUGS-31848) -
在以前的版本中,当使用带有 oc-mirror 插件 v2 的
--v2标志时,如果没有同步镜像,一些镜像被跳过,则会生成空的imds.yaml和itms.yaml文件。在这个版本中,只有在至少一个镜像被成功同步时,才会触发自定义资源生成,从而防止创建空文件。(OCPBUGS-33775)