Skip to content

v2.6 至 2.7

配置 RBAC 以考虑新的扩展名资源

2.7 引入了新的[代理扩展](.../.../developer-guide/extensions/proxy-extensions.md)功能,并新增了扩展[RBAC 资源](https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#the-extensions-resource)。

升级到 2.7 后,在 resource 字段中包含 * 和在 action 字段中包含 * 的 RBAC 策略将自动授予 extensions 权限。

默认情况下,代理扩展功能是禁用的,但建议检查 RBAC 配置,以执行最少的必要权限。

旧例:

p, role:org-admin, *, *, *, allow

新:

p, role:org-admin, clusters, create, my-proj/*, allow
p, role:org-admin, projects, create, my-proj/*, allow
p, role:org-admin, applications, create, my-proj/*, allow
p, role:org-admin, repositories, create, my-proj/*, allow
p, role:org-admin, certificates, create, my-proj/*, allow
p, role:org-admin, accounts, create, my-proj/*, allow
p, role:org-admin, gpgkeys, create, my-proj/*, allow
# If you don't want to grant the new permission, don't include the following line
p, role:org-admin, extensions, invoke, my-proj/*, allow

Helm 升级版本

请注意,捆绑的 Helm 版本已从 3.10.3 升级到 3.11.2。

升级版 kustomize

请注意,捆绑的 kustomize 版本已从 4.5.7 升级到 5.0.1。

通知:Sprig 的 semver 函数中的 ^ 行为变化

Argo CD 2.7 专门将 Argo CD 通知内的 Sprig 模板升级至 v3。该升级包括将 Masterminds/semver 升级至 v3。

Masterminds/semver v3 更改了语义版本约束中 ^ 前缀的行为。如果您在通知模板中使用了 sprig 模板函数,其中包含对 Sprig's semver functions 的引用,并使用了 ^ 前缀,请阅读 Masterminds/semver changelog 以了解您的通知行为可能会发生哪些变化。

Tini 作为入口点

配置清单现在使用 tini作为入口点,而不是 entrypoint.sh。在 2.8 之前,entrypoint.sh是为了升级兼容性而保留的。 这意味着在升级到 2.7 之后,以及升级到 2.8 之前,必须更新部署清单。如果在升级到 2.8 之前更新了配置清单,容器将无法启动。

深度链接模板更新

深度链接 "现在允许您访问 url 中的其他值,如 "集群"、"项目"、"应用程序 "和 "资源",并为特定类别的链接提供条件模板。 模板语法也已更新,以您要访问的资源类型为前缀。例如,以前如果您的 "resource.links "配置为 :

resource.links: |
    - url: https://mycompany.splunk.com?search={{.metadata.name}}
      title: Splunk
      if: kind == "Pod" || kind == "Deployment"

这将成为:

resource.links: |
    - url: https://mycompany.splunk.com?search={{.resource.metadata.name}}&env={{.project.metadata.label.env}}
      title: Splunk
      if: resource.kind == "Pod" || resource.kind == "Deployment"

阅读完整的[文档](.../deep_links.md),查看每类链接可访问的所有可能的 Values 组合。

支持 helm.sh/resource-policy 注解

Argo CD 现在支持 helm.sh/resource-policy 注解来控制资源的删除,其行为与 argocd.argoproj.io/sync-options: Delete=false 注解的行为相同:如果存在该注解并设置为 keep ,则删除应用程序时不会删除资源。

检查你的 kustomize 补丁是否有--redis改动

从 Argo CD 2.7 开始,安装配置清单不再通过 --redis 传递 Redis 服务器名称。

如果您的环境使用 Kustomize JSON 补丁来修改 Redis 服务器名称,那么升级到 2.7 版配置清单时,该补丁可能会失效。 如果失效,您可以删除该补丁,转而通过 argocd-cmd-params-cm ConfigMap 中的 redis.server 字段来设置 Redis 服务器名称。 该值将通过 valueFrom 环境变量传递给必要的组件。

argocd applicationset CLI 与带列表生成器的 ApplicationSet 不兼容

如果您在服务器端运行 Argo CD v2.7.0-2.7.2,那么在此范围之外的 CLI 版本将错误地处理列表生成器。 这是因为这些版本的 gRPC 接口将 elements 字段编号用于新的 elementsYaml 字段。

如果运行 Argo CD CLI v2.7.0-2.7.2,服务器端版本为 v2.7.3 或更高版本,那么 CLI 将向服务器发送 elements 字段的内容,服务器将其解释为 elementsYaml 字段。 这将导致 ApplicationSet 在运行时出现类似以下的错误:

error unmarshling decoded ElementsYaml error converting YAML to JSON: yaml: control characters are not allowed

请务必将 CLI 版本 v2.7.3 或更高版本与服务器端版本 v2.7.3 或更高版本一起引用。