
# specDescriptors
specDescriptors用于描述自定义资源中规范字段的属性。每个字段应包含以下内容：
- displayName -字段的用户友好名称。
- description -字段表示内容的简单描述信息。
- path -对象中字段以点分隔的路径。
- restriction(可选)：指定控件使用场景。
- x-descriptors(可选) -字段能力的UI组件信息。
 
![](https://support.huaweicloud.com/devg-osc/public_sys-resources/note_3.0-zh-cn.png)
配置Descriptor控件时，需要确保在csd.yaml中增加的path字段路径，以v1版本为例，需要和crd中的对应的openAPIV3Schema.properties.spec.properties内的path路径一致，否则会出现控件不生效的情况。
 #### 密码输入框
该控件支持先隐藏已输入的密码。
配置示例：
```
- path: password_test
  displayName: password_test
  description: password_test
  x-descriptors:
    - "urn:alm:descriptor:com.tectonic.ui:password"
```
图1密码输入框   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001276867716.png "点击放大")
图2单击显示密码后的效果   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001327427537.png "点击放大")
 #### 下拉框
支持设置枚举项，使用下拉框展示。
配置示例：
```
- path: select_test
  displayName: select_test
  description: "select_test"
  x-descriptors:
    - "urn:alm:descriptor:com.tectonic.ui:select:option1"
    - "urn:alm:descriptor:com.tectonic.ui:select:option2"
```
图3下拉框UI   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001277027624.png "点击放大")
 #### 镜像拉取策略
预设的镜像拉取策略控件。
配置示例：
```
- path: pull_policy_test
  displayName: pull_policy_test
  description: "pull_policy_test"
  x-descriptors:
    - "urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"
```
图4镜像拉取策略控件   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001276707732.png "点击放大")
 #### K8S资源对象
支持控件查询指定资源对象，目前支持configmap和secret。
配置示例：
```
- path: k8sResource_secret
  description: k8sResource_secret
  displayName: k8sResource_secret
  x-descriptors:
    - urn:alm:descriptor:io.kubernetes:Secret
- path: k8sResource_configmap
  description: k8sResource_configmap
  displayName: k8sResource_configmap
  x-descriptors:
    - urn:alm:descriptor:io.kubernetes:ConfigMap
```
图5K8S资源对象   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001327547521.png "点击放大")
 #### Pod数量
预设的设置pod数量控件。
配置示例：
```
- path: advanceTest_podCount
  description: advanceTest_podCount
  displayName: advanceTest_podCount
  x-descriptors:
    - urn:alm:descriptor:com.tectonic.ui:podCount
```
图6Pod数量控件   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001334264040.png)
 #### 显示联动
支持控件的展示联动。
配置示例：
```
- path: field_dependency_test.value2
  description: 依赖value1 开
  displayName: value2
  x-descriptors:
    - "urn:alm:descriptor:com.tectonic.ui:fieldDependency:field_dependency_test.value1:true"
```
图7控件显示联动   
![](https://support.huaweicloud.com/devg-osc/zh-cn_image_0000001912612905.png "点击放大")
 #### 资源配置
和K8S配套的资源控件，可以设置limit和request。
配置示例：
```
- path: resources
  displayName: 单节点规格
  description: "单节点Redis的内存规格，因系统开销，实际使用内存是所填数值的1.25倍"
  x-descriptors:
    - "urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
```
 #### 公网访问
支持通过弹性公网IP访问实例。
配置示例：
```
- description: 开启公网访问后，可通过弹性公网IP访问Redis，集群模式暂不支持。开启公网访问的同时建议开启密码认证，保证安全
  displayName: 公网访问
  path: externalAccess
  restriction:
    scenes:
      - CCE
  x-descriptors:
    - "urn:alm:descriptor:com.huawei.ui:hwDnatElbAccess"
```
其中restriction.scenes字段表示该控件只在特定的部署平台下展示。
 #### hidden
此描述符用于隐藏并自动生成的表单的字段：如果基于CRD自动生成的表单字段有些不需要呈现给用户可以配置hidden隐藏。
配置示例
```
- description: ""
    displayName: ""
    path: image
    x-descriptors:
      - "urn:alm:descriptor:com.huawei.ui:hidden"
```
使用说明：
1.可以隐藏CRD描述的字段（如果是父目录的则叶子节点也会隐藏）。
2.该字段在UI表单上隐藏，但是yaml编辑器仍然是可以修改。
