
# 商用服务预上架失败，报"缺少必要的服务提供者的联系信息"
#### 使用场景
合作伙伴使用账号进行商品发布，在触发安全扫描功能后，等待一段时间报"初始化失败"错误，鼠标放置上面展示详细错误信息，信息报"缺少必要的服务提供者的联系信息"。
![](https://support.huaweicloud.com/osc_faq/public_sys-resources/note_3.0-zh-cn.png)
报此错误主要是由于ISV用户上传的商用服务包中缺少相关的服务提供者联系信息，这会导致用户对服务包存在相关诉求而无法快速联系对应提供者，因此要求用户在软件包中进行描述。
#### 操作步骤
- 上传服务包为helm服务包格式，需要在Chart.yaml文件中增加维护者信息，具体配置如下所示，参考[更多](https://helm.sh/docs/topics/charts/)。
  ```
  version: A SemVer 2 version (required)
  kubeVersion: A SemVer range of compatible Kubernetes versions (optional)
  description: A single-sentence description of this project (optional)
  type: The type of the chart (optional)
  keywords:
    - A list of keywords about this project (optional)
  home: The URL of this projects home page (optional)
  sources:
    - A list of URLs to source code for this project (optional)
  dependencies: # A list of the chart requirements (optional)
    - name: The name of the chart (nginx)
      version: The version of the chart ("1.2.3")
      repository: (optional) The repository URL ("https://example.com/charts") or alias ("@repo-name")
      condition: (optional) A yaml path that resolves to a boolean, used for enabling/disabling charts (e.g. subchart1.enabled )
      tags: # (optional)
        - Tags can be used to group charts for enabling/disabling together
      import-values: # (optional)
        - ImportValues holds the mapping of source values to parent key to be imported. Each item can be a string or pair of child/parent sublist items.
      alias: (optional) Alias to be used for the chart. Useful when you have to add the same chart multiple times
  maintainers: # (optional)
    - name: The maintainers name (required for each maintainer)
      email: The maintainers email (optional for each maintainer)
      url: A URL for the maintainer (optional for each maintainer)
  icon: A URL to an SVG or PNG image to be used as an icon (optional).
  appVersion: The version of the app that this contains (optional). Needn't be SemVer. Quotes recommended.
  deprecated: Whether this chart is deprecated (optional, boolean)
  annotations:
    example: A list of annotations keyed by name (optional).
  ```
  
- 上传的服务包为operator-framework格式，则需要在xxx.clusterserviceversion.yaml文件中进行增加相关配置。
  ```
  apiVersion: operators.coreos.com/v1alpha1
  kind: ClusterServiceVersion
  metadata:
    name: xxx.v1.0.0
    namespace: placeholder
  spec:
    provider:
      name: 'xxx.'
      url: 'xxxx'
    maintainers:
      - name: 'xxxx'
        email: xxx@xxx.com
  ```
  
- 上传的服务包为OSC规范格式，则需要在metadata.yaml文件中进行增加相关配置字段。
  ```
  provider:
    name: 'xxx.'
    url: 'xxxx'
  maintainers:
    - name: 'xxxx'
      email: xxx@xxx.com
  ```
  
 
