
# 生命周期Lifecycle
生命周期文件：{OSC-Package}/lifecycle.yaml，描述当前OSC服务包的安装，升级方式信息。
- lifecycle.yaml文件样例
  ```
  ## 描述该OSC服务包的声明周期相关信息
  install:
    strategy: deployment
    clusterPermissions:
      - rules:
          - apiGroups:
            - ""
            resources:
            - ""
            verbs:
            - ""
        serviceAccountName: sa
    deployments:
      - name: example-operator
        spec:
          template:
            metadata:
            spec:
  upgrade:
    replaces: 0.0.1
    skips:
      - 0.0.2
      - 0.0.3
    
  operations:
    logpath: /var/paas/sys/log/operator/xxx-operator.log
  ```
  
表1Lifecycle配置 
| 参数名称                       | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 参数示例                    | 必填 |
|:---|:---|:---|:---|
| install.strategy           | 安装方式，目前仅支持deployment方式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | deployment              | 否  |
| install.clusterPermissions | 安装时需要的集群级别的权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Kubernetes RABC规范       | 否  |
| install.deployments        | 安装时的内容                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Kubernetes Deployment规范 | 是  |
| upgrade.replaces           | 升级基线版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 0.0.1                   | 否  |
| upgrade.skips              | 可以跳过升级的版本列表 说明： **举例说明：** 假设已经发布0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5五个版本，其中0.0.2配置replaces: 0.0.1，0.0.5配置replace: 0.0.1及skips: 0.0.2。 - 0.0.2和0.0.5版本都配置基线版本为0.0.1，所以已经部署的0.0.1版本可以升级到0.0.2和0.0.5版本。  - 0.0.5版本因为配置了跳过0.0.2版本并且基线版本为0.0.1，所以已经部署的0.0.2版本无法升级到0.0.5版本，但是可以先将0.0.2版本回退到0.0.1版本后再次升级到0.0.5版本   | 参见样例                    | 否  |
| operations                 | 运维操作配置，以注解方式定义                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 参见样例                    | 否  |
| operations.logpath         | 日志目录                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 参见样例                    | 否  |
   
![](https://support.huaweicloud.com/devg-osc/public_sys-resources/caution_3.0-zh-cn.png)
对于lifecycle文件中配置了upgrade字段的服务包，需要确保该服务operator能够管理的实例版本（由CSD文件中的versionDefinition字段规定）与被升级的operator所能管理的实例版本相兼容，否则会导致上传服务包或升级服务operator失败。具体规则请参见[versionDefinition](https://support.huaweicloud.com/devg-osc/osc_ss_0009.html#osc_ss_0009__section17193155173520)。
