$ oc describe deployment gitops-operator-controller-manager -n openshift-gitops-operator
有关 OpenShift GitOps 生命周期和受支持平台的更多信息,请参阅 OpenShift 运算符生命周期 和 Red Hat OpenShift Container Platform 生命周期策略。 |
版本说明包含有关新特性和已弃用特性、重大更改以及已知问题的信息。以下版本说明适用于 OpenShift Container Platform 上最新的 OpenShift GitOps 版本。
Red Hat OpenShift GitOps 是一种声明式方法,用于实现云原生应用程序的持续部署。当您将应用程序部署到不同环境(例如开发、登台和生产)中的不同集群时,Red Hat OpenShift GitOps 可确保应用程序的一致性。Red Hat OpenShift GitOps 可帮助您自动化以下任务:
确保集群在配置、监控和存储方面具有类似的状态
从已知状态恢复或重新创建集群
将配置更改应用于或回滚到多个 OpenShift Container Platform 集群
将模板化配置与不同的环境关联
跨集群(从登台到生产)推广应用程序
有关 Red Hat OpenShift GitOps 的概述,请参阅 关于 Red Hat OpenShift GitOps。
此版本中的一些特性目前处于 技术预览 状态。这些实验性特性并非用于生产环境。
在表中,特性使用以下状态标记:
TP:技术预览
GA:正式发布
NA:不适用
|
OpenShift GitOps | 组件版本 | OpenShift 版本 | |||||||
---|---|---|---|---|---|---|---|---|---|
版本 |
kam |
Argo CD 命令行界面 |
Helm |
Kustomize |
Argo CD |
Argo Rollouts |
Dex |
RH SSO |
|
1.15.0 |
不可用 |
2.13.1 TP |
3.15.4 GA |
5.4.3 GA |
2.13.1 GA |
1.7.2 TP |
2.41.1 GA |
7.6.0 GA |
4.14-4.17 |
1.14.0 |
0.0.51 TP |
2.12.3 TP |
3.15.2 GA |
5.4.2 GA |
2.12.3 GA |
1.7.1 GA |
2.39.1 GA |
7.6.0 GA |
4.12-4.17 |
1.13.0 |
0.0.51 TP |
2.11.3 TP |
3.14.4 GA |
5.2.1 GA |
2.11.3 GA |
1.6.6 GA |
2.37.0 GA |
7.6.0 GA |
4.12-4.16 |
|
下表中提到的功能目前处于技术预览 (TP) 阶段。这些实验性功能不适用于生产环境。
功能 | Red Hat OpenShift GitOps 版本中的 TP | Red Hat OpenShift GitOps 版本中的 GA |
---|---|---|
GitOps `argocd` 命令行工具 |
1.12.0 |
不可用 |
非控制平面命名空间中的 Argo CD 应用集 |
1.12.0 |
不可用 |
轮循集群分片算法 |
1.10.0 |
不可用 |
分片的动态缩放 |
1.10.0 |
不可用 |
Argo Rollouts |
1.9.0 |
1.13.0 |
ApplicationSet 渐进式发布策略 |
1.8.0 |
不可用 |
应用程序的多个来源 |
1.8.0 |
1.15.0 |
非控制平面命名空间中的 Argo CD 应用程序 |
1.7.0 |
1.13.0 |
OpenShift Container Platform Web 控制台的**开发者**视角中的 Red Hat OpenShift GitOps **环境**页面 |
1.1.0 |
不可用 |
Red Hat 致力于替换代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、blacklist 和 whitelist。由于这项工作的巨大性,这些更改将在接下来的几个版本中逐步实施。更多详情,请参见我们 CTO Chris Wright 的信息。
Red Hat OpenShift GitOps 1.15.0 现已在 OpenShift Container Platform 4.14、4.15、4.16 和 4.17 上可用。
通过此更新,Red Hat OpenShift GitOps 支持向 `ApplicationSet` 控制器组件添加额外的卷和卷挂载。您可以通过在 Argo CD 自定义资源 (CR) 中指定 `.spec.applicationSet.volumes` 和 `.spec.applicationSet.volumeMounts` 字段来配置这些附加资源。GITOPS-5739
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: argocd-example
spec:
applicationSet:
volumes:
- name: <volume_name> (1)
emptyDir: {} (2)
volumeMounts:
- name: <volume_name> (3)
mountPath: <mount_path> (4)
1 | 指定 Argo CD `ApplicationSet` 控制器的 `volume` 名称。 |
2 | 指定 `volume` 类型。它可以是任何 Kubernetes 支持的卷类型,例如 `emptyDir`、`hostPath`、`configMap` 等。 |
3 | 指定要挂载的卷的名称,该名称必须与在 volumes 中定义的 `volume` 名称匹配。 |
4 | 指定容器内挂载卷的路径。 |
通过此更新,用户可以向服务器、repo-server、applicationset-controller 和 application-controller pod 添加自定义标签和注释。此增强功能提高了依赖于资源标签或注释进行监控的外部系统的可观察性。以下字段在 Argo CD CR 中引入以支持此功能
.spec.server.labels
.spec.server.annotations
.spec.repo.labels
.spec.repo.annotations
.spec.controller.labels
.spec.controller.annotations
.spec. applicationSet.labels
.spec. applicationSet.annotations
更多信息,请参见自定义注释和标签。GITOPS-5674
在此更新之前,用户无法使用 `RolloutManager` 自定义资源 (CR) 为 Argo Rollouts 控制器配置一些副本。通过此更新,通过向 `RolloutManager` CR 添加新的 `.spec.ha` 字段引入了高可用性 (HA) 支持。
启用高可用性后,GitOps 运算符会自动将副本数设置为 2,激活领导者选举,并应用默认的反亲和性规则以确保冗余性和可靠性。GITOPS-5622
通过此更新,GitOps 运算符中的 Argo CD 多源应用程序功能已从技术预览 (TP) 提升到通用可用性 (GA)。使用此功能可以定义和管理具有多个源代码库的应用程序。GITOPS-5511
通过此更新,您现在可以使用 Kubernetes TLS 类型密钥来为 Argo CD CR 中的路由配置自定义 TLS 证书。以前,TLS 数据必须直接嵌入到 Argo CD CR 中作为纯文本,这可能会由于 TLS 信息的敏感性而带来安全风险。
为了增强安全性,您必须使用 Kubernetes 密钥来管理 TLS 数据。以下字段在 Argo CD CR 中引入,以引用包含 TLS 数据的类型为 `kubernetes.io/tls` 的 Kubernetes 密钥
.spec.server.route.tls.externalCertificate
.spec.applicationSet.webhookServer.route.tls.externalCertificate
.spec.prometheus.route.tls.externalCertificate
.spec.grafana.route.tls.externalCertificate
有关配置自定义 TLS 证书路由的更多信息,请参见自定义 TLS 证书路由中的示例。GITOPS-5232
通过此更新,受限 Pod 安全准入 (PSA) 标签应用于 `openshift-gitops` 命名空间,以确保符合 OpenShift Container Platform 标准。如果您在 `openshift-gitops` 命名空间中运行其他工作负载,请确保它们符合受限 PSA 要求。如果无法符合受限 PSA,请使用用户定义的集群范围 Argo CD 实例。在这种情况下,PSA 标签不会由 GitOps 运算符应用或控制。GITOPS-5221
在此更新之前,无法使用 Argo Rollouts 中的 `RolloutManager` CR 配置 `trafficmanagement` 和 `metric` 插件。通过此更新,您现在可以在 `RolloutManager` CR 中指定 `trafficmanagement` 和 `metric` 插件。当添加、修改或删除这些插件字段时,GitOps 运算符会自动更新配置映射。此增强功能允许用户通过 `RolloutManager` CR 本地管理 `trafficmanagement` 和 `metric` 插件,无需手动更新配置映射。GITOPS-4217
通过此更新,多源应用程序详细信息面板的**源**选项卡现在包含两个新按钮
添加源:打开一个新的基于表单的面板,用于添加新的源条目。您可以在此面板中指定仓库 URL 和其他源特定详细信息。
删除:允许您从应用程序中删除特定源。
通过此更新,用户现在可以通过在 Argo CD CR 的服务器组件中设置一个新的布尔字段enableRolloutsUI
来启用或禁用 Argo CD 实例中的 Argo Rollouts UI。GITOPS-3604
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: argocd
spec:
server:
enableRolloutsUI: true (1)
1 | 将此值设置为true 以配置enableRolloutsUI 字段。 |
通过此更新,您可以访问有关在 Argo CD CR 中配置ApplicationSet
控制器以使用不同策略的文档。更多信息,请参见ApplicationSet 控制器策略。GITOPS-5236
在此更新之前,当现有 Ingress 的期望状态更改主机时,新的主机信息不会应用。此更新通过添加 Ingress 检查来修复此问题,以确保在主机更改时更新 Ingress。如果 Ingress 主机发生更改,它将使用新值正确更新,确保反映期望状态。GITOPS-5386
在此更新之前,当服务器服务类型的期望状态更改时(例如,从ClusterIP
更改为NodePort
),更改不会自动应用于集群,而无需先删除资源。此更新通过添加服务器服务检查来修复此问题,以将更改应用于服务器服务。如果服务器服务类型的期望状态发生更改,它将自动应用于集群,无需删除资源。GITOPS-5385
在此更新之前,用户无法在 Argo CD CR 中指定后设置ApplicationSet
控制器的自定义镜像。此更新通过允许用户设置ApplicationSet
控制器的自定义镜像来修复此问题。GITOPS-5395
在此更新之前,如果 URL 包含路径或端口号,Argo CD 无法为 Helm OCI 注册表检索正确的 TLS 证书。此更新通过使用上游 Argo CD 中的修复程序来修复此问题,该修复程序确保 URL 被正确解析,允许 Argo CD 检索并返回有效的 TLS 证书。GITOPS-5081
在此版本中,已移除对 Red Hat OpenShift GitOps 应用管理器命令行界面 (CLI) kam
的支持。kam
组件不再包含在新安装中,并且所有引用都已从 Red Hat OpenShift GitOps 文档中移除。GITOPS-4466
要更新后移除kam
资源,请运行以下命令
$ oc delete deployment,service,route kam -n openshift-gitops
insecureEdgeTerminationPolicy
字段更改通过此更新,Red Hat OpenShift GitOps 运算符使用的 OpenShift API 模式已更改为包含来自 Route API 的最新字段,从而导致重大更改。如果以下字段在 Argo CD CR 中配置为**禁用**选项,则必须在更新之前将其更改为**无**,以确保与新模式兼容
.spec.server.route.tls.insecureEdgeTerminationPolicy
.spec.applicationSet.webhookServer.route.tls.insecureEdgeTerminationPolicy
.spec.prometheus.route.tls.insecureEdgeTerminationPolicy
.spec.grafana.route.tls.insecureEdgeTerminationPolicy