云原生服务中心 OSC-自定义服务CSD:versionDefinition
versionDefinition
实例版本定义配置是在csd文件中配置versionDefinition。
- versionDefinition配置tag样例如下。
versionDefinition: mode: tag path: spec.kafka.image tags: - 1.1.1 - 2.2.2 - 3.3.3 - 9.9.9
- versionDefinition配置url样例如下。
versionDefinition: mode: url path: spec.kafka.image tags: - 1.1.1 - 2.2.2 - 3.3.3 - 9.9.9
defaultConfiguration: |-{ .... ... "spec": { "kafka": { "config": { }, "image": "example:1.1.1" "nodeIps": [], "nodeSelector": {}, "podAntiAffinity": true, "ports": { "bootstrapServer": 9092, "prometheus": 9404 }, "replicas": 3, "storageSize": "8Gi" } } }
参数名称 |
参数描述 |
参数示例 |
必填 |
---|---|---|---|
description |
单击升级时的提示信息,知会用户进行实例升级的注意事项 |
您可以直接升级到最新版本,升级期间会发生5s之内的连接闪断,请确认应用程序具备重连机制 |
否 |
mode |
实例的镜像格式,当前仅支持url、tag这两种格式 |
取值范围固定为[url、tag]
|
必填, 当mode配置之后,path和tags就成了必填项 |
path |
实例镜像替换路径,位于defaultConfiguration字段下的值 |
例如,path值配置为"spec.kafka.image",则需要替换的值是"example:1.1.1" |
必填 |
tags |
实例镜像tag版本号列表。建议使用引号,否则YAML会将类似2.0的tag版本号识别为浮点数。
注意:
配置在tags下的实例版本号默认都是兼容的实例版本,即这些版本之间能进行互相升级。不兼容的版本号配置在tags列表下会造成升级完成之后实例功能有问题。 |
以实例镜像文件为test-x86_64-2.0.1.20210929123638.tar为例, 实例镜像文件通过docker load -i test-x86_64-2.0.1.20210929123638.tar执行完成之后,会在控制台回显如下信息: Loaded image: test-x86_64:2.0.1.20210929123638 则tag版本号为2.0.1.20210929123638,如果有多个版本镜像,则都可以通过此方式获取tag版本号, 然后将这些tag版本号配置在tags下面 |
必填 |
对于lifecycle文件中配置了upgrade字段的服务包,需要确保versionDefinition字段与被升级的operator的所管理的实例相兼容,否则会导致上传服务包或升级服务operator失败,具体规则如下:
1. 在上传服务包阶段,upgrade.replaces字段指定的被升级operator的versionDefinition字段为空时,允许上传服务包;不为空时,新的versionDefinition.tags需要与其有交集才能发布。
2. 在服务operator升级阶段,被升级的operator当前管理的实例版本必须都在新的versionDefinition.tags列表中,否则不允许升级,需要确认新版本的operator是否能够管理这些实例,如果可以,则修改versionDefinition后重新上传服务包,否则需要删除不兼容的实例后再升级。
apiVersion: osc.io/v1beta1kind: CustomServiceDefinitionmetadata: name: kafka-csdspec: # 通过CRDRef将此 CS D跟同一文件夹下的某个CRD相关联 CRDRef: apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: kafkas.osc.huawei.com # CRD显示名字 displayName: kafka # CRD 描述 description: kafka Description # CRD的角色 role: serviceEntity # 公共能力引用(只针对平台能力引用) capabilityRequirements: - apiVersion: osc.io/v1 # 引用平台监控能力 kind: MonitorConfig defaultPath: vendor/monitor_config.yaml - apiVersion: osc.io/v1 # 引用平台日志能力 kind: LogConfig defaultPath: vendor/log_config.yaml # 服务依赖 serviceEntityDependencies: - service: rdsService apiVersion: rds.io/v1alpha1 # 依赖operator格式的RDS kind: rds defaultPath: vendor/rds_provider.yaml - service: redisService # 依赖Helm格式的redisService defaultPath: vendor/redis_service_values.yaml # redis的values.yaml文件 # UI控件 descriptors: spec: - description: "" displayName: "" path: {crd-name.replicas} x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:podCount" status: - description: "" displayName: "" path: {crd-name.replicas} x-descriptors: - "urn:alm:descriptor:com.tectonic.ui:podCount" # CRD对应的CR样例 defaultConfiguration: |-{ "apiVersion": "osc.huawei.com/v1", "kind": "Kafka", "metadata": { "annotations": { "osc.io/occupied-port": "135,139" }, "name": "kafka-sample", "namespace": "kfk", "finalizers": [ "kafka.finalizers.osc.huawei.com" ] }, "spec": { "kafka": { "config": { }, "image": "xxx/xx/aa:1.0" "nodeIps": [], "nodeSelector": {}, "podAntiAffinity": true, "ports": { "bootstrapServer": 9092, "prometheus": 9404 }, "replicas": 3, "storageSize": "8Gi" } } } # 服务实例升级 versionDefinition: description: 您可以直接升级到最新版本,升级期间会发生5s之内的连接闪断,请确认应用程序具备重连机制 mode: url path: spec.image tags: - "2.7.0" - "2.7.1" - "2.7.2"
- ModelArts自定义镜像_自定义镜像简介_如何使用自定义镜像
- 分布式云原生服务中心_华为云分布式云原生_华为云UCS服务中心
- 华为GaussDB自定义函数_GaussDB教程_华为高斯数据库自定义函数
- GaussDB数据库自定义函数_GaussDB 华为_高斯数据库自定义函数
- 分布式云原生分发应用实例_华为云分布式云原生_华为云UCS分发应用实例
- 安全云脑_自定义告警模型-华为云
- ModelArts推理部署_创建AI应用_自定义镜像规范-华为云
- 分布式云原生域名访问_华为云分布式云原生_华为云UCS域名访问
- OBS如何绑定自定义域名_OBS如何使用CDN加速_OBS如何使用CDN自动刷新
- 分布式云原生命名空间_华为云分布式云原生_华为云UCS命名空间