kubevela.github.io/i18n/zh/docusaurus-plugin-content-docs/version-v1.4/reference/topology-rule.md

1.9 KiB
Raw Blame History

title
配置拓扑树资源关系规则

VelaUX 的资源拓扑图能够展现一个应用所管理的全部资源的拓扑图情况。如下所示:

image

原理

Vela 系统内置了一些资源映射规则,这些规则规定了一个类型的资源可能包含了哪些子资源,在展示资源拓扑树的时候,系统会根据这些规则搜寻子资源。 举例来说,系统规定了一个 Deployment's 类型的资源的资源只可能是 ReplicaSet,所以在展示一个 Deployment 的所有子资源时Vela 会在这个 Deployment 的 namespace 下列出所有的 ReplicaSet 并过滤掉那些 ownerReference 不是指向该 Deployment 的结果。

添加关系规则

但系统所内置的规则是有限的,用户也可以通过配置如下的一个 configmap 来为系统增加新的规则。

apiVersion: v1
kind: ConfigMap
metadata:
  name: clone-set-relation
  namespace: vela-system
  labels:
    "rules.oam.dev/resources": "true"
data:
  rules: |-
    - parentResourceType:
        group: apps.kruise.io
        kind: CloneSet
      childrenResourceType:
        - apiVersion: v1
          kind: Pod    

我们看到,首先这个 configmap 必须包含一个特殊的标签 "rules.oam.dev/resources": "true",在数据字段中 rules 定义了一个规则列表,单个规则包含了一个父资源类型和一组子资源类型。 在上面的例子中,我们定义了一个 apps.kruise.io 组下的 CloneSet 类型资源的子资源是 v1/Pod,这样在展示 CloneSet 的子资源时,就会定向去查找 Pod 类型资源。 所有这些被 configmap 所定义的规则,会和内置规则合并,从而在展示资源拓扑图的时候生效。