
# OSC服务包介绍
#### 目录结构
```
{OSC-Package}/
├─ metadata.yaml       #【必选】元数据文件
├─ manifests/          #【必选】资源集合
├─ raw/                #【可选】第三方目录
└─ lifecycle.yaml      #【必选】生命周期文件
```
表1目录结构 
| 名称     | 目录/文件          | 描述                                   | 必选 |
|:---|:---|:---|:---|
| 元数据文件  | metadata.yaml  | 存放服务包的基本属性和相关信息，包括名称、版本、描述等相关信息。     | 是  |
| 资源集合   | manifests      | 存放Resources资源定义的集合，以及平台公共能力。         | 是  |
| 第三方目录  | raw            | 存放兼容的第三方文件，如Helm/Operator-Framework。 | 否  |
| 生命周期文件 | lifecycle.yaml | 存放服务包的安装部署、升级等生命周期相关信息。              | 是  |
   
#### 服务包约束
- 命名规则：只允许包含大小写字母、数字、下划线、中划线及点，且不能以下划线、中划线及点结尾。{service_pack_name}-{version}.zip，例如redis-operator-1.0.0.zip。
- 包格式：operator类型服务包支持zip格式，helm类型服务包支持tgz格式。
- 包大小：不超过4MB。
样例（以Kafka为示例）：
```
{OSC-Package}/
├─ metadata.yaml
├─ manifests/
│  ├─ xxx_crd.yaml
│  ├─ xxx_csd.yaml
│  └─ vendor/
│      ├─ monitor_config.yaml
│      ├─ logs_config.yaml
├─ raw/
│  ├─ Chart.yaml          
│  ├─ values.yaml         
│  ├─ values.schema.json 
│  ├─ charts/            
│  └─ templates           
│      └─ xxx.yaml
└─ lifecycle.yaml
```
