服务包目录结构约束
OSC作为一个服务生命周期管理平台,有自定义的服务模型,服务需满足目录格式要求才能被OSC解析,发布到OSC上。
{ServiceName}-{Version}.zip #【必选】服务包 └─{ServiceName}/ #【必选】服务包目录 ├─package/ #【必选】部署包目录 │ ├─{serviceName}-{Version}.zip #【必选】开源operator部署包或者转换后的osc格式部署包 │ └─{serviceName}-{Version}.tgz #【必选】Helm部署包 └─images/ #【可选】镜像目录 ├─{images1}.tar #【可选】镜像文件 ├─{images2}.tar ├─ ... └─ mapping.yaml #【可选】镜像地址替换映射文件
package目录只有一个部署包,如果是由Helm改造,就是{serviceName}-{Version}.tgz,如果是Operator改造,是{serviceName}-{Version}.zip,如果是OSC格式转换,是{serviceName}-{Version}.zip。
命名规范:
- serviceName:服务名称。目前服务名称仅接受英文大小写字母、数字及中划线(-)的组合。在服务发布中,创建服务名称其输入长度最大为64个字符。
- version:服务的版本号。服务版本号请遵循SemVer规范进行书写,但不支持SemVer中带有+的版本号。
服务包各个文件命名以及约束
名称 |
格式 |
建议参数说明 |
用途 |
必选 |
---|---|---|---|---|
服务包 |
{ServiceName}-{Version}.zip |
建议服务名+版本号+zip命名 |
用于发布到OSC市场的最终交付包,zip格式压缩包。 |
是 |
服务包目录 |
{ServiceName} |
建议服务名来命名 |
总服务包目录。 |
是 |
部署包目录 |
package |
固定名称,不可修改 |
OSC兼容两种开源规范,Helm和Operator,package目录用于存放服务的Helm模板或者Operator包,两种类型二选一。 |
是 |
osc部署包 |
{serviceName}-{Version}.zip |
服务名+版本号+zip命名 |
osc部署包,参考《OSC服务开发者指南》章节2.2《服务包规范》转换operator或Helm生成的服务包。 |
是 |
operator部署包 |
{serviceName}-{Version}.zip |
服务名+版本号+zip命名 |
operator部署包,参考Operator framework方式生成。 |
是 |
helm部署包 |
{serviceName}-{Version}.tgz |
服务名+版本号+tgz命名 |
Helm部署包,参考开源Helm格式生成即可。 |
是 |
镜像目录 |
images |
固定名称,不可修改 |
存放服务包的镜像目录,当镜像是让用户从外部拉取,镜像目录可不要。 |
否 |
镜像文件 |
{images}.tar |
镜像文件,tar格式结尾 |
镜像文件。 |
否 |
镜像地址索引文件 |
mapping.yaml |
固定名称,不可修改 |
OSC通过这个文件判断Helm模板或者Operator包中配置镜像的字段,以便将这些镜像地址替换成OSC仓库中实际的镜像地址。 |
否 |
示例
- etcd Operator服务
etcd.zip | --- etcd/ | --- package/ | --- etcd-operator-0.9.4.zip #etcd Operator包,必须是zip格式的压缩包 | --- images/ | --- etcd-operator-0.9.4.tar #etcd Operator的镜像 | --- etcd-3.5.0.tar #etcd 的镜像 | --- mapping.yaml
- etcd Helm服务
etcd.zip | --- etcd/ | --- package/ | --- etcd-helm-6.7.0.tgz #etcd helm模板包,必须为tgz的格式 | --- images/ | --- etcd-3.5.0.tar # etcd 的镜像 | --- mapping.yaml