ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Argo CD UI 自定义指南:默认视图、Pod 节点标签与 CLI 下载链接配置

Argo CD UI 自定义指南:默认视图、Pod 节点标签与 CLI 下载链接配置 Argo CD UI 自定义指南默认视图、Pod 节点标签与 CLI 下载链接配置【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cd本指南基于 Argo CD 的 UI 自定义能力讲解如何为 Application 设置默认详情视图与 Pod 分组方式、如何将节点标签透传到 Pod 视图中展示以及如何在 Help 页面为多种操作系统和架构提供 CLI 下载入口。读完本文你可以通过argocd-cmConfigMap 与 Application 注解两套机制按团队需求定制 Argo CD 界面的默认呈现形态与交付体验。一、默认 Application 详情视图Default View1.1 默认行为默认情况下打开 Application 详情页时展示的是Tree树状视图即application-details组件默认使用的展示模式。1.2 按 Application 配置默认视图该行为可以在单个 Application维度上被覆盖。只需要为 Application 对象设置如下注解pref.argocd.argoproj.io/default-view: value该注解接受以下四种取值之一取值说明tree树状视图默认podsPod 视图按分组机制展示 Podnetwork网络视图list列表视图在前端实现中该注解被定义为常量AnnotationDefaultView pref.argocd.argoproj.io/default-view见 ui/src/app/shared/models.ts。详情页组件在初始化时会读取 Application 的metadata.annotations中该键的值若存在则覆盖用户当前的偏好视图见 ui/src/app/applications/components/application-details/application-details.tsxconst appDefaultView (application.metadata application.metadata.annotations[appModels.AnnotationDefaultView]) as AppsDetailsViewType; if (appDefaultView ! null) { pref.view appDefaultView; }也就是说该注解的值直接决定详情页首次渲染时使用的视图类型优先级高于用户手动切换的选择。1.3 配置 Pod 视图的默认分组方式当使用Pods 视图时Argo CD 默认会按照一定的分组机制对 Pod 进行归类展示。团队可以通过第二个注解自定义默认的分组方式pref.argocd.argoproj.io/default-pod-sort: value该注解接受以下三种取值之一取值说明node按节点Node分组parentResource按父级资源如 ReplicaSet、StatefulSet分组topLevelResource按顶层资源如 Deployment分组该注解同样被定义为前端常量AnnotationDefaultPodSort pref.argocd.argoproj.io/default-pod-sort见 ui/src/app/shared/models.ts与default-view一样属于 Application 级别的偏好注解。关于这两个注解的适用范围与取值说明还可以参考 docs/user-guide/annotations-and-labels.md 中的注解清单。注意两个注解均为 Application 级别即每个 Application 可以拥有不同的默认视图与分组策略未设置注解的 Application 沿用全局默认值详情页默认为tree视图。二、Pod 视图中的节点标签透传Node Labels2.1 功能说明在某些场景下运维或开发者希望在 Pod 视图中直接看到 Pod 所在节点的标签例如可用区、实例规格、节点容量类型等以便快速定位问题。Argo CD 支持通过argocd-cmConfigMap 中的application.allowedNodeLabels配置项将指定的节点标签传播到 Pod 视图的节点信息中。2.2 配置方法在argocd-cmConfigMapargocd-cm 配置参考中增加如下配置application.allowedNodeLabels: topology.kubernetes.io/zone,karpenter.sh/capacity-type配置项的值是一个逗号分隔的节点标签键列表。上面的配置会将每个节点的topology.kubernetes.io/zone可用区与karpenter.sh/capacity-type节点容量类型两个标签显示在 Pod 视图的节点信息中2.3 底层实现该配置项的解析逻辑位于 util/settings/settings.go 的GetAllowedNodeLabels()方法中关键行为包括配置键常量定义为allowedNodeLabelsKey application.allowedNodeLabels见 util/settings/settings.go从 ConfigMap 读取配置值后会先移除所有空格strings.ReplaceAll(value, , )再按逗号切分为标签键列表对每个标签键使用 Kubernetes 的validation.IsQualifiedName进行合法性校验非法的键会被记录警告日志并跳过不会进入最终列表若配置键不存在或值为空则返回空列表即不传播任何节点标签。2.4 注意事项未配置application.allowedNodeLabels时Pod 视图不会显示任何节点标签标签键必须符合 Kubernetes 的合法名称规范例如topology.kubernetes.io/zone这种带 DNS 前缀的形式否则会被过滤掉配置按逗号分隔键与键之间的空格会被自动清理因此topology.kubernetes.io/zone, karpenter.sh/capacity-type与不加空格的效果一致argocd-cmConfigMap 的参考模板中同样给出了示例值topology.kubernetes.io/zone,node.kubernetes.io/instance-type见 docs/operator-manual/argocd-cm.yaml可结合实际集群的节点标签灵活调整。三、Help 页面 CLI 下载链接CLI Download Links3.1 默认行为Argo CD 服务器内置了 Linux 平台的 CLI 二进制文件。侧边栏底部的Help页面始终显示一个 Linux CLI 下载按钮用户无需任何额外配置即可获取一个可用的 CLI 客户端。3.2 为更多操作系统与架构添加下载入口如果你希望为其他操作系统和架构也提供 CLI 下载可以在argocd-cmConfigMap 中配置help.download.os-arch键。每个配置的键都会在 Help 页面上新增一个下载按钮指向你提供的 URLapiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd data: help.download.linux-amd64: https://example.com/argocd-linux-amd64 help.download.linux-arm64: https://example.com/argocd-linux-arm64 help.download.darwin-amd64: https://example.com/argocd-darwin-amd64 help.download.darwin-arm64: https://example.com/argocd-darwin-arm64 help.download.windows-amd64: https://example.com/argocd-windows-amd64.exe3.3 识别的os-arch键列表只有以下os-arch组合会被 Argo CD 识别并渲染为下载按钮配置其他任何键都会被忽略linux-amd64linux-arm64linux-ppc64lelinux-s390xdarwin-amd64darwin-arm64windows-amd64这些键在argocd-cm的参考配置中均有对应模板项见 docs/operator-manual/argocd-cm.yaml键值支持填写完整 URL 或仓库内的相对下载路径。3.4 注意事项[!NOTE]默认的 Linux 按钮始终会显示即使你已经通过help.download配置了额外的链接。因此如果你为 Argo CD 服务器自身所在架构例如linux-amd64也配置了help.download.linux-archHelp 页面上会出现两个 Linux 下载按钮一个是服务器内置的默认按钮一个是指向你自定义 URL 的按钮。请按需决定是否需要避免这种重复。3.5 实用建议镜像/内网分发场景可以借助该机制将 CLI 二进制托管在自建对象存储或内部镜像仓库配置对应 URL 即可在 Help 页面直接分发多架构支持场景如果团队中同时存在 Intel Mac、Apple Silicon Mac 与各类 Linux 架构的开发者建议至少配置darwin-amd64、darwin-arm64与常用 Linux 架构的入口版本一致性下载按钮指向的 CLI 版本应与 Argo CD 服务器版本保持一致避免因版本不匹配导致的兼容性问题。四、总结Argo CD 的 UI 自定义能力可以总结为三套互补的机制自定义目标配置位置关键配置项/注解默认详情视图Application 注解pref.argocd.argoproj.io/default-viewtree/pods/network/listPod 视图默认分组Application 注解pref.argocd.argoproj.io/default-pod-sortnode/parentResource/topLevelResource节点标签透传argocd-cmConfigMapapplication.allowedNodeLabels逗号分隔的标签键列表CLI 下载入口argocd-cmConfigMaphelp.download.os-arch仅识别固定的 7 种组合其中Application 级别的两个注解按单个应用精细化控制界面呈现而argocd-cm中的两个配置项则提供集群级的全局默认行为。前者由前端组件在渲染时读取见 ui/src/app/applications/components/application-details/application-details.tsx后者由后端SettingsManager统一解析并提供给各组件使用见 util/settings/settings.go。理解这套注解 ConfigMap的双层配置体系即可按需定制 Argo CD 的用户体验。【免费下载链接】argo-cdDeclarative Continuous Deployment for Kubernetes项目地址: https://gitcode.com/GitHub_Trending/ar/argo-cd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表