检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
制作Operator镜像 修改hwfka-operator/Dockerfile内容如下: FROM centos:latest COPY bin/manager / RUN chmod ug+x /manager WORKDIR / 构建容器镜像命令如下: $ make && make
specDescriptors specDescriptors用于描述自定义资源中规范字段的属性。每个字段应包含以下内容: displayName -字段的用户友好名称。 description -字段表示内容的简单描述信息。 path -对象中字段以点分隔的路径。 restriction(可选):指定控件使用场景。
创建服务包模板 通过OSC提供的oscctl工具创建服务包模板,oscctl工具使用详情请参见oscctl工具使用。 使用oscctl工具创建服务包模板。 # 使用oscctl工具,创建服务包 $ oscctl create -o ./hwfka-operator-package
生成服务包 最终的服务目录结构如下: $ tree hwfka-operator-package hwfka-operator-package ├── lifecycle.yaml ├── manifests │ ├─ hwfka_crd.yaml │ └─ hwfka_csd
CRD典型格式 以v1版本为例: apiVersion: apiextensions.k8s.io/v1 # 创建 CRD kind: CustomResourceDefinition metadata: # 名称必须采用复数 <plural-name>.<group>.<domain>
控件类型 表单控件类型 1. 使用默认crd.yaml文件自动生成表单 由CRD中定义的openAPIV3Schema字段规定CR中可配置的参数以及这些参数的类型、范围,应用在创建CR的时候通过YAML文件指定这些参数。 2. 使用自定义csd.yaml文件生成表单 自动生成的创
挂载存储 在Kubernetes中,通过PersistentVolume(PV)方式挂载存储,典型的步骤如下: 创建PV,为集群提供存储服务。 apiVersion: v1 kind: PersistentVolume metadata: name: mypv1 annotations:
vendor目录 公共能力目录:{OSC-Package}/manifests/vendor,用于存放平台提供的能力配置文件,用于manifests目录中的CRD引用。 公共能力目录结构: {OSC-Package}/ ├─ metadata.yaml ├─ manifests/
OSC服务包介绍 目录结构 {OSC-Package}/ ├─ metadata.yaml #【必选】元数据文件 ├─ manifests/ #【必选】资源集合 ├─ raw/ #【可选】第三方目录 └─ lifecycle
对接实例升级能力 修改csd.yaml,声明实例版本定义信息。新增配置如下: # 支持升级的镜像版本 versionDefinition: mode: url path: spec.image tags: - 0.0.1 - 0.0.2
生命周期Lifecycle 生命周期文件:{OSC-Package}/lifecycle.yaml,描述当前OSC服务包的安装,升级方式信息。 lifecycle.yaml文件样例 ## 描述该OSC服务包的声明周期相关信息 install: strategy: deployment
资源集合 {OSC-Package}/manifests,用于存放自定义资源文件以及公共能力配置,不同资源用目录进行划分。 资源集合结构: {OSC-Package}/ ├─ metadata.yaml ├─ manifests/ #【必选】资源集合
服务包扩展目录 运维能力是在OSC服务规范基础上产生的能力,因此如果需要对接运维能力,需要先确保服务包的格式转换为OSC自身的规范才行,默认的开源规范当前只支持安装部署等基本功能。 运维能力扩展 为了保证适用OSC的服务规范,将使用oscctl工具作为创建、转换OSC服务包,并且统一服务包格式。使用oscctl
基础控件 OSC console依据crd.yaml文件可以自动生成Operator的创建表单。crd.yaml文件中的properties(openAPIV3Schema.properties.spec.properties)对象会自动映射到对应的UI组件。 目前提供的基础类型
controller runtime: # 检查如果环境所需要的依赖包不满足kubebuilder要求,kubebuilder会下载相关依赖包,开发者可根据实际情况在项目的go.mod中更改依赖包 go get sigs.k8s.io/controller-runtime@v0.10.0
第三方目录Raw 第三方目录:{OSC-Package}/raw。raw目录下会包含原始Helm包的内容。其他类型服务包不存在该目录。 {OSC-Package}/ ├─ metadata.yaml #【必选】元数据文件 ├─ manifests/
间件,还提供了新技术领域的AI、大数据、高性能计算、边缘等应用,您可以根据业务需要订阅。 全域部署 云原生服务中心联合华为云分布式服务UCS,能够将应用部署到华为云集群、多云集群、本地集群、附着集群、伙伴集群五种场景,实现应用的跨云和全域部署。 高效开发,自动运维 容器化只是服务
安装Kubebuilder 环境准备 已安装go v1.16+。 已安装make。 已安装docker 17.03+。 已安装Kubernetes v1.15.0+ 。 已安装kustomize,安装方法请参见安装 kustomize。 已安装controller-gen,安装方
自定义资源CRD 自定义资源CRD是Kubernetes服务遵循,一个自定义资源对应一个目录,遵循Kubernetes CRD规范,详细介绍参考官方CustomResourceDefinition。 父主题: 资源集合Manifests
生成代码和资源描述文件 修改api/v1/memcached_types.go或controller中的markers之后,需要重新生成代码和资源描述文件。 # 生成 api/v1/zz_generated.deepcopy.go make generate # 生成 config/crd/bases