第 5 章 GitOps
5.1. Red Hat OpenShift GitOps 发行注记
Red Hat OpenShift GitOps 是为云原生应用程序实施持续部署的一种声明方法。当应用程序部署到不同环境中的不同集群时,Red Hat OpenShift GitOps 可确保应用程序的一致性,如开发、临时和生产环境。Red Hat OpenShift GitOps 可帮助您自动执行以下任务:
- 确保集群具有类似的配置、监控和存储状态
- 从已知状态恢复或重新创建集群
- 对多个 OpenShift Container Platform 集群应用或恢复配置更改
- 将模板配置与不同环境关联
- 在集群间(从调试到生产阶段)推广应用程序。
如需了解 Red Hat OpenShift GitOps 的概述,请参阅了解 OpenShift GitOps。
5.1.1. 兼容性和支持列表
这个版本中的一些功能当前还只是一个技术预览。它们并不适用于在生产环境中使用。
在下表中,被标记为以下状态的功能:
- TP: 技术预览
- GA: 正式发行
- NA:不适用
OpenShift GitOps | 组件版本 | OpenShift 版本 | ||||||
---|---|---|---|---|---|---|---|---|
版本 | kam | Helm | Kustomize | Argo CD | ApplicationSet | Dex | RH SSO | |
1.6.0 | 0.0.46 TP | 3.8.1 GA | 4.4.1 GA | 2.4.5 GA | GA 并包含在 ArgoCD 组件中 | 2.30.3 GA | 7.5.1 GA | 4.8-4.11 |
1.5.0 | 0.0.42 TP | 3.8.0 GA | 4.4.1 GA | 2.3.3 GA | 0.4.1 TP | 2.30.3 GA | 7.5.1 GA | 4.8-4.11 |
1.4.0 | 0.0.41 TP | 3.7.1 GA | 4.2.0 GA | 2.2.2 GA | 0.2.0 TP | 2.30.0 GA | 7.4.0 GA | 4.7-4.10 |
1.3.0 | 0.0.40 TP | 3.6.0 GA | 4.2.0 GA | 2.1.2 GA | 0.2.0 TP | 2.28.0 GA | 7.4.0 GA | 4.7-4.9, 4.6 带有有限的 GA 支持 |
1.2.0 | 0.0.38 TP | 3.5.0 GA | 3.9.4 GA | 2.0.5 GA | 0.1.0 TP | 不适用 | 7.4.0 GA | 4.8 |
1.1.0 | 0.0.32 TP | 3.5.0 GA | 3.9.4 GA | 2.0.0 GA | 不适用 | 不适用 | 不适用 | 4.7 |
- "kam"是 Red Hat OpenShift GitOps Application Manager(kam)的缩写。
- "RH SSO"是 Red Hat SSO 的缩写。
5.1.1.1. 技术预览功能
下表中提到的功能当前还只是一个技术预览 (TP)。它们并不适用于在生产环境中使用。
功能 | OCP 版本中的 TP | GAOCP 版本中的 GA |
---|---|---|
非 control plane 命名空间中的 Argo CD 应用程序 | 4.8, 4.9, 4.10, 4.11, 4.12 | 不适用 |
OpenShift Container Platform Web 控制台的 Developer 视角中的 Red Hat OpenShift GitOps Environments 页面 | 4.7, 4.8, 4.9, 4.10, 4.11, 4.12 | 不适用 |
Argo CD 通知控制器 | 4.8, 4.9, 4.10, 4.11, 4.12 | 不适用 |
5.1.2. 使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
5.1.3. Red Hat OpenShift GitOps 1.6.7 发行注记
Red Hat OpenShift GitOps 1.6.7 现在包括在 OpenShift Container Platform 4.8, 4.9, 4.10, 和 4.11 中。
5.1.3.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,从 v0.5.0 开始的所有版本的 Argo CD Operator 都容易受到信息泄漏漏洞的影响。因此,未授权的用户可以通过检查 API 错误消息并使用发现的应用程序名称作为另一个攻击的起点来枚举应用程序名称。例如,攻击者可能会利用他们了解应用程序名称来让管理员授予更高的特权。在这个版本中解决了 CVE-2022-41354 错误。GITOPS-2635, CVE-2022-41354
5.1.4. Red Hat OpenShift GitOps 1.6.6 发行注记
Red Hat OpenShift GitOps 1.6.6 现在包括在 OpenShift Container Platform 4.8, 4.9, 4.10, 和 4.11 中。
5.1.4.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,从 v0.5.0 开始的所有版本的 Argo CD Operator 都容易受到信息泄漏漏洞的影响。因此,未授权的用户可以通过检查 API 错误消息并使用发现的应用程序名称作为另一个攻击的起点来枚举应用程序名称。例如,攻击者可能会利用他们了解应用程序名称来让管理员授予更高的特权。在这个版本中解决了 CVE-2022-41354 错误。GITOPS-2635, CVE-2022-41354
5.1.5. Red Hat OpenShift GitOps 1.6.4 发行注记
Red Hat OpenShift GitOps 1.6.4 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.5.1. 修复的问题
- 在此次更新之前,Argo CD v1.8.2 及之后的版本的所有版本都会受到不正确的授权错误的影响。因此,Argo CD 可以接受可能不适用于访问集群的受众的令牌。这个问题现已解决。CVE-2023-22482
5.1.6. Red Hat OpenShift GitOps 1.6.2 发行注记
Red Hat OpenShift GitOps 1.6.2 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 上。
5.1.6.1. 新功能
-
此发行版本从
openshift-gitops-operator
CSV 文件中删除DISABLE_DEX
环境变量。因此,在执行全新的 Red Hat OpenShift GitOps 安装时,不再设置此环境变量。GITOPS-2360
5.1.6.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,当在一个项目中安装了超过 5 个 Operator 时,订阅健康检查会为缺失的 InstallPlan 标记为 degraded。在这个版本中解决了这个问题。GITOPS-2018
- 在此次更新之前,Red Hat OpenShift GitOps Operator 会在检测到 Argo CD 实例使用已弃用的字段时,使用弃用通知警告来垃圾邮件集群。在这个版本中解决了这个问题,为每个检测到字段的实例只显示一个警告事件。GITOPS-2230
- 在 OpenShift Container Platform 4.12 中,安装控制台是可选的。在这个版本中,更新了 Red Hat OpenShift GitOps Operator,以防止安装控制台时出现 Operator 错误。GITOPS-2352
5.1.7. Red Hat OpenShift GitOps 1.6.1 发现注记
Red Hat OpenShift GitOps 1.6.1 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.7.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,由于存活度探测的无响应,大型应用程序中的应用程序控制器会多次重启。在这个版本中,通过删除应用程序控制器
StatefulSet
对象中的存活度探测解决了这个问题。GITOPS-2153 在此次更新之前,在使用未由证书颁发机构签名的证书设置时,将无法验证 RHSSO 证书。在这个版本中解决了这个问题,您可以提供一个自定义证书,它会在与它通信时验证 Keycloak 的 TLS 证书。您可以将
rootCA
添加到 Argo CD 自定义资源.spec.keycloak.rootCA
字段中。Operator 使用 PEM 编码的 root 证书协调此更改并更新argocd-cm
ConfigMap
中的oidc.config
字段。GITOPS-2214注意REST在更新
.spec.keycloak.rootCA
字段后重启 Argo CD 服务器 pod。例如:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: sso: provider: keycloak keycloak: rootCA: | ---- BEGIN CERTIFICATE ---- This is a dummy certificate Please place this section with appropriate rootCA ---- END CERTIFICATE ---- server: route: enabled: true
- 在此次更新之前,由 Argo CD 管理的终止命名空间会阻止创建角色和其他受管命名空间配置。在这个版本中解决了这个问题。GITOPS-2277
-
在此次更新之前,当将
anyuid
的 SCC 分配给 DexServiceAccount
资源时,Dex Pod 无法启动CreateContainerConfigError
。在这个版本中,通过将默认用户 ID 分配给 Dex 容器解决了这个问题。GITOPS-2235
5.1.8. Release notes for Red Hat OpenShift GitOps 1.6.0
Red Hat OpenShift GitOps 1.6.0 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.8.1. 新功能
当前发行版本包括以下改进:
-
在以前的版本中,Argo CD
ApplicationSet
控制器是一个技术预览 (TP) 功能。在这个版本中,它是一个正式发行 (GA) 功能。GITOPS-1958 -
在这个版本中,Red Hat OpenShift GitOps 的最新版本包括在
latest
和基于版本的频道中。要获取这些升级,请更新Subscription
对象 YAML 文件中的channel
参数: 将其值从stable
改为latest
或基于版本的频道,如gitops-1.6
。GITOPS-1791 -
在这个版本中,控制 keycloak 配置的
spec.sso
字段的参数会移到.spec.sso.keycloak
中。.spec.dex
字段的参数添加到.spec.sso.dex
中。使用.spec.sso.provider
开始启用或禁用 Dex。.spec.dex
参数已弃用,计划在版本 1.9 中删除,以及 keycloak 配置的DISABLE_DEX
和.spec.sso
字段。GITOPS-1983 -
在这个版本中,Argo CD 通知控制器是一个可选工作负载,可以使用 Argo CD 自定义资源定义中的
.spec.notifications.enabled
参数启用或禁用。Argo CD 通知控制器是一个技术预览功能。GITOPS-1917
Argo CD Notifications 控制器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
- 在这个版本中,Tekton pipeline 运行和任务运行的资源排除会被默认添加。Argo CD 默认修剪这些资源。这些资源排除会添加到 OpenShift Container Platform 中创建的新 Argo CD 实例中。如果通过 CLI 创建实例,则不添加这些资源。GITOPS-1876
-
在这个版本中,您可以通过在 Argo CD Operand 的自定义资源定义中设置
resourceTrackingMethod
参数来选择 Argo CD 使用的 tracking 方法。GITOPS-1862 -
在这个版本中,您可以使用 Red Hat OpenShift GitOps Argo CD 自定义资源的
extraConfig
字段在argocd-cm
configMap 中添加条目。指定的条目会在没有验证的情况下协调实时config-cm
configMap。GITOPS-1964 - 在这个版本中,在 OpenShift Container Platform 4.11 中,Developer 视角中的 Red Hat OpenShift GitOps Environments 页面会显示应用程序环境成功部署的历史记录,以及指向每个部署的修订版本的链接。GITOPS-1269
- 在这个版本中,您可以使用 Argo CD 管理资源,这些资源也被 Operator 用作模板资源或 "source"。GITOPS-982
- 在这个版本中,Operator 配置 Argo CD 工作负载,其正确权限以满足 Kubernetes 1.24 中启用的 Pod 安全准入。GITOPS-2026
- 在这个版本中,支持配置管理插件 2.0。您可以使用 Argo CD 自定义资源为仓库服务器指定边栏容器。GITOPS-776
- 在这个版本中,Argo CD 组件和 Redis 缓存之间的所有通信都是使用 TLS 加密进行保护。GITOPS-720
- 此 Red Hat OpenShift GitOps 发行版本添加了对 OpenShift Container Platform 4.10 的 IBM Z 和 IBM Power 的支持。IBM Z 和 IBM Power 不支持在受限环境中安装。
5.1.8.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,
system:serviceaccount:argocd:gitops-argocd-application-controller
控制器没有在命名空间webapps-dev
的monitoring.coreos.com
API 组中创建 "prometheusrules" 资源。在这个版本中解决了这个问题,Red Hat OpenShift GitOps 可以管理monitoring.coreos.com
API 组中的所有资源。GITOPS-1638 -
在此次更新之前,在协调集群权限时,如果 secret 属于集群配置实例,则它已被删除。在这个版本中解决了这个问题。现在,secret 中的
namespaces
字段已被删除,而不是 secret。GITOPS-1777 -
在此次更新之前,如果您通过 Operator 安装 Argo CD 的 HA 变体,Operator 会创建带有
podAffinity
规则的 RedisStatefulSet
对象,而不是podAntiAffinity
规则。在这个版本中解决了这个问题。现在,Operator 会创建 RedisStatefulSet
带有podAntiAffinity
规则。GITOPS-1645 -
在此次更新之前,Argo CD ApplicationSet 具有太多
ssh
僵尸进程。在这个版本中解决了这个问题:它会向 ApplicationSet 控制器添加tini
是一个init
守护进程,用于创建进程并消耗 Zombies 进程。这样可确保一个SIGTERM
信号正确传递给正在运行的进程,防止它成为 Zombie 进程。GITOPS-2108
5.1.8.3. 已知问题
Red Hat OpenShift GitOps Operator 可以在 Dex 之外通过 OIDC 使用 RHSSO (KeyCloak)。但是,在应用了最新的安全修复程序时,在某些情况下无法验证 RHSSO 证书。GITOPS-2214
作为临时解决方案,请在 ArgoCD 规格中禁用 OIDC (Keycloak/RHSSO) 端点的 TLS 验证。
spec: extraConfig: oidc.tls.insecure.skip.verify: "true" ...
5.1.9. Red Hat OpenShift GitOps 1.5.9 发行注记
Red Hat OpenShift GitOps 1.5.9 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.9.1. 修复的问题
- 在此次更新之前,Argo CD v1.8.2 及之后的版本的所有版本都会受到不正确的授权错误的影响。因此,Argo CD 可以接受可能无法获得访问集群的用户的令牌。这个问题现已解决。CVE-2023-22482
5.1.10. Red Hat OpenShift GitOps 1.5.7 发行注记
Red Hat OpenShift GitOps 1.5.7 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.10.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 OpenShift Container Platform 4.12 中,安装控制台是可选的。在这个版本中,更新了 Red Hat OpenShift GitOps Operator,以防止安装控制台时出现 Operator 错误。GITOPS-2353
5.1.11. Red Hat OpenShift GitOps 1.5.6 发现注记
Red Hat OpenShift GitOps 1.5.6 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.11.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,由于存活度探测的无响应,大型应用程序中的应用程序控制器会多次重启。在这个版本中,通过删除应用程序控制器
StatefulSet
对象中的存活度探测解决了这个问题。GITOPS-2153 在此次更新之前,在使用未由证书颁发机构签名的证书设置时,将无法验证 RHSSO 证书。在这个版本中解决了这个问题,您可以提供一个自定义证书,它会在与它通信时验证 Keycloak 的 TLS 证书。您可以将
rootCA
添加到 Argo CD 自定义资源.spec.keycloak.rootCA
字段中。Operator 使用 PEM 编码的 root 证书协调此更改并更新argocd-cm
ConfigMap
中的oidc.config
字段。GITOPS-2214注意REST在更新
.spec.keycloak.rootCA
字段后重启 Argo CD 服务器 pod。例如:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: sso: provider: keycloak keycloak: rootCA: | ---- BEGIN CERTIFICATE ---- This is a dummy certificate Please place this section with appropriate rootCA ---- END CERTIFICATE ---- server: route: enabled: true
- 在此次更新之前,由 Argo CD 管理的终止命名空间会阻止创建角色和其他受管命名空间配置。在这个版本中解决了这个问题。GITOPS-2278
-
在此次更新之前,当将
anyuid
的 SCC 分配给 DexServiceAccount
资源时,Dex Pod 无法启动CreateContainerConfigError
。在这个版本中,通过将默认用户 ID 分配给 Dex 容器解决了这个问题。GITOPS-2235
5.1.12. Red Hat OpenShift GitOps 1.5.5 的发行注记
Red Hat OpenShift GitOps 1.5.5 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.12.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,捆绑的 Argo CD 更新至 2.3.7 版本。
5.1.12.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当集群中存在更严格的 SCC 时,ArgoCD 实例的
redis-ha-haproxy
Pod 会失败。在这个版本中,通过更新工作负载中的安全上下文解决了这个问题。GITOPS-2034
5.1.12.3. 已知问题
Red Hat OpenShift GitOps Operator 可以使用带有 OIDC 和 Dex 的 RHSSO (KeyCloak)。但是,在应用了最新的安全修复程序时,Operator 无法验证 RHSSO 证书。GITOPS-2214
作为临时解决方案,请在 ArgoCD 规格中禁用 OIDC (Keycloak/RHSSO) 端点的 TLS 验证。
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd spec: extraConfig: "admin.enabled": "true" ...
5.1.13. Red Hat OpenShift GitOps 1.5.4 发行注记
Red Hat OpenShift GitOps 1.5.4 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.13.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,Red Hat OpenShift GitOps 使用一个较老版本的 REDIS 5 镜像标签。在这个版本中解决了这个问题,并升级
rhel8/redis-5
镜像标签。GITOPS-2037
5.1.14. Red Hat OpenShift GitOps 1.5.3 发行注记
Red Hat OpenShift GitOps 1.5.3 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.14.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,Argo CD v1.0.0 及之后的版本的所有未修补版本都会受到跨站点脚本错误的影响。因此,未授权的用户可以在 UI 中注入 javascript 链接。这个问题现已解决。CVE-2022-31035
- 在此次更新之前,当从 Argo CD CLI 或 UI 启动 SSO 登录时,所有版本的 Argo CD v0.11.0 及更新版本都容易受到多个攻击的影响。这个问题现已解决。CVE-2022-31034
- 在此次更新之前,Argo CD v1.0.0 及之后的版本的所有未修补版本都会受到跨站点脚本错误的影响。因此,未授权的用户可以在 UI 中注入 JavaScript 链接。这个问题现已解决。CVE-2022-31016
- 在此次更新之前,Argo CD v1.3.0 及之后的版本的所有未修补版本都会受到符号链接跟踪错误的影响。因此,带有存储库写入访问权限的未授权用户可能会泄漏 Argo CD repo-server 中的敏感 YAML 文件。这个问题现已解决。CVE-2022-31036
5.1.15. Red Hat OpenShift GitOps 1.5.2 发行注记
Red Hat OpenShift GitOps 1.5.2 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.15.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,缺少
redhat-operator-index
引用的镜像。这个问题现已解决。GITOPS-2036
5.1.16. Red Hat OpenShift GitOps 1.5.1 发行注记
Red Hat OpenShift GitOps 1.5.1 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.16.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,如果启用了 Argo CD 的匿名访问,则未经身份验证的用户可以制作一个 JWT 令牌,并获得 Argo CD 实例的完整访问权限。这个问题现已解决。CVE-2022-29165
- 在此次更新之前,未经身份验证的用户可以在启用 SSO 时在登录屏幕上显示错误消息。这个问题现已解决。CVE-2022-24905
- 在此次更新之前,Argo CD v0.7.0 及更新版本的未修补版本会受到符号链接跟踪程序错误修复的影响。因此,带有存储库写入访问权限的未授权用户可能会泄漏 Argo CD repo-server 中的敏感文件。这个问题现已解决。CVE-2022-24904
5.1.17. Red Hat OpenShift GitOps 1.5.0 发行注记
Red Hat OpenShift GitOps 1.5.0 现在包括在 OpenShift Container Platform 4.8、4.9、4.10 和 4.11 中。
5.1.17.1. 新功能
当前发行版本包括以下改进:
- 此功能增强将 Argo CD 升级到 2.3.3 版本。GITOPS-1708
- 此功能增强将 Dex 升级到 2.30.3 版本。GITOPS-1850
- 在这个版本中,将 Helm 升级到 3.8.0。GITOPS-1709
- 在这个版本中,将 Kustomize 升级到 4.4.1 版本。GITOPS-1710
- 此功能增强将应用程序设置为版本 0.4.1。
- 在这个版本中,会添加名为 latest 的新频道。此频道提供 Red Hat OpenShift GitOps 的最新版本。对于 GitOps v1.5.0,Operator 被推送到 gitops-1.5、latest 频道和现有的 stable 频道。在 GitOps v1.6 中,所有最新版本都只会推送到 最新的 频道,而不是 stable 频道。GITOPS-1791
-
在这个版本中,新 CSV 添加
olm.skipRange: '>=1.0.0 <1.5.0'
注解。因此,所有之前的发行版本都会跳过。Operator 直接升级到 v1.5.0。GITOPS-1787 在这个版本中,Operator 将 Red Hat Single Sign-On (RH-SSO) 更新至版本 v7.5.1,包括以下功能增强:
-
您可以使用 OpenShift Container Platform 凭证(包括
kube:admin
凭证)登录到 Argo CD。 - RH-SSO 支持使用 OpenShift Container Platform 组为基于角色的访问控制(RBAC)支持并配置 Argo CD 实例。
RH-SSO 支持
HTTP_Proxy
环境变量。您可以使用 RH-SSO 作为在代理后面的 Argo CD 的 SSO。
-
您可以使用 OpenShift Container Platform 凭证(包括
在这个版本中,一个新的
.host
URL 字段添加到 Argo CD 操作对象的.status
字段中。当使用提供给路由的优先级启用路由或 ingress 时,新 URL 字段会显示路由。如果没有从路由或入口提供 URL,则不会显示.host
字段。当配置了路由或入口时,但对应的控制器没有正确设置,且不是
Ready
状态,也不会传播其 URL,操作对象中的.status.host
字段的值表示为Pending
而不是显示 URL。这会影响操作对象的整体状态,方法是将其设置为Pending
而不是Available
。GITOPS-654
5.1.17.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,特定于 AppProjects 的 RBAC 规则不允许在角色的 subject 字段中使用逗号,从而防止绑定到 LDAP 帐户。在这个版本中解决了这个问题,您可以在 AppProject 特定的 RBAC 规则中指定复杂的角色绑定。GITOPS-1771
-
在此次更新之前,当将
DeploymentConfig
资源扩展到0
时,Argo CD 会显示它为 progressing 状态,并具有一个 "replication controller is waiting for pods to run" 的健康状态信息。在这个版本中解决了边缘情况,健康检查现在会报告DeploymentConfig
资源的正确健康状况。GITOPS-1738 -
在此次更新之前,Red Hat OpenShift GitOps 会删除
argocd-tls-certs-cm
配置映射中的 TLS 证书,除非证书是在ArgoCD
CR specificationtls.initialCerts
字段中配置的。这个问题现已解决。GITOPS-1725 -
在此次更新之前,当使用
managed-by
标签创建命名空间时,它会在新命名空间中创建了大量RoleBinding
资源。在这个版本中解决了这个问题,Red Hat OpenShift GitOps 会删除之前版本创建的不相关的Role
和RoleBinding
资源。GITOPS-1550 -
在此次更新之前,当使用
managed-by
标签创建命名空间时,新命名空间中的很多RoleBinding
资源会被创建。在这个版本中解决了这个问题,Red Hat OpenShift GitOps 删除以前版本创建的不相关的Role
和RoleBinding
资源。GITOPS-1548
5.1.17.3. 已知问题
-
当使用
Ingress
资源而不是 OpenShift Container Platform 集群上的Route
资源时,Argo CD.status.host
字段不会被更新。GITOPS-1920
5.1.18. Red Hat OpenShift GitOps 1.4.13 发行注记
Red Hat OpenShift GitOps 1.4.13 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.18.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 OpenShift Container Platform 4.12 中,安装控制台是可选的。在这个版本中,更新了 Red Hat OpenShift GitOps Operator,以防止安装控制台时出现 Operator 错误。GITOPS-2354
5.1.19. Red Hat OpenShift GitOps 1.4.12 发行注记
Red Hat OpenShift GitOps 1.4.12 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.19.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,因为存活度探测的无响应,在应用程序控制器的大型应用程序中会多次重启。在这个版本中,通过删除应用程序控制器
StatefulSet
对象中的存活度探测解决了这个问题。GITOPS-2153 在此次更新之前,在使用未由证书颁发机构签名的证书设置时,将无法验证 RHSSO 证书。在这个版本中解决了这个问题,您可以提供一个自定义证书,它会在与它通信时验证 Keycloak 的 TLS 证书。您可以将
rootCA
添加到 Argo CD 自定义资源.spec.keycloak.rootCA
字段中。Operator 使用 PEM 编码的 root 证书协调此更改并更新argocd-cm
ConfigMap
中的oidc.config
字段。GITOPS-2214注意REST在更新
.spec.keycloak.rootCA
字段后重启 Argo CD 服务器 pod。例如:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: sso: provider: keycloak keycloak: rootCA: | ---- BEGIN CERTIFICATE ---- This is a dummy certificate Please place this section with appropriate rootCA ---- END CERTIFICATE ---- server: route: enabled: true
- 在此次更新之前,由 Argo CD 管理的终止命名空间会阻止创建角色和其他受管命名空间配置。在这个版本中解决了这个问题。GITOPS-2276
-
在此次更新之前,当将
anyuid
的 SCC 分配给 DexServiceAccount
资源时,Dex Pod 无法启动CreateContainerConfigError
。在这个版本中,通过将默认用户 ID 分配给 Dex 容器解决了这个问题。GITOPS-2235
5.1.20. Red Hat OpenShift GitOps 1.4.11 发行注记
Red Hat OpenShift GitOps 1.4.11 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.20.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,捆绑的 Argo CD 更新至 2.2.12 版本。
5.1.20.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当集群中存在更严格的 SCC 时,ArgoCD 实例的
redis-ha-haproxy
Pod 会失败。在这个版本中,通过更新工作负载中的安全上下文解决了这个问题。GITOPS-2034
5.1.20.3. 已知问题
Red Hat OpenShift GitOps Operator 可以使用带有 OIDC 和 Dex 的 RHSSO (KeyCloak)。但是,在应用了最新的安全修复程序时,Operator 无法验证 RHSSO 证书。GITOPS-2214
作为临时解决方案,请在 ArgoCD 规格中禁用 OIDC (Keycloak/RHSSO) 端点的 TLS 验证。
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd spec: extraConfig: "admin.enabled": "true" ...
5.1.21. Red Hat OpenShift GitOps 1.4.6 发行注记
Red Hat OpenShift GitOps 1.4.6 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.21.1. 修复的问题
在当前发行版本中解决了以下问题:
- 基础镜像更新至最新版本,以避免 OpenSSL 缺陷链接:(CVE-2022-0778)。
要安装 Red Hat OpenShift GitOps 1.4 的当前发行版本,并在其产品生命周期中接收进一步的更新,请切换到 GitOps-1.4 频道。
5.1.22. Red Hat OpenShift GitOps 1.4.5 发行注记
Red Hat OpenShift GitOps 1.4.5 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.22.1. 修复的问题
您应该直接从 Red Hat OpenShift GitOps v1.4.3 升级到 Red Hat OpenShift GitOps v1.4.5。在生产环境中不要使用 Red Hat OpenShift GitOps v1.4.4。影响 Red Hat OpenShift GitOps v1.4.4 的主要问题在 Red Hat OpenShift GitOps 1.4.5 中解决。
在当前发行版本中解决了以下问题:
-
在此次更新之前,Argo CD pod 处于
ErrImagePullBackOff
状态。显示以下出错信息:
reason: ErrImagePull message: >- rpc error: code = Unknown desc = reading manifest sha256:ff4ad30752cf0d321cd6c2c6fd4490b716607ea2960558347440f2f370a586a8 in registry.redhat.io/openshift-gitops-1/argocd-rhel8: StatusCode: 404, <HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY>
这个问题现已解决。GITOPS-1848
5.1.23. Red Hat OpenShift GitOps 1.4.3 的发行注记
Red Hat OpenShift GitOps 1.4.3 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.23.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,Red Hat OpenShift GitOps 会删除
argocd-tls-certs-cm
配置映射中的 TLS 证书,除非证书是在 ArgoCD CR specificationtls.initialCerts
字段中配置的。在这个版本中解决了这个问题。GITOPS-1725
5.1.24. Release notes for Red Hat OpenShift GitOps 1.4.2
Red Hat OpenShift GitOps 1.4.2 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.24.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,如果将多个
Ingress
附加到路由,则 Route 资源会处于Progressing
Health 状态。在这个版本中修复了健康检查,并报告 Route 资源的正确健康状况。GITOPS-1751
5.1.25. Red Hat OpenShift GitOps 1.4.1 发行注记
Red Hat OpenShift GitOps 1.4.1 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.25.1. 修复的问题
在当前发行版本中解决了以下问题:
Red Hat OpenShift GitOps Operator v1.4.0 引入了一个回归问题,它从以下 CRD 的
spec
中删除描述字段:-
argoproj.io_applications.yaml
-
argoproj.io_appprojects.yaml
argoproj.io_argocds.yaml
在此次更新之前,当使用
oc create
命令创建AppProject
资源时,因为缺少描述字段,资源无法同步。在这个版本中,恢复上述 CRD 中缺少的描述字段。GITOPS-1721
-
5.1.26. Red Hat OpenShift GitOps 1.4.0 发行注记
Red Hat OpenShift GitOps 1.4.0 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.10 中。
5.1.26.1. 新功能
当前版本添加了以下改进。
- 此增强将 Red Hat OpenShift GitOps Application Manager(kam)升级到 0.0.41 版本。GITOPS-1669
- 此增强将 Argo CD 升级到 2.2.2 版本。GITOPS-1532
- 此增强将 Helm 升级到 3.7.1 版本。GITOPS-1530
-
此功能增强将
DeploymentConfig
、Route
和OLM Operator
项目的健康状态添加到 Argo CD Dashboard 和 OpenShift Container Platform web 控制台中。这些信息可帮助您监控应用程序的整体健康状况。GITOPS-655, GITOPS-915, GITOPS-916, GITOPS-1110 -
在这个版本中,您可以为
argocd-server
和argocd-repo-server
组件指定需要的副本数量,方法是在 Argo CD 自定义资源中分别指定.spec.server.replicas
和.spec.repo.replicas
属性。如果为argocd-server
组件配置 pod 横向自动扩展(HPA),它将优先于 Argo CD 自定义资源属性。GITOPS-1245 以管理用户身份,当使用
argocd.argoproj.io/managed-by
标签为命名空间提供 Argo CD 访问权限时,它会假定 namespace-admin 权限。这些特权是管理员向非管理员用户提供命名空间(如开发团队)的问题,因为特权使非管理员用户能够修改网络策略等对象。在这个版本中,管理员可以为所有受管命名空间配置通用集群角色。在 Argo CD 应用程序控制器的角色绑定中,Operator 指的是
CONTROLLER_CLUSTER_ROLE
环境变量。在 Argo CD 服务器的角色绑定中,Operator 指的是SERVER_CLUSTER_ROLE
环境变量。如果这些环境变量包含自定义角色,Operator 不会创建默认的 admin 角色。相反,它将现有自定义角色用于所有受管命名空间。GITOPS-1290-
在这个版本中,OpenShift Container Platform Developer 视角中的 Environments 页面会显示一个有问题的核心图标,用于指示降级资源,但不包括其状态为
Progressing
、Missing
和Unknown
的资源。控制台会显示一个黄色符号图标,以指示没有同步的资源。GITOPS-1307
5.1.26.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,当访问到 Red Hat OpenShift GitOps Application Manager(kam)的路由时,在 URL 中指定路径时,会显示在不向用户显示任何有用信息的默认页面。在这个版本中解决了这个问题,默认页面显示 kam 的下载链接。GITOPS-923
- 在此次更新之前,在 Argo CD 自定义资源的命名空间中设置资源配额可能会导致 Red Hat SSO(RH SSO)实例的设置失败。在这个版本中,通过为 RH SSO 部署 pod 设置最小资源请求来解决这个问题。GITOPS-1297
-
在此次更新之前,如果您更改了
argocd-repo-server
工作负载的日志级别,Operator 不会协调此设置。这个问题的临时解决方案是删除部署资源,以便 Operator 使用新的日志级别重新创建它。在这个版本中,日志级别被正确地协调为现存的argocd-repo-server
工作负载。GITOPS-1387 -
在此次更新之前,如果 Operator 管理了一个在
argocd-secret
Secret 中缺少.data
字段的 Argo CD 实例,则该实例的 Operator 会崩溃。在这个版本中解决了这个问题,因此当缺少.data
字段时 Operator 不会崩溃。相反,secret 会重新生成,并且重新部署gitops-operator-controller-manager
资源。GITOPS-1402 -
在此次更新之前,
gitopsservice
服务被标注为内部对象。在这个版本中,删除了注解,以便更新或删除默认 Argo CD 实例,并使用 UI 在基础架构节点上运行 GitOps 工作负载。GITOPS-1429
5.1.26.3. 已知问题
当前发行版本中已知的问题:
如果从 Dex 验证供应商迁移到 Keycloak 供应商,您可能会遇到 Keycloak 的登录问题。
要防止这个问题,在迁移时,从 Argo CD 自定义资源中删除
.spec.dex
部分来卸载 Dex。等待几分钟,让 Dex 完全卸载。然后,通过将.spec.sso.provider: keycloak
添加到 Argo CD 自定义资源来安装 Keycloak。作为临时解决方案,通过删除
.spec.sso.provider: keycloak
来卸载 Keycloak。然后重新安装它。GITOPS-1450,GITOPS-1331
5.1.27. Red Hat OpenShift GitOps 1.3.7 发行注记
Red Hat OpenShift GitOps 1.3.7 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.6 中,且支持有限的 GA。
5.1.27.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,在 OpenSSL 中发现了一个安全漏洞。在这个版本中解决了这个问题,将基础镜像更新至最新版本,以避免 OpenSSL 缺陷。(CVE-2022-0778).
要安装 Red Hat OpenShift GitOps 1.3 的当前发行版本,并在其产品生命周期中接收进一步的更新,请切换到 GitOps-1.3 频道。
5.1.28. Red Hat OpenShift GitOps 1.3.6 发行注记
Red Hat OpenShift GitOps 1.3.6 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.6 中,且支持有限的 GA。
5.1.28.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 Red Hat OpenShift GitOps 中,不正确的访问控制允许 admin 权限升级 (CVE-2022-1025)。在这个版本中解决了这个问题。
- 路径遍历漏洞允许泄漏越界文件 (CVE-2022-24731)。在这个版本中解决了这个问题。
- 路径遍历缺陷以及不正确的访问控制允许泄漏越界文件 (CVE-2022-24730 )。在这个版本中解决了这个问题。
5.1.29. Red Hat OpenShift GitOps 1.3.2 发行注记
Red Hat OpenShift GitOps 1.3.2 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.6 中,且支持有限的 GA。
5.1.29.1. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.3.2 中的新内容。
- 将 Argo CD 升级到 2.1.8
- 将 Dex 升级到 2.30.0
5.1.29.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在以前的版本中,在 Infrastructure Features 部分的 OperatorHub UI 中,当您通过
Disconnected
过滤,Red Hat OpenShift GitOps Operator 不会显示在搜索结果中,因为 Operator 在 CSV 文件中没有设置相关的注解。在这个版本中,Disconnected Cluster
注解被添加到 Red Hat OpenShift GitOps Operator 中作为基础架构功能。GITOPS-1539 当使用
Namespace-scoped
Argo CD 实例时,例如:一个没有限定到集群中的所有命名空间的 Argo CD 实例,Red Hat OpenShift GitOps 会动态维护一个受管命名空间列表。这些命名空间包括argocd.argoproj.io/managed-by
标签。此命名空间列表存储在 Argo CDSettings Clusters "in-cluster" NAMESPACES 的缓存中。在此次更新之前,如果您删除了其中一个命名空间,Operator 会忽略该命名空间,命名空间会保留在列表中。这个行为会破坏集群配置中的 CONNECTION STATE,所有同步尝试都会导致错误。例如: Argo service account does not have <random_verb> on <random_resource_type> in namespace <the_namespace_you_deleted>.
这个程序错误已被解决。GITOPS-1521
- 在这个版本中,Red Hat OpenShift GitOps Operator 标注了 Deep Insights 功能级别。GITOPS-1519
-
在以前的版本中,Argo CD Operator 会自行管理
resource.exclusion
字段,但忽略resource.inclusion
字段。这可以防止在Argo CD
CR 中配置的resource.inclusion
项在argocd-cm
配置映射中生成。这个程序错误已被解决。GITOPS-1518
5.1.30. Red Hat OpenShift GitOps 1.3.1 发行注记
Red Hat OpenShift GitOps 1.3.1 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.6 中,且支持有限的 GA。
5.1.30.1. 修复的问题
- 如果您升级到 v1.3.0,Operator 不会返回排序的环境变量片段。因此,协调器失败会导致在代理后运行的 OpenShift Container Platform 集群中频繁重新创建 Argo CD pod。在这个版本中解决了这个问题,使得 Argo CD pod 不会被重新创建。GITOPS-1489
5.1.31. Red Hat OpenShift GitOps 1.3 发行注记
Red Hat OpenShift GitOps 1.3 现在包括在 OpenShift Container Platform 4.7、4.8、4.9 和 4.6 中,且支持有限的 GA。
5.1.31.1. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.3.0 中的新内容:
-
对于 v1.3.0 的全新安装,将自动配置 Dex。您可以使用 OpenShift 或
kubeadmin
凭证登录openshift-gitops
命名空间中的默认 Argo CD 实例。作为 admin,您可以在安装 Operator 后禁用 Dex 安装,该 Operator 将从openshift-gitops
命名空间中删除 Dex 部署。 - Operator 安装的默认 Argo CD 实例以及附带的控制器现在可以通过设置一个简单的配置切换在集群的基础架构节点上运行。
- Argo CD 中的内部通信现在可以使用 TLS 和 OpenShift 集群证书进行保护。Argo CD 路由现在除了使用外部证书管理器(如 cert-manager)外,还可以利用 OpenShift 集群证书。
- 使用控制台 4.9 的 Developer 视角中的 Environments 页面来深入了解 GitOps 环境。
-
现在,您可以使用 OLM 访问 Argo CD 中关于
DeploymentConfig
资源、Route
资源和 Operator 的自定义健康检查。 GitOps Operator 现在符合最新 Operator-SDK 推荐的命名约定:
-
前缀
gitops-operator-
添加到所有资源中 -
Service account 被重命名为
gitops-operator-controller-manager
-
前缀
5.1.31.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在以前的版本中,如果您将新命名空间设置为由 Argo CD 的新实例管理,它会立即变为不同步 状态,因为 Operator 创建用于管理该新命名空间的新角色和绑定。这个行为已被解决。GITOPS-1384
5.1.31.3. 已知问题
从 Dex 身份验证供应商迁移到 Keycloak 提供程序时,您可能会遇到 Keycloak 登录问题。GITOPS-1450
为防止上述问题,在迁移时,通过删除 Argo CD 自定义资源中找到的
.spec.dex
部分来卸载 Dex。等待几分钟以便 Dex 完全卸载,然后通过将.spec.sso.provider: keycloak
添加到 Argo CD 自定义资源来继续安装 Keycloak。作为临时解决方案,通过删除
.spec.sso.provider: keycloak
来卸载 Keycloak,然后重新安装。
5.1.32. Red Hat OpenShift GitOps 1.2.2 发行注记
Red Hat OpenShift GitOps 1.2.2 现在包括在 OpenShift Container Platform 4.8 中。
5.1.32.1. 修复的问题
在当前发行版本中解决了以下问题:
- 所有版本的 Argo CD 都容易受到一个路径遍历程序错误的影响,该程序错误地允许 Helm chart 使用任意值。在这个版本中解决了 CVE-2022-24348 gitops 错误,在传递 Helm 值文件时,路径遍历和解引用符号链接。GITOPS-1756
5.1.33. Red Hat OpenShift GitOps 1.2.1 发行注记
Red Hat OpenShift GitOps 1.2.1 现在包括在 OpenShift Container Platform 4.8 中。
5.1.33.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
5.1.33.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在以前的版本中,应用程序控制器启动时会在应用程序控制器中观察到大量内存高峰。现在,应用程序控制器的
--kubectl-parallelism-limit
标志默认设置为 10,但可以通过在 Argo CD CR 规格中为.spec.controller.kubeParallelismLimit
指定数字来覆盖这个值。GITOPS-1255 -
最新的 Triggers API 会导致在使用
kam bootstrap
命令时因为 kustomization.yaml 中的重复条目导致 Kubernetes 构建失败。Pipelines 和 Tekton 会在 v0.24.2 和 v0.14.2 中分别更新来解决这个问题。GITOPS-1273 - 现在,当从源命名空间中删除 Argo CD 实例时,持久化 RBAC 角色和绑定会自动从目标命名空间中移除。GITOPS-1228
- 在以前的版本中,当将 Argo CD 实例部署到命名空间中时,Argo CD 实例会将"managed-by"标签更改为自己的命名空间。在这个版本中,命名空间会取消标记,同时确保为命名空间创建和删除所需的 RBAC 角色和绑定。GITOPS-1247
- 在以前的版本中,Argo CD 工作负载中的默认资源请求限制(特别是 repo-server 和应用程序控制器)被发现非常严格的限制。现有资源配额现已被删除,在仓库服务器中默认内存限值已增加到 1024M。请注意,这个更改只会影响新的安装;现有的 Argo CD 实例工作负载不会受到影响。GITOPS-1274
5.1.34. Red Hat OpenShift GitOps 1.2 发行注记
Red Hat OpenShift GitOps 1.2 现在包括在 OpenShift Container Platform 4.8 中。
5.1.34.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
5.1.34.2. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.2 中的新内容。
-
如果您没有对 openshift-gitops 命名空间的读写访问权限,现在可以使用 GitOps Operator 中的
DISABLE_DEFAULT_ARGOCD_INSTANCE
环境变量,并将值设置为TRUE
以防止默认的 Argo CD 实例从openshift-gitops
命名空间启动。 -
现在,在 Argo CD 工作负载中配置了资源请求和限制。在
openshift-gitops
命名空间中启用资源配额。因此,手动在 openshift-gitops 命名空间中部署的带外工作负载必须使用资源请求和限制进行配置,并且可能需要增加资源配额。 Argo CD 身份验证现已与红帽 SSO 集成,并在集群中自动配置 OpenShift 4 身份提供商。此功能默认为禁用。要启用红帽 SSO,请在
ArgoCD
CR 中添加 SSO 配置,如下所示。目前,keycloak
是唯一受支持的提供程序。apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: sso: provider: keycloak server: route: enabled: true
现在,您可以使用路由标签定义主机名来支持路由器分片。现在,支持在
server
(argocd server)、grafana
和prometheus
路由上设置标签。要在路由上设置标签,请在ArgoCD
CR 中的服务器的路由配置下添加标签
。在 argocd 服务器上设置标签的
ArgoCD
CR YAML 示例apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: server: route: enabled: true labels: key1: value1 key2: value2
-
GitOps Operator 现在会自动向 Argo CD 实例授予权限,以通过应用标签来管理目标命名空间中的资源。用户可以使用标签
argocd.argoproj.io/managed-by: <source-namespace>
标记目标命名空间,其中source-namespace
是部署 argocd 实例的命名空间。
5.1.34.3. 修复的问题
在当前发行版本中解决了以下问题:
-
在以前的版本中,如果用户在 openshift-gitops 命名空间中创建了由默认集群实例管理的 Argo CD 实例,则负责新 Argo CD 实例的应用程序会停留在
OutOfSync
状态。现在,通过添加对集群 secret 的所有者引用解决了这个问题。GITOPS-1025
5.1.34.4. 已知问题
Red Hat OpenShift GitOps 1.2 中已知的问题。
-
当从源命名空间中删除 Argo CD 实例时,目标命名空间中的
argocd.argoproj.io/managed-by
标签不会被删除。GITOPS-1228 Red Hat OpenShift GitOps 1.2 中的 openshift-gitops 命名空间中启用了资源配额。这会影响手动部署的带外工作负载,以及
openshift-gitops
命名空间中默认 Argo CD 实例部署的工作负载。当您从 Red Hat OpenShift GitOpsv1.1.2
升级到v1.2
时,此类工作负载必须使用资源请求和限制来配置。如果存在额外的工作负载,则必须增加 openshift-gitops 命名空间中的资源配额。openshift-gitops
命名空间的当前资源配额。资源 Requests Limits CPU
6688m
13750m
内存
4544Mi
9070Mi
您可以使用以下命令来更新 CPU 限值。
$ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/limits.cpu", "value":"9000m"}]'
您可以使用以下命令来更新 CPU 请求。
$ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/cpu", "value":"7000m"}]
您可以替换以上命令中的路径从
cpu
到memory
来更新内存。
5.1.35. Red Hat OpenShift GitOps 1.1 发行注记
Red Hat OpenShift GitOps 1.1 现在包括在 OpenShift Container Platform 4.7 中。
5.1.35.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
5.1.35.2. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.1 中的新内容:
-
现在添加了
ApplicationSet
功能(技术预览)。ApplicationSet
功能可在大量集群和 monorepos 中管理 Argo CD 应用程序时实现自动化和更大的灵活性。它还可在多租户 Kubernetes 集群中实现自助服务。 - Argo CD 现在与集群日志记录堆栈以及 OpenShift Container Platform Monitoring 和 Alerting 功能集成。
- Argo CD auth 现在与 OpenShift Container Platform 集成。
- Argo CD 应用程序控制器现在支持横向扩展。
- Argo CD Redis 服务器现在支持高可用性(HA)。
5.1.35.3. 修复的问题
在当前发行版本中解决了以下问题:
- 在以前的版本中,Red Hat OpenShift GitOps 在带有活跃全局代理设置的代理服务器设置中无法正常工作。这个问题已被解决。现在,Red Hat OpenShift GitOps Operator 会使用 pod 的完全限定域名(FQDN)配置 Argo CD,以启用组件间的通信。GITOPS-703
-
Red Hat OpenShift GitOps 后端依赖于 Red Hat OpenShift GitOps URL 中的
?ref=
查询参数来发出 API 调用。在以前的版本中,这个参数没有从 URL 中读取,从而导致后端始终考虑默认引用。这个问题已被解决。Red Hat OpenShift GitOps 后端现在从 Red Hat OpenShift GitOps URL 提取引用查询参数,且仅在未提供输入引用时使用默认引用。GITOPS-817 -
在以前的版本中,Red Hat OpenShift GitOps 后端无法找到有效的 GitLab 存储库。这是因为 Red Hat OpenShift GitOps 后端检查
main
作为分支引用,而不是 GitLab 存储库中的master
。这个问题现已解决。GITOPS-768 -
OpenShift Container Platform Web 控制台的 Developer 视角中的 Environments 页面现在显示应用程序列表和环境数量。本页还显示 Argo CD 链接,它将您定向到列出所有应用程序的 Argo CD Applications 页面。Argo CD Applications 页面带有 LABELS (如
app.kubernetes.io/name=appName
),它只帮助您过滤您选择的应用程序。GITOPS-544
5.1.35.4. 已知问题
Red Hat OpenShift GitOps 1.1 中已知的问题:
- Red Hat OpenShift GitOps 不支持 Helm v2 和 ksonnet。
- 在断开连接的集群中不支持 Red Hat SSO(RH SSO)Operator。因此,断开连接的集群中不支持 Red Hat OpenShift GitOps Operator 和 RH SSO 集成。
- 当您从 OpenShift Container Platform web 控制台删除 Argo CD 应用程序时,Argo CD 应用程序会从用户界面中删除,但部署仍存在于集群中。作为临时解决方案,请从 Argo CD 控制台删除 Argo CD 应用程序。GITOPS-830
5.1.35.5. 有问题的更改
5.1.35.5.1. 从 Red Hat OpenShift GitOps v1.0.1 升级
当您从 Red Hat OpenShift GitOps v1.0.1
升级到 v1.1
时,Red Hat OpenShift GitOps Operator 会将 openshift-gitops
命名空间中创建的默认 Argo CD 实例从 argocd-cluster
重命名到 openshift-gitops
。
这是一个有问题的变化,需要在升级前手动执行以下步骤:
进入 OpenShift Container Platform web 控制台,将
openshift-gitops
命名空间中的argocd-cm.yml
配置映射文件的内容复制到本地文件中。内容可能类似以下示例:argocd 配置映射 YAML 示例
kind: ConfigMap apiVersion: v1 metadata: selfLink: /api/v1/namespaces/openshift-gitops/configmaps/argocd-cm resourceVersion: '112532' name: argocd-cm uid: f5226fbc-883d-47db-8b53-b5e363f007af creationTimestamp: '2021-04-16T19:24:08Z' managedFields: ... namespace: openshift-gitops labels: app.kubernetes.io/managed-by: argocd-cluster app.kubernetes.io/name: argocd-cm app.kubernetes.io/part-of: argocd data: "" 1 admin.enabled: 'true' statusbadge.enabled: 'false' resource.exclusions: | - apiGroups: - tekton.dev clusters: - '*' kinds: - TaskRun - PipelineRun ga.trackingid: '' repositories: | - type: git url: https://github.com/user-name/argocd-example-apps ga.anonymizeusers: 'false' help.chatUrl: '' url: >- https://argocd-cluster-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com "" 2 help.chatText: '' kustomize.buildOptions: '' resource.inclusions: '' repository.credentials: '' users.anonymous.enabled: 'false' configManagementPlugins: '' application.instanceLabelKey: ''
-
删除默认的
argocd-cluster
实例。 -
编辑新的
argocd-cm.yml
配置映射文件,手动恢复整个data
部分。 将配置映射条目中的 URL 值替换为新实例名称
openshift-gitops
。例如,在上例中将 URL 值替换为以下 URL 值:url: >- https://openshift-gitops-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com
- 登录到 Argo CD 集群,验证之前的配置是否存在。