1.6. Red Hat OpenShift GitOps 1.13.0 发行注记
Red Hat OpenShift GitOps 1.13.0 现在包括在 OpenShift Container Platform 4.12、4.13、4.14、4.15 和 4.16 中。
1.6.1. 新功能
在这个版本中,您可以配置 Argo CD 以禁用实例自动提取指标。在此次更新之前,没有禁用此功能的选项,当集群中有多个 Argo CD 实例时,会导致过量存储使用量。GITOPS-4519
注意在 GitOps 中,所有 Argo CD 实例都默认启用指标提取。
要禁用 Argo CD 实例的指标,请将 Argo CD CR 中的
spec.monitoring.disableMetrics
字段编辑为true
。Example
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: argocd-sample namespace: default spec: monitoring: disableMetrics: true
使用以下命令在 Argo CD CLI 中提取指标:
$ oc patch argocd argocd-sample -n default --type='json' -p='[{"op": "replace", "path": "/spec/monitoring/disableMetrics", "value": true}]'
在这个版本中,Red Hat OpenShift GitOps 中的 Argo Rollouts 功能从技术预览(TP)提升到正式发行(GA)。GITOPS-3848
使用此功能执行以下操作:
- 运行集群范围的 Argo Rollouts 而不是命名空间范围的 Argo Rollouts
- 使用 OpenShift Routes for canary 应用部署路由流量
- 配置 Argo Rollouts CLI
- 在这个版本中,您可以使用基于 OpenShift Routes 的流量管理执行基于 Canary 的 Argo Rollouts 部署。Argo Rollouts 通过修改部署期间到达 canary 或 stable 应用程序版本的流量百分比来支持流量分割。GITOPS-2400
- 在这个版本中,非 control plane 命名空间中的 Argo CD 应用程序从技术预览(TP)提升到正式发行(GA)。GITOPS-3796
在这个版本中,为非 control plane 命名空间中的 Argo CD 应用程序引进了以下新命令:
-
ArgoCD proj add-source-namespace
: 使用此命令将源命名空间添加到AppProject
CR 的.spec.sourceNamespaces
字段中,以允许特定命名空间创建应用程序。 -
ArgoCD proj delete-source-namespace
: 使用这个命令从AppProject
CR 的.spec.sourceNamespaces
字段中删除源命名空间来排除特定的命名空间。GITOPS-4045
-
-
在这个版本中,您可以通过为 Argo CD Application Controller 和服务器组件创建用户定义的
ClusterRole
和ClusterRoleBindings
,为集群范围的 Argo CD 实例自定义权限。GITOPS-2614 - 在这个版本中,您可以在 Red Hat OpenShift GitOps Operator 中自定义 Keycloak 路由名称。在这个版本中,还支持复杂的路由场景,如在各种入口控制器分片之间划分路由。GITOPS-4451
-
在这个版本中,路由 TLS 终止设置为默认和用户定义的 Argo CD 实例的重新加密模式。现在,到 Argo CD 实例的 TLS 连接会收到 OpenShift Container Platform 中设置的默认入口证书,而不是由 Red Hat OpenShift GitOps Operator 生成的自签名 Argo CD 证书。您可以通过配置 Argo CD CR 的
.spec.server.route.tls
字段来修改路由 TLS 终止策略。GITOPS-3918 - 在这个版本中,Argo CD 上游已被改进,以确保在使用 sync-waves 时正确管理资源删除。现在,Argo CD 会在进入删除过程中的下一个 sync-wave 前等待资源完全删除。这种方法可确保一个受控且可预测的工作流,增强用户体验,并防止在继续进行下一同步前不会等待资源完全回收的问题。GITOPS-2642
在这个版本中,通过为各种与应用程序相关的命令启用
--app-namespace
标志来增强 Argo CD CLI。GITOPS-3834此标志允许用户为等待、回滚、修补、编辑、diffing、查看历史记录、同步和删除应用程序等操作指定命名空间。因此,Red Hat OpenShift GitOps 中会更新以下命令:
-
ArgoCD 应用程序等待
-
ArgoCD 应用程序回滚
-
ArgoCD 应用程序补丁
-
ArgoCD 应用程序编辑
-
ArgoCD 应用程序 diff
-
ArgoCD 应用程序历史记录
-
ArgoCD 应用程序同步
-
ArgoCD 应用程序删除
-
ArgoCD 应用程序 get
-
1.6.2. 修复的问题
-
在此次更新之前,如果 OpenShift Container Platform 集群中禁用了
DeploymentConfig [apps.openshift.io/v1]
API,则 GitOps Operator 将进入CrashLoopBackoff
错误状态,且无法正常工作。在这个版本中,通过修改 GitOps Operator 的功能解决了这个问题,以确保在 API 在集群中不可用时不会进入CrashLoopBackoff
错误状态。GITOPS-4489 - 在此次更新之前,用户无法通过 SOCKS5 代理服务器连接到远程 Git 存储库,因为它仅与 HTTPS URL 兼容。在这个版本中,用户可以使用支持 SSH 协议的 SOCKS5 代理服务器访问远程 Git 存储库。GITOPS-3710
-
在此次更新之前,在来自 Argo CD UI 的存储库更新过程中,
forceHttpBasicAuth
存储库配置没有正确初始化。因此,该值被重置为 default,从而导致连接错误,特别是 Azure DevOps 存储库。在这个版本中,在上游中添加更改,以确保在存储库更新操作过程中正确初始化forceHttpBasicAuth
配置。GITOPS-3706 - 在此次更新之前,Argo CD CLI 会将初始源指定为多源应用程序的主源。在这个版本中,Argo CD CLI 通过考虑处理过程中的所有源来支持多源应用程序。GITOPS-2623
-
在此次更新之前,Argo Rollouts 控制器 CR 没有创建
ServiceMonitor
。在这个版本中,Argo Rollouts 控制器 CR 被改进,使其包含对ServiceMonitor
创建的支持。因此,您可以使用增强的 Argo Rollouts 控制器 CR 从 Rollouts 收集指标,这些指标在监控中可见。GITOPS-3271
1.6.3. 已知问题
目前存在一个已知问题:防止 Red Hat OpenShift GitOps Operator 更新 Argo CD 服务器路由的默认 TLS 终止策略,从
Passthrough
更新到Reencrypt
。这是从旧版本升级时发生的竞争条件。GITOPS-4947临时解决方案:删除 Argo CD 服务器路由和 Argo CD 服务器 pod。重新创建的路由和 pod 现在使用
Reencrypt
策略。
1.6.4. 弃用和删除的功能
-
在 Red Hat OpenShift GitOps 1.13 中,Red Hat OpenShift GitOps Application Manager CLI
kam
已被弃用,计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的程序漏洞修复和支持,但这个功能将不再获得改进,并将被删除。作为 Red Hat OpenShift GitOps Application Manager CLIkam
的替代选择,您可以使用 Red Hat OpenShift GitOps Operator v1.12 提供的 Argo CD CLI。GITOPS-4466
1.6.5. 有问题的更改
1.6.5.1. Argo Rollouts 实例安装为命名空间范围
-
当您升级到 Red Hat OpenShift GitOps v1.13 时,Red Hat OpenShift GitOps 中的 Argo Rollouts 实例会作为命名空间范围的安装。在以前的版本中,当您在命名空间中创建
RolloutManager
CR 时,Argo Rollouts 实例只能在该特定命名空间中部署权限。现在,因为 Red Hat OpenShift GitOps 中的 Argo Rollouts 实例作为集群范围的安装,所以在整个集群中可以部署在命名空间中创建的 RolloutManager CR。GITOPS-3847
其他资源