检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
生成服务包 最终的服务目录结构如下: $ tree hwfka-operator-package hwfka-operator-package ├── lifecycle.yaml ├── manifests │ ├─ hwfka_crd.yaml │ └─ hwfka_csd.yaml
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。
# 在 GOPATH 下新建工程目录 $ mkdir -p $GOPATH/src/hwfka-operator $ cd $GOPATH/src/hwfka-operator # 使用kubebuilder初始化脚手架框架,并设定域名为huawei.com $ kubebuilder
使用自定义csd.yaml文件生成表单 自动生成的创建表单已经很强大,但有时可能需要修改自定义表单的呈现方式。例如,可能需要对用户更友好的displayName、更简洁的描述,以及更改表单字段顺序,或排除一些非面向用户的字段。
安装Controller 安装 kustomize 基于模板生成YAML文件,下载kustomize二进制压缩包:https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.8.1/kustomize_v3.8.1
每次修改API定义后,需要执行命令自动重新生成代码和CRD: $ make generate $ make manifests 父主题: 实现Operator
基础控件 OSC console依据crd.yaml文件可以自动生成Operator的创建表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。
oscctl工具使用 oscctl是一款用于生成华为云OSC服务包脚手架或者将开源Helm或Operator服务包转换为OSC服务包的命令行工具。
使用oscctl create命令会在manifests目录下生成一个vendor文件夹,该文件夹下存放日志、监控的扩展内容,扩展目录结构如下: # 以hwfka-operator-package为示例 hwfka-operator-package ├─ metadata.yaml
images目录下存放服务运行所需的容器镜像,根据服务实际情况确定支持单CPU架构还是多CPU架构: 单CPU架构:一般制作生成的容器镜像,其默认只能在某一种CPU架构的节点上运行,比如X86或ARM。
配置表单控件 创建实例应用时,往往涉及大量的参数配置,为方便用户使用,OSC console提供了自动生成表单的能力。 在Kubernetes 1.8中,CRD定义基于OpenAPI v3的验证模式的能力。基于OpenAPI v3能力,可用于自动生成用于创建实例的表单。
一次开发,标准、快速交付 基于OSC开发规范开发的云服务,在公有云验证交付后,云服务提供商无需再针对云容器引擎、华为云UCS部署平台适配,可以随OSC拓展到云容器引擎、华为云UCS应用部署平台,使交付更标准,更快速,为生态伙伴的产品赋予了批量复制的能力。
实现Operator 定义API 实现Controller 生成代码和资源描述文件 父主题: 开发Operator
制作服务包 创建服务包模板 修改服务包内容 生成服务包 父主题: 如何从零开始开发Operator
自定义控件 基于CRD自动生成表单的基础能力控件已经能很好的呈现表单输入,但是为了对用户更友好,更好的表达字段的含义以及隐藏一些非面向用户的字段,因此引入了x-descriptors描述符来定义自定义的控件。
是 operator部署包 {serviceName}-{Version}.zip 服务名+版本号+zip命名 operator部署包,参考Operator framework方式生成。
因为该文件由Kubernetes社区提供的controller-gen及kustomize生成校验,所以可以直接作为标准CRD资源用户集群内CRD部署。
该CR包含三个属性:size、image、storage,下文在定义API时需要为其定义Marker,以便自动生成OpenAPI schema。
OSC平台支持OSC服务规范,开源Helm或Operator-Framework的规范服务,开发者可参考开源服务包规范确保服务包符合helm或者operator-framework规范,或参考制作服务包,生成符合OSC规范的服务包。
values.schema.json #【可选】一个使用JSON结构的values.yaml文件 ├─ charts/ #【可选】包含chart依赖的其他chart └─ templates #【必选】模板目录,当和values 结合时,可生成有效的