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 或更高版本一起引用。