更新时间:2024-06-13 GMT+08:00
分享

服务包目录结构约束

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

相关文档