支持 VNF 软件修改的 ChangeCurrentVNFPackage¶
蓝图 URL: https://blueprints.launchpad.net/tacker/+spec/upgrade-vnf-package
本规范描述了 ETSI NFV-SOL003 v3.3.1 [1] 中定义的 ChangeCurrentVNFPackage 操作。
问题描述¶
ChangeCurrentVNFPackage API 和 VNF LCM 协调接口是在 ETSI NFV-SOL003 v3.3.1 [1] 和 ETSI NFV-SOL002 v3.5.1 [2] 中新定义的,分别根据 ETSI NFV-IFA007 v3.3.1 [3] 中的 VNF 软件修改流程。这些新功能使 Tacker 能够以两种方式更新 VNF 实例:蓝绿部署和滚动更新。但是,大多数当前的 VNF 不支持 VNF LCM 协调接口。我们计划在 Tacker 中实现此接口以供将来使用。因此,本规范符合 ETSI NFV-SOL003 v3.3.1 [1] 和 ETSI NFV-SOL002 v3.3.1 [4],不符合 ETSI NFV-SOL002 v3.5.1 [2]。
提议的变更¶
我们提出以下更改
支持 ChangeCurrentVNFPackage API。
VNF 软件修改执行以下操作
OpenStack VIM 的蓝绿部署流程。
创建新的 VNF (VM)。
调用协调 VNF 方法。
删除旧的 VNF (VM)。
TackerDB 中要更新的属性如下
VnfInstance.vnfdId:将现有的 vnfd ID 替换为新的 vnfd ID。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId:使用新的资源 ID 更新 resourceId。
VnfInstance.instantiatedVnfInfo.vnfVirtualLinkResourceInfo.networkResource.resourceId:使用新的连接点 ID 更新 resourceId。
VnfInstance.instantiatedVnfInfo.virtualStorageResourceInfo.storageResource.resourceId:使用新的存储 ID 更新 resourceId。
VnfInstance.instantiatedVnfInfo.instance_id:使用新的堆栈 ID 更新 id。
OpenStack VIM 的滚动更新流程。
更新现有的 VNF (VM)。
在此步骤中,Tacker 将对每个目标 VM 重复更新堆栈操作。
调用协调 VNF 方法。
TackerDB 中要更新的属性如下
VnfInstance.vnfdId:将现有的 vnfd ID 替换为新的 vnfd ID。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId:使用新的资源 ID 更新 resourceId。是否更新该属性取决于资源的更改。请参阅备注。
注意
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId 不会被以下内容更新:
旧的 computeResource(由镜像创建)-> 新的 computeResource(由镜像创建)
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId 会被以下内容更新:
旧的 computeResource(由镜像创建)-> 新的 computeResource(由卷创建)
旧的 computeResource(由卷创建)-> 新的 computeResource(由镜像创建)
旧的 computeResource(由卷创建)-> 新的 computeResource(由卷创建)
Kubernetes VIM 的蓝绿部署流程。
创建新的 CNF (Deployment)。
调用协调 VNF 方法。
删除旧的 CNF (Deployment)。
TackerDB 中要更新的属性如下
VnfInstance.vnfdId:将现有的 vnfd ID 替换为新的 vnfd ID。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId:使用新的 Pod 名称更新 resourceId。
VnfInstance.instantiatedVnfInfo.vnfVirtualLinkResourceInfo.networkResource.resourceId:使用新的连接点 ID 更新 resourceId。
VnfInstance.instantiatedVnfInfo.virtualStorageResourceInfo.storageResource.resourceId:使用新的存储 ID 更新 resourceId。
VnfResource.resourceName:使用新的 Deployment 名称更新 resourceName。
Kubernetes VIM 的滚动更新流程。
更新现有的 CNF (Deployment)。
调用协调 VNF 方法。
TackerDB 中要更新的属性如下
VnfInstance.vnfdId:将现有的 vnfd ID 替换为新的 vnfd ID。
VnfInstance.metadata:使用请求中 lcm-kubernetes-def-files 中指定的新的文件路径更新 metadata。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.id:使用新的 UUID 更新 resourceInfoId。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId:使用新的 Pod 名称更新 resourceId。
VnfInstance.instantiatedVnfInfo.vnfcResourceInfo.metadata:更新新的 Pod 的 metadata。
注意
滚动更新更改原始 Deployment 上的 Pod,因此 Deployment 本身和连接点不需要更改。因此,此过程不需要修改 TackerDB 中的 VnfInstance.instantiatedVnfInfo.vnfVirtualLinkResourceInfo.networkResource.resourceId 和 VnfResource.resourceName。
实现 VnfLcmDriver 调用请求参数中指定的 CoordinateVNF 脚本的机制。
提供使用 CoordinateVNF 的示例 CoordinateVNF 脚本。
对于 OpenStack VIM
配置负载均衡器。
对于 Kubernetes VIM
更新 Kubernetes Service。
注意
访问每个 VNFC 的信息由 OpenStack VIM 中的负载均衡器和 Kubernetes VIM 中的 Service 对象管理。
注意
如果在 ChangeCurrentVNFPackage 处理期间发生错误,LCM 状态将变为 FAILED_TEMP。蓝绿部署和滚动更新的每个回滚操作的实现如下:
删除蓝绿部署中由 ChangeCurrentVNFPackage 操作创建的新实例。
使用旧的 VNF 包重新创建 VNFC 实例,以恢复到旧版本,以运行新版本。
注意
VNF 包是否可以更改的评估在 ETSI NFV-SOL003 v3.3.1 [1] 中描述,但本规范中未考虑。
以下显示了每个用例的操作流程。
OpenStack VIM 的 Change current VNF Package 操作¶
HEAT 模板配置¶
OpenStack VIM 的 HEAT 模板配置示例文件。
top.yaml
heat_template_version: 2013-05-23
description: Sample template for Upgrade.
parameters:
image_id:
type: string
description: Image ID to use for the instance.
flavor_name:
type: string
description: Flavor name to use for the instance.
num_of_instances:
type: number
description: Number of instances to create.
ext_network_id:
type: string
description: External Network ID.
resources:
group1:
type: OS::Heat::AutoScalingGroup
properties:
min_size: 1
max_size: 4
desired_capacity: {get_param: num_of_instances}
resource:
type: nested_server.yaml
properties:
image_id: { get_param: image_id }
flavor_name: { get_param: flavor_name }
ext_network_id: { get_param: ext_network_id }
nested_server.yaml
heat_template_version: 2013-05-23
description: Sample template for scaling.
parameters:
image_id:
type: string
description: Image ID to use for the instance.
flavor_name:
type: string
description: Flavor name to use for the instance.
ext_network_id:
type: string
resources:
cp:
type: OS::Neutron::Port
properties:
network: { get_param: ext_network_id }
group1:
type: OS::Nova::Server
properties:
name: sample_server
image: {get_param: image_id}
flavor: {get_param: flavor_name}
networks:
- port:
get_resource: cp
蓝绿部署¶
以下是 OpenStack VIM 的蓝绿部署流程图
+---------+
| VNFD |
| |
+-+-------+
|
6. Coordinate (Script is included v +-------------------+
New resource +--------------------+ in the package) +----------+ | Change current |
+---------------+ Coordinate VNF +---------------------->| | | VNF Package |
| | script | 5. CoordinateVNF | CSAR | | Request with |
| +-----------+ |<------------------+ | | | Additional Params |
| | +-------+------------+ | +----+-----+ +-+-----------------+
| | 8. Coordinate | 7. Update load balancer | | | 1. Change current VNF Package
| | Old resource | | | | request
| | | | +-----+----------+------------------------------+
| | | | | v v VNFM |
| | | | | +------------------------------+ |
| | | | | | Tacker-server | |
| | | | | +--+---------------------------+ |
| | | | | | 2. Change current VNF Package request |
| | | | | v |
| | | | | +-----------------------------------------+ |
| | v | | | | |
| | +--------------------+ | | | +----------------------+ | |
| | | LB | +--+--+---+ VnfLcmDriver | | |
| | +--------------------+ | | | | | |
| | | | | | | |
| | +--------------------+ 11. Update TackerDB | | | | | |
| | | TackerDB |<---------------------+--+---+ | | |
| | +--------------------+ | | | | | |
| | | | +-+---------------+----+ | |
| | | | | 3. Create New | 9. Terminate Old | |
| | | | | resource | resource | |
| | +--------------------+ | | v v | |
| | | | 10. Terminate Old | | +----------------------+ | |
| | | +--------------+ | resource | | | InfraDriver | | |
| +-----------+->| Old resource |<-+----------------------+--+---+ | | |
| | +--------------+ | 4. Create New | | | | | |
| | +--------------+ | resource | | | | | |
+---------------+->| New resource |<-+----------------------+--+---+ | | |
| +--------------+ | | | +----------------------+ | |
| VNF | | | | |
+--------------------+ | | | |
| | Tacker-conductor | |
+--------------------+ | +-----------------------------------------+ |
| Hardware Resources | | |
+--------------------+ +-----------------------------------------------+
蓝绿部署操作序列(适用于 OpenStack VIM)
客户端向“Individual VNF instance”资源发送 POST 请求。
Tacker-server 将 ChangeCurrentVNFPackage 请求发送到 Tacker-conductor,然后 Tacker-conductor 获取上载的 VNF 包并调用 VnfLcmDriver。
VnfLcmDriver 向 InfraDriver 发送请求以创建新的 VNF。
InfraDriver 向 VIM 发送请求以创建新的 VNF。
VnfLcmDriver 调用 CoordinateVNF。
CoordinateVNF 脚本向新的 VNF 发送请求以协调 VNF。
CoordinateVNF 脚本向负载均衡器发送请求以更新配置。
CoordinateVNF 脚本向旧的 VNF 发送请求以协调 VNF。
VnfLcmDriver 向 InfraDriver 发送请求以终止旧的 VNF。
InfraDriver 向 VIM 发送请求以终止旧的 VNF。
VnfLcmDriver 更新 TackerDB 中的以下属性
VnfInstance.vnfdIdVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceIdVnfInstance.instantiatedVnfInfo.vnfVirtualLinkResourceInfo.networkResource.resourceIdVnfInstance.instantiatedVnfInfo.virtualStorageResourceInfo.storageResource.resourceIdVnfInstance.instantiatedVnfInfo.instance_id
滚动更新¶
以下是 OpenStack VIM 的滚动更新流程图
+---------+
| VNFD |
| |
+-+-------+
|
(Script is included v +-------------------+
+---------------------+ in the package) +----------+ | Change current |
+------------>| CoordinateVNF +--------------------->| | | VNF Package |
| | script | | CSAR | | Request with |
| +---------+ | | | | Additional Params |
| | +---------------------+ +----+-----+ +-+-----------------+
| | 7. Coordinate resource | | 1. Change current VNF Package
| | | | request
| | +-----+----------+------------------------------+
| | | v v VNFM |
| | | +-----------------------+ |
| | | | Tacker-server | |
| | | +--+--------------------+ |
| | | | 2. Change current VNF Package request |
| | | v |
| | | +-----------------------------------------+ |
| | | | | |
| | | | +-------------------+ | |
| | +--------------------+ | | | VnfLcmDriver | | |
| | | LB | | | | | | |
| | +--------------------+ | | | | | |
| | | | | | | |
| | +--------------------+ 9. Update TackerDB | | | | | |
| | | TackerDB |<---------------------+--+---+ | | |
| | +--------------------+ | | +-+-----------------+ | |
| | | | | 3. change_vnfpkg_process | |
| | +--------------------+ | | v | |
| | | | 4. Get stack resource| | +-------------------+ | |
| | | +--------------+ | to update | | | InfraDriver | 8. Repeat steps | |
| | | | Resource |<-+----------------------+--+---+ | 5 through 7 | |
| +---------+->| | | 5. Update VNFC | | | | for each VNFC| |
| | | |<-+----------------------+--+---+ +--------+ | |
| | +--------------+ | | | | | | | |
| | VNF | | | | |<-------+ | |
| +--------------------+ | | | | | |
| 6. Coordinate VNF | | | | | |
+---------------------------------------------------------+--+---+ | | |
| | +-------------------+ | |
| | Tacker-conductor | |
+--------------------+ | +-----------------------------------------+ |
| Hardware Resources | | |
+--------------------+ +-----------------------------------------------+
滚动更新操作序列(适用于 OpenStack VIM)
客户端向“Individual VNF instance”资源发送 POST 请求。
Tacker-server 将 ChangeCurrentVNFPackage 请求发送到 Tacker-conductor,然后 Tacker-conductor 获取上载的 VNF 包并调用 VnfLcmDriver。
VnfLcmDriver 向 InfraDriver 发送请求以更改 vnfpkg 流程。
InfraDriver 向 VIM 发送请求以获取要更新的堆栈资源。
InfraDriver 向 VIM 发送请求以更新堆栈。
InfraDriver 调用 CoordinateVNF。
CoordinateVNF 脚本向 VNF 发送请求以协调 VNF。
对每个 VNFC 重复步骤 5 到 7。
VnfLcmDriver 更新 TackerDB 中的以下属性
VnfInstance.vnfdIdVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceId
Kubernetes VIM 的 Change current VNF Package 操作¶
Kubernetes 部署配置¶
Kubernetes 配置示例文件。
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-name
spec:
replicas: 2
selector:
matchLabels:
app: app-name
template:
metadata:
labels:
app: app-name
version: original-version
spec:
containers:
- name: app-name
image: nginx:alpine
ports:
- containerPort: 80
volumeMounts:
- name: config
mountPath: /usr/share/nginx/html
volumes:
- name: config
configMap:
name: nginx-app-original
strategy:
type: RollingUpdate
service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-svc-name
spec:
selector:
app: app-name
version: original-version
ports:
- name: http
protocol: TCP
port: 8089
targetPort: 80
type: ClusterIP
蓝绿部署¶
以下是 Kubernetes VIM 的蓝绿部署流程图
+---------+
| VNFD |
| |
+-+-------+
|
6. Update +----------------------+ (Script is included v +-------------------+
Service | CoordinateVNF script | in the package) +----------+ | Change current |
+------------+ +---------------------->| | | VNF Package |
| | | 5. CoordinateVNF | CSAR | | Request with |
| | |<------------------+ | | | Additional Params |
| +----------------------+ | +----+-----+ +-+-----------------+
| | | | 1. Change current VNF Package
| | | | request
| | +-----+----------+------------------------------+
| | | v v VNFM |
| | | +------------------------------+ |
| | | | Tacker-server | |
| | | +--+---------------------------+ |
| | | | 2. Change current VNF Package request |
| | | v |
| | | +-----------------------------------------+ |
| | | | | |
| | | | +--------------------------+ | |
| | | | | VnfLcmDriver | | |
| +----------------------+ +--+--+---+ | | |
| | TackerDB | 9. Update TackerDB | | | | | |
| | |<---------------------+--+---+ | | |
| +----------------------+ | | | | | |
| +----------------------+ | | +-+---------------+--------+ | |
| | | 4. Create New | | | 3. Apply New | 7. Terminate | |
| | +----------------+ | Deployment | | | Deployment | Old | |
| | | New Deployment |<-+----------------------+--+-+ v v Deployment | |
| | | | | | | | +--------------------------+ | |
| | +----------------+ | | | +-+ InfraDriver | | |
| | +----------------+ | | | | | | |
+------------+->| Service | | | | | | | |
| | | | | | | | | |
| +----------------+ | 8. Terminate old | | +-+ | | |
| +----------------+ | Deployment | | | +--------------------------+ | |
| | Old Deployment |<-+----------------------+--+-+ | |
| | | | | | | |
| +----------------+ | | | | |
| Kubernetes cluster | | | | |
+----------------------+ | | | |
| | Tacker-conductor | |
+----------------------+ | +-----------------------------------------+ |
| Hardware Resources | | |
+----------------------+ +-----------------------------------------------+
Kubernetes VIM 的蓝绿部署操作序列
客户端向“Individual VNF instance”资源发送 POST 请求。
Tacker-server 将 ChangeCurrentVNFPackage 请求发送到 Tacker-conductor,然后 Tacker-conductor 获取上载的 VNF 包并调用 VnfLcmDriver。
VnfLcmDriver 向 InfraDriver 发送请求以应用部署。
InfraDriver 向 VIM 发送请求以应用部署。
VnfLcmDriver 调用 CoordinateVNF。
CoordinateVNF 脚本向 VIM 发送请求以更新 Kubernetes Service 的标签。
VnfLcmDriver 向 InfraDriver 发送请求以删除部署。
InfraDriver 向 VIM 发送请求以删除部署。
VnfLcmDriver 更新 TackerDB 中的以下属性
VnfInstance.vnfdIdVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceIdVnfInstance.instantiatedVnfInfo.vnfVirtualLinkResourceInfo.networkResource.resourceIdVnfInstance.instantiatedVnfInfo.virtualStorageResourceInfo.storageResource.resourceIdVnfResource.resourceName
滚动更新¶
以下是 Kubernetes VIM 的滚动更新流程图
+---------+
| VNFD |
| |
+-+-------+
|
+----------------------+ (Script is included v +-------------------+
| CoordinateVNF script | in the package) +----------+ | Change current |
| +-------------------->| | | VNF Package |
| | 5. CoordinateVNF | CSAR | | Request with |
| |<----------------+ | | | Additional Params |
+----------------------+ | +----+-----+ +-+-----------------+
| | | 1. Change current VNF Package
| | | request
| +-----+----------+------------------------------+
| | v v VNFM |
| | +------------------------------+ |
| | | Tacker-server | |
| | +--+---------------------------+ |
| | | 2. Change current VNF Package request |
| | v |
| | +-----------------------------------------+ |
| | | | |
| | | +------------------------+ | |
| | | | VnfLcmDriver | | |
+--+--+----+ | | |
+----------------------+ 6. Update TackerDB | | | | | |
| TackerDB |<-------------------+--+----+ | | |
+----------------------+ | | | | | |
+----------------------+ | | | | | |
| | | | +-+----------------------+ | |
| +----------------+ | | | | 3. Update | |
| | Service | | | | v Deployment | |
| +----------------+ | 4. Update | | +------------------------+ | |
| +----------------+ | Deployment | | | InfraDriver | | |
| | Deployment |<-+--------------------+--+----+ | | |
| +----------------+ | | | | | | |
| Kubernetes cluster | | | +------------------------+ | |
+----------------------+ | | | |
| | Tacker-conductor | |
+----------------------+ | +-----------------------------------------+ |
| Hardware Resources | | |
+----------------------+ +-----------------------------------------------+
Kubernetes VIM 的滚动更新操作序列
客户端向“Individual VNF instance”资源发送 POST 请求。
Tacker-server 将 ChangeCurrentVNFPackage 请求发送到 Tacker-conductor,然后 Tacker-conductor 获取上载的 VNF 包并调用 VnfLcmDriver
VnfLcmDriver 向 InfraDriver 发送请求以应用部署。
InfraDriver 向 VIM 发送请求以应用部署。
VnfLcmDriver 调用 CoordinateVNF。
注意
CoordinateVNF 在此用例中没有操作。
VnfLcmDriver 更新 TackerDB 中的以下属性
VnfInstance.vnfdIdVnfInstance.metadataVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.idVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.computeResource.resourceIdVnfInstance.instantiatedVnfInfo.vnfcResourceInfo.metadata
注意
仅当请求中 lcm-kubernetes-def-files 中指定了新的文件路径时,VnfInstance.metadata 才会更新。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
将添加以下 RESTful API。此 RESTful API 将基于 ETSI NFV-SOL003 v3.3.1 [1]。
- 名称:更改当前 VNF 包描述:通过 vnfd ID 请求更改当前 VNF 包。方法类型: POST资源的 URL:/vnflcm/v2/vnf_instances/{vnfInstanceId}/change_vnfpkg请求:
数据类型
基数
描述
ChangeCurrentVnfPkgRequest
1
更改当前 VNF 包的参数。
属性名称
数据类型
基数
参数描述
受支持 (Y)
vnfdId
标识符
1
定义目标 VNF 包以进行更改的 VNFD 的标识符。
是
extVirtualLinks
ExtVirtualLinkData
0..N
有关连接到 VNF 的外部 VL 的信息。
否
extManagedVirtualLinks
ExtManagedVirtualLinkData
0..N
有关由 NFVO 管理的内部 VL 的信息。
否
vimConnectionInfo
map (VimConnectionInfo)
0..N
“VnfInstance”中的“vimConnectionInfo”属性数组。
否
additionalParams
KeyValuePairs
0..1
NFVO 作为输入传递给流程的附加参数。
是
extensions
KeyValuePairs
0..1
“VnfInstance”中的“extensions”属性。
否
vnfConfigurableProperties
KeyValuePairs
0..1
“VnfInstance”中的“vnfConfigurableProperties”属性。
否
用户提供以下参数作为 additionalParams
additionalParams¶ 属性名称
基数
参数描述
upgrade_type
1
文件更新操作方法的类型。指定蓝绿或滚动更新。
lcm-operation-coordinate-old-vnf
1
旧 VNF 的 CoordinateVNF 行为的脚本文件路径。
lcm-operation-coordinate-old-vnf-class
1
旧 VNF 的 CoordinateVNF 的类名。
lcm-operation-coordinate-new-vnf
1
新 VNF 的 CoordinateVNF 行为的脚本文件路径。
lcm-operation-coordinate-new-vnf-class
1
新 VNF 的 CoordinateVNF 的类名。
vdu_params
0..N
目标 VDU 的 VDU 信息以进行更新。指定 vdu_params 对于 OpenStack VIM 是必需的,对于 Kubernetes VIM 不是必需的。
> vdu_id
1
要更新的目标 VDU 的 VDU 名称。
> old_vnfc_param
0..1
旧的 VNFC 连接信息。在 CoordinateVNF 操作中,用于应用程序配置到 VNFC 的 ssh 连接是必需的。
>> cp-name
1
要更新的旧 VNFC 的连接点名称。
>> username
1
要更新的旧 VNFC 的用户名。
>> password
1
要更新的旧 VNFC 的密码。
> new_vnfc_param
0..1
新的 VNFC 连接信息。在 CoordinateVNF 操作中,用于应用程序配置到 VNFC 的 ssh 连接是必需的。
>> cp-name
1
要更新的新 VNFC 的连接点名称。
>> username
1
要更新的新 VNFC 的用户名。
>> password
1
要更新的新 VNFC 的密码。
external_lb_param
0..1
需要进行配置更改的负载均衡器信息。仅在 OpenStack VIM 的蓝绿部署过程中需要。
> ip_address
1
负载均衡器服务器的 IP 地址。
> username
1
负载均衡器服务器的用户名。
> password
1
负载均衡器服务器的密码。
lcm-kubernetes-def-files
0..N
Kubernetes 定义文件(例如 configMap 或 secret)的文件路径。仅对于 Kubernetes VIM 是必需的。
以下是请求体的示例
{ "vnfdId": "093c38b5-a731-4593-a578-d12e42596b3e", "additionalParams": { "upgrade_type": "Blue-Green", "lcm-operation-coordinate-old-vnf": "./coordinate_old_vnf.py", "lcm-operation-coordinate-old-vnf-class": "CoordinateOldVnf", "lcm-operation-coordinate-new-vnf": "./coordinate_new_vnf.py", "lcm-operation-coordinate-new-vnf-class": "CoordinateNewVnf", "vdu_params": { "vdu_id": "VDU1", "old_vnfc_param": { "cp_name": "CP1", "username": "ubuntu", "password": "ubuntu" }, "new_vnfc_param": { "cp_name": "CP1", "username": "ubuntu", "password": "ubuntu" } }, "external_lb_param": { "ip_address": "10.10.0.50", "username": "ubuntu", "password": "ubuntu" }, "lcm-kubernetes-def-files": [ "Files/kubernetes/deployment.yaml" ] } }
响应:响应代码
描述
202 Accepted
请求已被接受处理,但处理尚未完成。
404 Not Found
找不到请求的资源。
409 Conflict
此操作与此资源的另一个操作冲突。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Hirofumi Noguchi<hirofumi.noguchi.rs@hco.ntt.co.jp>
Masaki Ueno<masaki.ueno.up@hco.ntt.co.jp>
- 其他贡献者
Yusuke Niimi<niimi.yusuke@fujitsu.com>
Yoshiyuki Katada<katada.yoshiyuk@fujitsu.com>
Ayumu Ueha<ueha.ayumu@fujitsu.com>
工作项¶
支持 ChangeCurrentVNFPackage API。
实现 ChangeCurrentVNFPackage 的前导和后导操作
VNF 软件修改执行以下操作
OpenStack VIM 的蓝绿部署流程。
OpenStack VIM 的滚动更新流程。
Kubernetes VIM 的蓝绿部署流程。
Kubernetes VIM 的滚动更新流程。
实现 VnfLcmDriver 调用请求参数中指定的 CoordinateVNF 脚本的机制。
提供示例 CoordinateVNF 脚本以模拟 CoordinateVNF。
依赖项¶
无
测试¶
将添加单元和功能测试,以涵盖规范所需的用例。
文档影响¶
将添加完整的用户指南,以从 VNF LCM API 的角度解释升级 VNF 包。