更新时间:2022-09-16 GMT+08:00
CRD典型格式
以v1版本为例:
apiVersion: apiextensions.k8s.io/v1 # 创建 CRD kind: CustomResourceDefinition metadata: # 名称必须采用复数 <plural-name>.<group>.<domain> 格式 name: memcacheds.osc.huawei.com spec: group: osc.huawei.com names: # 可创建的对象类型 kind: Memcached listKind: MemcachedList # 复数名称 plural: memcacheds # CLI 别名, 显示的单数名称 singular: memcached # CLI 中使用的简称 shortNames: - mc # 可用范围: Namespaced or Cluster scope: Namespaced version: v1 # 可定义多个版本 versions: - name: v1alpha1 served: false # 需要卸载该版本时,先标记为 non-serving storage: false # 再将 storage 设置到可用的版本 - name: v1 served: true storage: true # 基于 openAPIV3Schema 的校验规则 validation: openAPIV3Schema: description: Memcached is the Schema for the Memcacheds API properties: # ... type: object
在Kubernetes中创建CRD时,将自动创建其对应的Kubernetes API,为RESTful endpoint形式,在namespace或cluster范围内可以访问其进行CRUD操作。
其格式如下:
/apis/<spec:group>/<spec:version>/<scope>/*/<names-plural>/...
示例:
/apis/osc.huawei.com/v1/namespaces/*/memcacheds/...
*代表所有namespace,可以使用指定namespace名称查询特定namespace下的CR。
父主题: Operator代码示例