更新时间:2024-06-13 GMT+08:00
第三方目录Raw
第三方目录:{OSC-Package}/raw。raw目录下会包含原始Helm包的内容。其他类型服务包不存在该目录。
{OSC-Package}/ ├─ metadata.yaml #【必选】元数据文件 ├─ manifests/ #【必选】资源目录 ├─ raw/ #【可选】第三方目录,支持存放helm原始包 ├─ lifecycle.yaml #【必选】生命周期文件 └─ README.md #【可选】使用说明文件
Helm包可通过oscctl工具方便地转成OSC服务包,也可通过手工转换。其中Helm规范参见Helm规范。
- Helm原始包结构
{Helm}/ ├─ Chart.yaml ├─ values.yaml ├─ values.schema.json ├─ charts/ └─ templates └─ xxx.yaml
- 经转换后的OSC服务包结构
{OSC-Package}/ ├─ metadata.yaml #【必选】新增元数据文件 ├─ manifests/ #【必选】新增资源目录 │ ├─ helmrelease_crd.yaml #【必选】创建HelmRelease CRD文件 │ └─ helmrelease_csd.yaml #【可选】新增资源增强配置 ├─ raw/ #【可选】第三方目录 │ ├─ Chart.yaml │ ├─ values.yaml │ ├─ values.schema.json │ ├─ charts/ │ └─ templates │ └─ xxx.yaml ├─ lifecycle.yaml #【必选】生命周期文件 └─ README.md #【可选】使用说明文件
- 转换说明
- 新增第三方目录raw,将Helm原始包内容全部放到该目录中。
- 新增元数据文件metadata.yaml,该文件内容包含Chart.yaml,具体规范参见元数据Metadata。
- 新增资源目录manifests,根据Chart.yaml的name创建对应的CRD和CSD。
- 新增自定义资源文件helmrelease_crd.yaml,该文件以下划线命名,由工具生成,无需改动。参见HelmRelease CRD示例。
- 新增自定义服务文件helmrelease_csd.yaml,可按需配置相关服务能力。
- 特别说明
- Helm类型包转成OSC服务包与Operator类型不相同。转换过程中会根据Helm Chart name自动创建对应的CRD,版本试用版v1。
- CRD中group固定值helm.osc.huawei.com,kind对应chart name。
- 如果metadata.yaml中修改了服务包名、版本等内容,需要同步修改raw内的helm包中Chart.yaml内容。
- HelmRelease CRD示例(crd.yaml)
apiVersion: apiextensions.k8s.io/v1 # 默认创建v1版本的CRD kind: CustomResourceDefinition metadata: name: rediss.helm.osc.huawei.com # 命名规则:{sepc.names.plural}.{spec.group} spec: group: helm.osc.huawei.com # 固定值,helm.osc.huawei.com names: kind: RedisHelmRelease # 命名规则:{chartname}+HelmRelease listKind: RedisHelmReleaseList # 命名规则:{spec.names.kind}+List singular: redis # {chartname}的小写形式 plural: rediss # singular的复数 scope: Namespaced version: v1 versions: - name: v1 served: true storage: true schema: openAPIV3Schema: properties: apiVersion: description: '' type: string kind: description: '' type: string metadata: properties: name: type: string type: object spec: description: '' properties: values: description: Values defines the running options of helm release type: object x-kubernetes-preserve-unknown-fields: true type: object type: object
父主题: 服务包规范