第 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 Container Platform 4.13 中,stable
频道已被删除。在升级到 OpenShift Container Platform 4.13 之前,如果您已在 stable
频道中,请选择适当的频道并切换到它。
OpenShift GitOps | 组件版本 | OpenShift 版本 | ||||||
---|---|---|---|---|---|---|---|---|
版本 |
| Helm | Kustomize | Argo CD | ApplicationSet | Dex | RH SSO | |
1.8.0 | 0.0.47 TP | 3.10.0 GA | 4.5.7 GA | 2.6.3 GA | 不适用 | 2.35.1 GA | 7.5.1 GA | 4.10-4.13 |
1.7.0 | 0.0.46 TP | 3.10.0 GA | 4.5.7 GA | 2.5.4 GA | 不适用 | 2.35.1 GA | 7.5.1 GA | 4.10-4.12 |
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 命令行界面 (CLI)。 - RH SSO 是 Red Hat SSO 的缩写。
5.1.1.1. 技术预览功能
下表中提到的功能当前还只是一个技术预览 (TP)。它们并不适用于在生产环境中使用。
功能 | Red Hat OpenShift GitOps 版本中的技术预览(TP) | Red Hat OpenShift GitOps 版本中的正式版本(GA) |
---|---|---|
ApplicationSet Progressive Rollout 策略 | 1.8.0 | 不适用 |
一个应用程序的多个源 | 1.8.0 | 不适用 |
非 control plane 命名空间中的 Argo CD 应用程序 | 1.7.0 | 不适用 |
Argo CD 通知控制器 | 1.6.0 | 不适用 |
OpenShift Container Platform Web 控制台的 Developer 视角中的 Red Hat OpenShift GitOps Environments 页面 | 1.1.0 | 不适用 |
5.1.2. 使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
5.1.3. Red Hat OpenShift GitOps 1.8.4 发行注记
Red Hat OpenShift GitOps 1.8.4 现在包括在 OpenShift Container Platform 4.10、4.11、4.12 和 4.13 中。
5.1.3.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,捆绑的 Argo CD 更新至 2.6.13 版本。
5.1.3.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,当命名空间和应用程序增加时,Argo CD 可能会变得无响应。竞争资源的功能会导致死锁。在这个版本中,通过删除死锁解决了这个问题。现在,当命名空间或应用程序增加时,您不会遇到崩溃或无响应的问题。GITOPS-3192
- 在此次更新之前,当重新同步应用程序时,Argo CD 应用程序控制器资源可能会突然停止工作。在这个版本中解决了这个问题,方法是添加逻辑以防止集群缓存死锁。现在,应用程序应该可以成功重新同步。GITOPS-3052
-
在此次更新之前,在
argocd-ssh-known-hosts-cm
配置映射中已知主机的 RSA 密钥中存在不匹配。在这个版本中,通过将 RSA 密钥与上游项目匹配解决了这个问题。现在,您可以在默认部署中使用默认 RSA 密钥。GITOPS-3144 -
在此次更新之前,部署 Red Hat OpenShift GitOps Operator 时会使用一个旧的 Redis 镜像版本,这会导致漏洞。在这个版本中,通过将 Redis 升级到
registry.redhat.io/rhel-8/redis-6
镜像的最新版本解决了 Redis 中的漏洞。GITOPS-3069 -
在此次更新之前,用户无法通过 Operator 部署的 Argo CD 连接到 Microsoft Team Foundation Server (TFS) 类型 Git 存储库。在这个版本中,通过将 Git 版本更新至 Operator 中的 2.39.3 解决了这个问题。现在,您可以在存储库配置过程中设置
Force HTTP basic auth
标志,以与 TFS 类型 Git 存储库连接。GITOPS-1315
5.1.3.3. 已知问题
目前,Red Hat OpenShift GitOps 1.8.4 不适用于 OpenShift Container Platform 4.10 和 4.11 的
latest
频道。latest
频道由 GitOps 1.9.z 获取,它只在 OpenShift Container Platform 4.12 及更新的版本中发布。作为临时解决方案,切换到
gitops-1.8
频道来获取新的更新。GITOPS-3158
5.1.4. Red Hat OpenShift GitOps 1.8.3 发行注记
Red Hat OpenShift GitOps 1.8.3 现在包括在 OpenShift Container Platform 4.10、4.11、4.12 和 4.13 中。
5.1.4.1. 勘误更新
5.1.4.1.1. RHBA-2023:3206 和 RHSA-2023:3229 - Red Hat OpenShift GitOps 1.8.3 安全更新公告
发布日期:2023 年 5 月 18 日
此发行版本中包括的安全修复列表包括在以下公告中:
如果安装了 Red Hat OpenShift GitOps Operator,请运行以下命令来查看此发行版本中的容器镜像:
$ oc describe deployment gitops-operator-controller-manager -n openshift-operators
5.1.4.2. 修复的问题
-
在此次更新之前,当启用
Autoscale
且 pod 横向自动扩展 (HPA) 控制器试图编辑服务器部署中的副本设置时,Operator 会覆盖它。另外,在自动扩展参数指定的任何更改都会被正确传播到集群中的 HPA。在这个版本中解决了这个问题。现在,只有在禁用Autoscale
且正确更新 HPA 参数时,Operator 才会在副本偏移上协调。GITOPS-2629
5.1.5. Red Hat OpenShift GitOps 1.8.2 发行注记
Red Hat OpenShift GitOps 1.8.2 现在包括在 OpenShift Container Platform 4.10、4.11、4.12 和 4.13 中。
5.1.5.1. 修复的问题
在当前发行版本中解决了以下问题:
在此次更新之前,当使用
.spec.dex
参数配置 Dex 时,并尝试使用 LOG IN VIA OPENSHIFT 选项登录到 Argo CD UI,您将无法登录。在这个版本中解决了这个问题。重要ArgoCD CR 中的
spec.dex
参数已弃用。在以后的 Red Hat OpenShift GitOps v1.9 发行版本中,计划使用 ArgoCD CR 中的spec.dex
参数配置 Dex。考虑改用.spec.sso
参数。请参阅 "使用 .spec.sso 启用或禁用 Dex"。GITOPS-2761-
在此次更新之前,集群和
kam
CLI pod 无法在 OpenShift Container Platform 4.10 集群上进行新的 Red Hat OpenShift GitOps v1.8.0 安装。在这个版本中解决了这个问题,现在所有 pod 都会如预期运行。GITOPS-2762
5.1.6. Red Hat OpenShift GitOps 1.8.1 发行注记
Red Hat OpenShift GitOps 1.8.1 现在包括在 OpenShift Container Platform 4.10、4.11、4.12 和 4.13 中。
5.1.6.1. 勘误更新
5.1.6.1.1. RHSA-2023:1452 - Red Hat OpenShift GitOps 1.8.1 安全更新公告
发布日期:2023 年 3 月 23 日
此发行版本中包括的安全修复列表包括在 RHSA-2023:1452 公告中。
如果安装了 Red Hat OpenShift GitOps Operator,请运行以下命令来查看此发行版本中的容器镜像:
$ oc describe deployment gitops-operator-controller-manager -n openshift-operators
5.1.7. Red Hat OpenShift GitOps 1.8.0 发行注记
Red Hat OpenShift GitOps 1.8.0 现在包括在 OpenShift Container Platform 4.10、4.11、4.12 和 4.13 中。
5.1.7.1. 新功能
当前发行版本包括以下改进:
在这个版本中,您可以添加 ApplicationSet Progressive Rollout 策略功能的支持。使用此功能,您可以在修改 ApplicationSet spec 或 Application 模板后,增强 ArgoCD ApplicationSet 资源,以便为进度应用程序资源更新嵌入推出部署策略。当您启用此功能时,应用程序会以声明性顺序更新,而不是同时更新。GITOPS-956
重要ApplicationSet Progressive Rollout 策略是一个技术预览功能。
-
在这个版本中,OpenShift Container Platform Web 控制台的 Developer 视角中的 Application environments 页面与 Red Hat OpenShift GitOps Application Manager 命令行界面 (CLI)
kam
分离。您不必使用kam
CLI 为环境生成应用程序环境清单,以便在 OpenShift Container Platform Web 控制台的 Developer 视角中显示。您可以使用自己的清单,但环境仍必须由命名空间表示。另外,仍然需要特定的标签和注解。GITOPS-1785 在这个版本中,Red Hat OpenShift GitOps Operator 和
kam
CLI 可用于 OpenShift Container Platform 上的 ARM 架构。GITOPS-1688重要spec.sso.provider: keycloak
在 ARM 上还不被支持。-
在这个版本中,您可以通过将
.spec.monitoring.enabled
标志值设置为true
来为特定 Argo CD 实例启用工作负载监控。因此,Operator 会创建一个PrometheusRule
对象,其中包含每个 Argo CD 组件的警报规则。当在一定的时间段内,相应组件的副本数偏离了期望的状态,则这些警报规则会触发警报。Operator 不会覆盖用户对PrometheusRule
对象所做的更改。GITOPS-2459 在这个版本中,您可以使用 Argo CD CR 将命令参数传递给存储库服务器部署。GITOPS-2445
例如:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd spec: repo: extraRepoCommandArgs: - --max.combined.directory.manifests.size - 10M
5.1.7.2. 修复的问题
在当前发行版本中解决了以下问题:
在此次更新之前,您只能在
openshift-gitops-repo-server
pod 中设置ARGOCD_GIT_MODULES_ENABLED
环境变量,而不是在ApplicationSet Controller
pod 中设置。因此,在使用 Git 生成器时,Git 子模块会在生成子应用程序时克隆,因为ApplicationSet Controller
环境中缺少变量。另外,如果在 ArgoCD 中没有配置克隆这些子模块所需的凭证,应用程序生成会失败。在这个版本中解决了这个问题,您可以使用 Argo CD CR 将任何环境变量(如ArgoCD_GIT_MODULES_ENABLED
)添加到ApplicationSet Controller
pod 中。然后ApplicationSet Controller
pod 从克隆的存储库中成功生成子应用程序,且进程中没有克隆子模块。GITOPS-2399例如:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd labels: example: basic spec: applicationSet: env: - name: ARGOCD_GIT_MODULES_ENABLED value: "true"
-
在此次更新之前,在安装 Red Hat OpenShift GitOps Operator v1.7.0 时,为身份验证 Dex 创建的默认
argocd-cm.yml
配置映射文件包含 base64 编码的客户端 secret,格式为key:value
对。在这个版本中解决了这个问题,将客户端 secret 存储在默认的argocd-cm.yml
配置映射文件中。现在,客户端 secret 位于argocd-secret
对象中,您可以在配置映射中将其引用为 secret 名称。GITOPS-2570
5.1.7.3. 已知问题
-
当您在不使用
kam
CLI 的情况下使用清单部署应用程序,并在 OpenShift Container Platform Web 控制台的 Developer 视角中的 Application environments 页面中查看应用程序,则相应应用程序的 Argo CD URL 不会从卡中的 Argo CD 图标按预期加载页面。GITOPS-2736
5.1.8. Red Hat OpenShift GitOps 1.7.4 发行注记
Red Hat OpenShift GitOps 1.7.4 现在包括在 OpenShift Container Platform 4.10、4.11 和 4.12 中。
5.1.8.1. 勘误更新
5.1.8.1.1. RHSA-2023:1454 - Red Hat OpenShift GitOps 1.7.4 安全更新公告
发布日期:2023 年 3 月 23 日
此发行版本中包括的安全修复列表包括在 RHSA-2023:1454 公告中。
如果安装了 Red Hat OpenShift GitOps Operator,请运行以下命令来查看此发行版本中的容器镜像:
$ oc describe deployment gitops-operator-controller-manager -n openshift-operators
5.1.9. Red Hat OpenShift GitOps 1.7.3 发行注记
Red Hat OpenShift GitOps 1.7.3 现在包括在 OpenShift Container Platform 4.10、4.11 和 4.12 中。
5.1.9.1. 勘误更新
5.1.9.1.1. RHSA-2023:1454 - Red Hat OpenShift GitOps 1.7.3 安全更新公告
发布日期:2023 年 3 月 23 日
此发行版本中包括的安全修复列表包括在 RHSA-2023:1454 公告中。
如果安装了 Red Hat OpenShift GitOps Operator,请运行以下命令来查看此发行版本中的容器镜像:
$ oc describe deployment gitops-operator-controller-manager -n openshift-operators
5.1.10. Red Hat OpenShift GitOps 1.7.1 发行注记
Red Hat OpenShift GitOps 1.7.1 现在包括在 OpenShift Container Platform 4.10、4.11 和 4.12 中。
5.1.10.1. 勘误更新
5.1.10.1.1. RHSA-2023:0467 - Red Hat OpenShift GitOps 1.7.1 安全更新公告
发布日期:2023 年 1 月 25 日
此发行版本中包括的安全修复列表包括在 RHSA-2023:0467 公告中。
如果安装了 Red Hat OpenShift GitOps Operator,请运行以下命令来查看此发行版本中的容器镜像:
$ oc describe deployment gitops-operator-controller-manager -n openshift-operators
5.1.11. Red Hat OpenShift GitOps 1.7.0 发行注记
Red Hat OpenShift GitOps 1.7.0 现在包括在 OpenShift Container Platform 4.10、4.11 和 4.12 中。
5.1.11.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,您可以在 Notifications 控制器中添加环境变量。GITOPS-2313
-
在这个版本中,默认的 nodeSelector
"kubernetes.io/os": "linux"
键值对添加到所有工作负载中,以便它们只在 Linux 节点上调度。另外,任何自定义节点选择器都会添加到默认值,如果它们具有相同的键,则优先选择它们。GITOPS-2215 -
在这个版本中,您可以通过编辑
GitopsService
自定义资源来在 Operator 工作负载中设置自定义节点选择器。GITOPS-2164 -
在这个版本中,您可以使用 RBAC 策略匹配器模式从以下选项中选择:
glob
(默认)和regex
.GITOPS-1975 在这个版本中,您可以使用以下附加子键自定义资源行为:
Subkey 键形式 argocd-cm 中映射的字段 resourceHealthChecks
resource.customizations.health.<group_kind>
resource.customizations.health
resourceIgnoreDifferences
resource.customizations.ignoreDifferences.<group_kind>
resource.customizations.ignoreDifferences
resourceActions
resource.customizations.actions.<group_kind>
resource.customizations.actions
注意在以后的发行版本中,可以通过仅使用 resourceCustomization 而不是 subkeys 弃用旧方法来自定义资源行为。
- 在这个版本中,要使用 Developer 视角中的 Environments 页面,如果您使用 Red Hat OpenShift GitOps 1.7 之前的版本以及 OpenShift Container Platform 4.15 或更高版本时,需要进行升级。GITOPS-2415
在这个版本中,您可以在同一集群中的任何命名空间中创建由同一 control plane Argo CD 实例管理的应用程序。作为管理员,执行以下操作以启用此更新:
-
将命名空间添加到管理应用程序的集群范围的 Argo CD 实例的
.spec.sourceNamespaces
属性中。 将命名空间添加到与应用程序关联的
AppProject
自定义资源中的.spec.sourceNamespaces
属性中。
-
将命名空间添加到管理应用程序的集群范围的 Argo CD 实例的
非 control plane 命名空间中的 Argo CD 应用程序只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在这个版本中,Argo CD 支持 Server-Side Apply 功能,这有助于用户执行以下任务:
- 管理对于允许注解大小为 262144 字节的大型资源。
对未由 Argo CD 管理或部署的现有资源进行补丁。
您可以在应用程序或资源级别配置此功能。GITOPS-2340
5.1.11.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当
anyuid
SCC 分配给 Dex 服务帐户时会导致 Dex pod 失败并带有CreateContainerConfigError
错误,这会影响到 Red Hat OpenShift GitOp 的发布。在这个版本中,通过将默认用户 ID 分配给 Dex 容器解决了这个问题。GITOPS-2235 -
在此次更新之前,Red Hat OpenShift GitOps 在 Dex 之外通过 OIDC 使用 RHSSO (Keycloak)。但是,当使用未由知名证书颁发机构签名的证书配置时,当 RHSSO 证书配置时,无法验证 RHSSO 证书。在这个版本中解决了这个问题,您可以提供一个自定义证书,以便在与它通信时验证 KeyCloak 的 TLS 证书。另外,您可以将
rootCA
添加到 Argo CD 自定义资源.spec.keycloak.rootCA
字段中。Operator 使用 PEM 编码的 root 证书协调此更改并更新oidc.config in argocd-cm
配置映射。GITOPS-2214
使用 Keycloak 配置的 Argo CD 示例:
apiVersion: argoproj.io/v1alpha1 kind: ArgoCD metadata: name: example-argocd spec: sso: keycloak: rootCA: '<PEM encoded root certificate>' provider: keycloak ....... .......
-
在此次更新之前,应用程序控制器会因为存活度探测的无响应而多次重启。在这个版本中,通过删除
statefulset
应用控制器中的存活度探测解决了这个问题。GITOPS-2153
5.1.11.3. 已知问题
-
在此次更新之前,Operator 不会协调仓库服务器
的 mountatoken
和ServiceAccount
设置。虽然这个问题已被解决,删除服务帐户不会恢复到默认值。GITOPS-1873 -
临时解决方案:手动将
spec.repo.serviceaccountfield 设置为 default
服务帐户。GITOPS-2452
5.1.12. 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.12.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,从 v0.5.0 开始的所有版本的 Argo CD Operator 都容易受到信息泄漏漏洞的影响。因此,未授权的用户可以通过检查 API 错误消息并使用发现的应用程序名称作为另一个攻击的起点来枚举应用程序名称。例如,攻击者可能会利用他们了解应用程序名称来让管理员授予更高的特权。在这个版本中解决了 CVE-2022-41354 错误。GITOPS-2635, CVE-2022-41354
5.1.13. 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.13.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,从 v0.5.0 开始的所有版本的 Argo CD Operator 都容易受到信息泄漏漏洞的影响。因此,未授权的用户可以通过检查 API 错误消息并使用发现的应用程序名称作为另一个攻击的起点来枚举应用程序名称。例如,攻击者可能会利用他们了解应用程序名称来让管理员授予更高的特权。在这个版本中解决了 CVE-2022-41354 错误。GITOPS-2635, CVE-2022-41354
5.1.14. 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.14.1. 修复的问题
- 在此次更新之前,Argo CD v1.8.2 及之后的版本的所有版本都会受到不正确的授权错误的影响。因此,Argo CD 可以接受可能不适用于访问集群的受众的令牌。这个问题现已解决。CVE-2023-22482
5.1.15. 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.15.1. 新功能
-
此发行版本从
openshift-gitops-operator
CSV 文件中删除DISABLE_DEX
环境变量。因此,在执行全新的 Red Hat OpenShift GitOps 安装时,不再设置此环境变量。GITOPS-2360
5.1.15.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.16. 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.16.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.17. 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.17.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 Notifications 控制器作为可选的工作负载使用,可以使用 Argo CD 自定义资源中的
.spec.notifications.enabled
参数启用或禁用。Argo CD Notifications 控制器作为技术预览提供。GITOPS-1917
Argo CD Notifications 控制器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
- 在这个版本中,Tekton 管道运行的资源排除,默认情况下会添加任务运行。Argo CD,默认修剪这些资源。这些资源排除会添加到从 OpenShift Container Platform 创建的新的 Argo CD 实例中。如果通过 CLI 创建实例,则不添加这些资源。GITOPS-1876
-
在这个版本中,您可以通过在 Operand 的规格中设置
resourceTrackingMethod
参数来选择 Argo CD 使用的跟踪方法。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 Security Admission。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.17.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,
system:serviceaccount:argocd:gitops-argocd-application-controller
无法在命名空间webapps-dev
的 API 组monitoring.coreos.com
中创建资源 "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 会根据podAntiAffinity
规则创建 RedisStatefulSet
规则。GITOPS-1645 -
在此次更新之前,Argo CD ApplicationSet 具有太多
ssh
Zombie 进程。在这个版本中解决了这个问题:它为 ApplicationSet 控制器添加了 tini,它是一个生成进程并获取 zombies 的简单 init 守护进程。这可确保SIGTERM
信号正确传递给正在运行的进程,防止它成为 Zombie 进程。GITOPS-2108
5.1.17.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.18. 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.18.1. 修复的问题
- 在此次更新之前,Argo CD v1.8.2 及之后的版本的所有版本都会受到不正确的授权错误的影响。因此,Argo CD 可以接受可能无法获得访问集群的用户的令牌。这个问题现已解决。CVE-2023-22482
5.1.19. 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.19.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 OpenShift Container Platform 4.12 中,安装控制台是可选的。在这个版本中,更新了 Red Hat OpenShift GitOps Operator,以防止安装控制台时出现 Operator 错误。GITOPS-2353
5.1.20. 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.20.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.21. 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.21.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,捆绑的 Argo CD 更新至 2.3.7 版本。
5.1.21.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当集群中存在更严格的 SCC 时,ArgoCD 实例的
redis-ha-haproxy
Pod 会失败。在这个版本中,通过更新工作负载中的安全上下文解决了这个问题。GITOPS-2034
5.1.21.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.22. 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.22.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,Red Hat OpenShift GitOps 使用一个较老版本的 REDIS 5 镜像标签。在这个版本中解决了这个问题,并升级
rhel8/redis-5
镜像标签。GITOPS-2037
5.1.23. 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.23.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 v0.7 及更新版本的未修补版本都会容易受到内存消耗错误的影响。因此,未授权用户可以使 Argo CD 的 repo-server 崩溃。这个问题现已解决。CVE-2022-31016
- 在此次更新之前,Argo CD v1.3.0 及之后的版本的所有未修补版本都会受到符号链接跟踪错误的影响。因此,具有存储库写入访问权限的未授权用户可以泄漏 Argo CD 的 repo-server 中的敏感 YAML 文件。这个问题现已解决。CVE-2022-31036
5.1.24. 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.24.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,缺少
redhat-operator-index
引用的镜像。这个问题现已解决。GITOPS-2036
5.1.25. 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.25.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.26. 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.26.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 中,所有最新版本只会推送到 latest 频道,而不是 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 版本,包括以下改进:
-
您可以使用包含
kube:admin
凭证的 OpenShift 凭证登录到 Argo CD。 - RH-SSO 支持并使用 OpenShift 组为基于角色的访问控制(RBAC)配置 Argo CD 实例。
RH-SSO 遵循
HTTP_Proxy
环境变量。您可以使用 RH-SSO 作为在代理后面的 Argo CD 的 SSO。
-
您可以使用包含
在这个版本中,一个新的
.host
URL 字段添加到 Argo CD 操作对象的.status
字段中。当为路由启用了路由或入口时,新的 URL 字段会显示路由。如果没有从路由或入口提供 URL,则不会显示.host
字段。当配置了路由或入口时,但对应的控制器没有正确设置,且不是
Ready
状态,也不会传播其 URL,操作对象中的.status.host
字段的值表示为Pending
而不是显示 URL。这会影响操作对象的整体状态,方法是将其设置为Pending
而不是Available
。GITOPS-654
5.1.26.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 -
在此次更新之前,pass-through 模式中的路由的 TLS 证书没有 CA 名称。因此,Firefox 94 和更高版本无法连接到 Argo CD UI,并显示代码 SEC_ERROR_BAD_DER。在这个版本中解决了这个问题。您必须删除
<openshift-gitops-ca>
secret 并使其重新创建。然后,您必须删除<openshift-gitops-tls>
secret。在 Red Hat OpenShift GitOps 重新创建后,Firefox 可以再次访问 Argo CD UI。GITOPS-1548
5.1.26.3. 已知问题
-
当使用
Ingress
资源而不是 OpenShift 集群中的Route
资源时,Argo CD.status.host
字段不会被更新。GITOPS-1920
5.1.27. 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.27.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 OpenShift Container Platform 4.12 中,安装控制台是可选的。在这个版本中,更新了 Red Hat OpenShift GitOps Operator,以防止安装控制台时出现 Operator 错误。GITOPS-2354
5.1.28. 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.28.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.29. 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.29.1. 新功能
当前发行版本包括以下改进:
- 在这个版本中,捆绑的 Argo CD 更新至 2.2.12 版本。
5.1.29.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当集群中存在更严格的 SCC 时,ArgoCD 实例的
redis-ha-haproxy
Pod 会失败。在这个版本中,通过更新工作负载中的安全上下文解决了这个问题。GITOPS-2034
5.1.29.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.30. 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.30.1. 修复的问题
在当前发行版本中解决了以下问题:
- 基础镜像更新至最新版本,以避免 OpenSSL 缺陷链接:(CVE-2022-0778)。
要安装 Red Hat OpenShift GitOps 1.4 的当前发行版本,并在其产品生命周期中接收进一步的更新,请切换到 GitOps-1.4 频道。
5.1.31. 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.31.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.32. 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.32.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,Red Hat OpenShift GitOps 会删除
argocd-tls-certs-cm
配置映射中的 TLS 证书,除非证书是在 ArgoCD CR specificationtls.initialCerts
字段中配置的。在这个版本中解决了这个问题。GITOPS-1725
5.1.33. 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.33.1. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,如果将多个
Ingress
附加到路由,则 Route 资源会处于Progressing
Health 状态。在这个版本中修复了健康检查,并报告 Route 资源的正确健康状况。GITOPS-1751
5.1.34. 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.34.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.35. 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.35.1. 新功能
当前版本添加了以下改进。
-
此功能增强将 Red Hat OpenShift GitOps Application Manager CLI (
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.35.2. 修复的问题
在当前发行版本中解决了以下问题:
-
在此次更新之前,当访问到 Red Hat OpenShift GitOps Application Manager CLI (
kam
) 的路由时,无需向用户显示任何有用信息的默认页面。在这个版本中解决了这个问题,默认页面会显示kam
CLI 的下载链接。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.35.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.36. 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.36.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在此次更新之前,在 OpenSSL 中发现了一个安全漏洞。在这个版本中解决了这个问题,将基础镜像更新至最新版本,以避免 OpenSSL 缺陷。(CVE-2022-0778).
要安装 Red Hat OpenShift GitOps 1.3 的当前发行版本,并在其产品生命周期中接收进一步的更新,请切换到 GitOps-1.3 频道。
5.1.37. 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.37.1. 修复的问题
在当前发行版本中解决了以下问题:
- 在 Red Hat OpenShift GitOps 中,不正确的访问控制允许 admin 权限升级 (CVE-2022-1025)。在这个版本中解决了这个问题。
- 路径遍历漏洞允许泄漏越界文件 (CVE-2022-24731)。在这个版本中解决了这个问题。
- 路径遍历缺陷以及不正确的访问控制允许泄漏越界文件 (CVE-2022-24730 )。在这个版本中解决了这个问题。
5.1.38. 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.38.1. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.3.2 中的新内容。
- 将 Argo CD 升级到 2.1.8
- 将 Dex 升级到 2.30.0
5.1.38.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.39. 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.39.1. 修复的问题
- 如果您升级到 v1.3.0,Operator 不会返回排序的环境变量片段。因此,协调器失败会导致在代理后运行的 OpenShift Container Platform 集群中频繁重新创建 Argo CD pod。在这个版本中解决了这个问题,使得 Argo CD pod 不会被重新创建。GITOPS-1489
5.1.40. 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.40.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.40.2. 修复的问题
在当前发行版本中解决了以下问题:
- 在以前的版本中,如果您将新命名空间设置为由 Argo CD 的新实例管理,它会立即变为不同步 状态,因为 Operator 创建用于管理该新命名空间的新角色和绑定。这个行为已被解决。GITOPS-1384
5.1.40.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.41. Red Hat OpenShift GitOps 1.2.2 发行注记
Red Hat OpenShift GitOps 1.2.2 现在包括在 OpenShift Container Platform 4.8 中。
5.1.41.1. 修复的问题
在当前发行版本中解决了以下问题:
- 所有版本的 Argo CD 都容易受到一个路径遍历程序错误的影响,该程序错误地允许 Helm chart 使用任意值。在这个版本中解决了 CVE-2022-24348 gitops 错误,在传递 Helm 值文件时,路径遍历和解引用符号链接。GITOPS-1756
5.1.42. Red Hat OpenShift GitOps 1.2.1 发行注记
Red Hat OpenShift GitOps 1.2.1 现在包括在 OpenShift Container Platform 4.8 中。
5.1.42.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager CLI ( | TP |
5.1.42.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.43. Red Hat OpenShift GitOps 1.2 发行注记
Red Hat OpenShift GitOps 1.2 现在包括在 OpenShift Container Platform 4.8 中。
5.1.43.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager CLI ( | TP |
5.1.43.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.43.3. 修复的问题
在当前发行版本中解决了以下问题:
-
在以前的版本中,如果用户在 openshift-gitops 命名空间中创建了由默认集群实例管理的 Argo CD 实例,则负责新 Argo CD 实例的应用程序会停留在
OutOfSync
状态。现在,通过添加对集群 secret 的所有者引用解决了这个问题。GITOPS-1025
5.1.43.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.44. Red Hat OpenShift GitOps 1.1 发行注记
Red Hat OpenShift GitOps 1.1 现在包括在 OpenShift Container Platform 4.7 中。
5.1.44.1. 支持列表
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager CLI ( | TP |
5.1.44.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.44.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.44.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.44.5. 有问题的更改
5.1.44.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 集群,验证之前的配置是否存在。