-
定义API - 云原生服务中心 OSC
结构的属性上定义Markers,自动生成CRD中的spec.validation.openAPIV3Schema,即基于OpenAPI的校验规则,以便校验用户创建的CR中字段值的合法性。
-
创建API和Controller - 云原生服务中心 OSC
创建API和Controller 根据以上设计的CR,在项目工程中创建对应的CRD类型: $ kubebuilder create api --group osctest --version v1 --kind Hwfka Create Resource [y/n] y Create
-
CRD介绍 - 云原生服务中心 OSC
OpenAPI校验 在定义CRD时,需同时定义基于OpenAPI的校验规则,其中包含创建CR时的字段及取值范围,以便校验用户创建的CR中字段值的合法性。
-
CRD典型格式 - 云原生服务中心 OSC
CRD典型格式 以v1版本为例: apiVersion: apiextensions.k8s.io/v1 # 创建 CRD kind: CustomResourceDefinition metadata: # 名称必须采用复数 <plural-name>.<group>.
-
生成代码和资源描述文件 - 云原生服务中心 OSC
# 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases 和 config/rbac/role.yaml make manifests 该步骤将根据API定义自动生成CRD和RBAC。
-
specDescriptors - 云原生服务中心 OSC
配置Descriptor控件时,需要确保在csd.yaml中增加的path字段路径,以v1版本为例,需要和crd中的对应的openAPIV3Schema.properties.spec.properties内的path路径一致,否则会出现控件不生效的情况。
-
表单控件配置组合示例 - 云原生服务中心 OSC
path: size x-descriptors: - 'urn:alm:descriptor:com.tectonic.ui:podCount' 以v1版本的crd.yaml为例: apiVersion: apiextensions.k8s.io/v1
-
基础控件 - 云原生服务中心 OSC
基础控件 OSC console依据crd.yaml文件可以自动生成Operator的创建表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。
-
自定义服务CSD - 云原生服务中心 OSC
apiVersion: osc.io/v1beta1 kind: CustomServiceDefinition metadata: name: kafka-csd spec: # 通过CRDRef将此CSD跟同一文件夹下的某个CRD相关联 CRDRef: apiVersion
-
控件类型 - 云原生服务中心 OSC
使用默认crd.yaml文件自动生成表单 由CRD中定义的openAPIV3Schema字段规定CR中可配置的参数以及这些参数的类型、范围,应用在创建CR的时候通过YAML文件指定这些参数。 2.