更新时间: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

相关文档