ddf28104a3
We've been using old cirros-0.4.0 for long time, and don't need to fix the version of cirros to 0.4.0. This patch is update to the latest 0.5.2. Most of the changes in this patch is replacing `image`, `hash` and `version` in TOSCA definition files. The rest of them are: * Replace images. First one is only an actual image, and rest of them are empty text files which is a trick for reducing total size in tacker repo. So, text files are not replaced, but renamed simply. * tacker/tests/etc/samples/etsi/nfv/common/Files/images/cirros-0.5.2-x86_64-disk.img * samples/vnf_packages/Files/images/cirros-0.5.2-x86_64-disk.img * tacker/tests/etc/samples/etsi/nfv/test_csar_utils_data/sample_vnfpkg_no_meta_single_vnfd/Files/images/cirros-0.5.2-x86_64-disk.img * tacker/tests/etc/samples/sample_vnf_package_csar_in_meta_and_manifest/Files/images/cirros-0.5.2-x86_64-disk.img * Update functional tests verifying images. A refactor of defining package size is included. * Update devstack script, and helper scripts under `contrib` dir. * Update API references and documents describing usage of the image. Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com> Implements: blueprint update-cirros-052 Change-Id: I081b791dc986ab10f4845784b3e19dbb626e3cac
69 KiB
69 KiB
VNF Management
This document describes how to manage VNF with CLI in Tacker.
Prerequisites
The following packages should be installed:
- tacker
- python-tackerclient
A default VIM should be registered according to ./cli-legacy-vim
.
CLI reference for VNF Management
1. Create VNF
Create tosca-vnfd-scale.yaml
file:
Create a VNFD:
$ openstack vnf descriptor create --vnfd-file \
tosca-vnfd-scale.yaml <VNFD: tosca-vnfd-scale>
Result:
+-----------------+---------------------------------------------------------------------------+
| Field | Value |
+-----------------+---------------------------------------------------------------------------+
| attributes | { |
| | "vnfd": { |
| | "description": "sample-tosca-vnfd-scaling", |
| | "metadata": { |
| | "template_name": "sample-tosca-vnfd-scaling" |
| | }, |
| | "topology_template": { |
| | "node_templates": { |
| | "CP1": { |
| | "properties": { |
| | "anti_spoofing_protection": false, |
| | "management": true, |
| | "order": 0 |
| | }, |
| | "requirements": [ |
| | { |
| | "virtualLink": { |
| | "node": "VL1" |
| | } |
| | }, |
| | { |
| | "virtualBinding": { |
| | "node": "VDU1" |
| | } |
| | } |
| | ], |
| | "type": "tosca.nodes.nfv.CP.Tacker" |
| | }, |
| | "CP2": { |
| | "properties": { |
| | "anti_spoofing_protection": false, |
| | "management": true, |
| | "order": 0 |
| | }, |
| | "requirements": [ |
| | { |
| | "virtualLink": { |
| | "node": "VL1" |
| | } |
| | }, |
| | { |
| | "virtualBinding": { |
| | "node": "VDU2" |
| | } |
| | } |
| | ], |
| | "type": "tosca.nodes.nfv.CP.Tacker" |
| | }, |
| | "VDU1": { |
| | "properties": { |
| | "availability_zone": "nova", |
| | "flavor": "m1.tiny", |
| | "image": "cirros-0.5.2-x86_64-disk", |
| | "mgmt_driver": "noop" |
| | }, |
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
| | }, |
| | "VDU2": { |
| | "properties": { |
| | "availability_zone": "nova", |
| | "flavor": "m1.tiny", |
| | "image": "cirros-0.5.2-x86_64-disk", |
| | "mgmt_driver": "noop" |
| | }, |
| | "type": "tosca.nodes.nfv.VDU.Tacker" |
| | }, |
| | "VL1": { |
| | "properties": { |
| | "network_name": "net_mgmt", |
| | "vendor": "Tacker" |
| | }, |
| | "type": "tosca.nodes.nfv.VL" |
| | } |
| | }, |
| | "policies": [ |
| | { |
| | "SP1": { |
| | "properties": { |
| | "cooldown": 120, |
| | "default_instances": 2, |
| | "increment": 1, |
| | "max_instances": 3, |
| | "min_instances": 1 |
| | }, |
| | "targets": [ |
| | "VDU1", |
| | "VDU2" |
| | ], |
| | "type": "tosca.policies.tacker.Scaling" |
| | } |
| | } |
| | ] |
| | }, |
| | "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" |
| | } |
| | } |
| created_at | 2020-08-12 04:20:08.908891 |
| description | sample-tosca-vnfd-scaling |
| id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
| name | tosca-vnfd-scale |
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
| service_types | ['vnfd'] |
| template_source | onboarded |
| updated_at | None |
+-----------------+---------------------------------------------------------------------------+
Create the VNF:
$ openstack vnf create --vnfd-name <VNFD_NAME: tosca-vnfd-scale> \
<NAME: vnf-scale>
Result:
+-----------------+---------------------------------------------------+
| Field | Value |
+-----------------+---------------------------------------------------+
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
| | description: Scaling template |
| | resources: |
| | CP1: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | CP2: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | VDU1: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP1 |
| | VDU2: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP2 |
| | VL1: |
| | type: OS::Neutron::Net |
| | outputs: |
| | mgmt_ip-VDU1: |
| | value: |
| | get_attr: |
| | - CP1 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | mgmt_ip-VDU2: |
| | value: |
| | get_attr: |
| | - CP2 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | , heat_template=heat_template_version: 2013-05-23 |
| | description: 'sample-tosca-vnfd-scaling |
| | |
| | ' |
| | parameters: {} |
| | resources: |
| | SP1_scale_out: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: 1 |
| | cooldown: 120 |
| | SP1_group: |
| | type: OS::Heat::AutoScalingGroup |
| | properties: |
| | min_size: 1 |
| | max_size: 3 |
| | desired_capacity: 2 |
| | cooldown: 120 |
| | resource: |
| | type: SP1_res.yaml |
| | SP1_scale_in: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: -1 |
| | cooldown: 120 |
| | outputs: {} |
| | , scaling_group_names=b'{"SP1": "SP1_group"}' |
| created_at | 2020-08-12 04:22:35.006543 |
| description | sample-tosca-vnfd-scaling |
| error_reason | None |
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
| mgmt_ip_address | None |
| name | vnf-scale |
| placement_attr | vim_name=openstack-nfv-vim |
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
| status | PENDING_CREATE |
| updated_at | None |
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+-----------------+---------------------------------------------------+
Help:
$ openstack vnf create --help
usage: openstack vnf create [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--noindent] [--prefix PREFIX]
[--max-width <integer>] [--fit-width]
[--print-empty] [--tenant-id TENANT_ID]
(--vnfd-id VNFD_ID | --vnfd-name VNFD_NAME | --vnfd-template VNFD_TEMPLATE)
[--vim-id VIM_ID | --vim-name VIM_NAME]
[--vim-region-name VIM_REGION_NAME]
[--config-file CONFIG_FILE]
[--param-file PARAM_FILE]
[--description DESCRIPTION]
NAME
Create a new VNF
positional arguments:
NAME Set a name for the VNF
optional arguments:
-h, --help show this help message and exit
--tenant-id TENANT_ID
The owner tenant ID or project ID
--vnfd-id VNFD_ID VNFD ID to use as template to create VNF
--vnfd-name VNFD_NAME
VNFD Name to use as template to create VNF
--vnfd-template VNFD_TEMPLATE
VNFD file to create VNF
--vim-id VIM_ID VIM ID to deploy VNF on specified VIM
--vim-name VIM_NAME VIM name to deploy VNF on specified VIM
--vim-region-name VIM_REGION_NAME
VIM Region to deploy VNF on specified VIM
--config-file CONFIG_FILE
YAML file with VNF configuration
--param-file PARAM_FILE
Specify parameter yaml file
--description DESCRIPTION
Set description for the VNF
2. List VNFs
$ openstack vnf list
Result (CREATING):
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
| ID | Name | Mgmt Ip Address | Status | VIM ID | VNFD ID |
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
| 9b312a7c-15de-4230-85fb-27da7d37978b | vnf-scale | None | PENDING_CREATE | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+--------------------------------------+-----------+-----------------+----------------+--------------------------------------+--------------------------------------+
Result (CREATED):
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
| ID | Name | Mgmt Ip Address | Status | VIM ID | VNFD ID |
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
| 9b312a7c-15de-4230-85fb-27da7d37978b | vnf-scale | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} | ACTIVE | aacb3c7f-d532-44d9-b8ed-49e2b30114aa | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+--------------------------------------+-----------+-----------------------------------------------------------------------------------------------+--------+--------------------------------------+--------------------------------------+
Help:
$ openstack vnf list --help
usage: openstack vnf list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
[--quote {all,minimal,none,nonnumeric}] [--noindent]
[--max-width <integer>] [--fit-width]
[--print-empty] [--sort-column SORT_COLUMN]
[--template-source TEMPLATE_SOURCE]
[--vim-id VIM_ID | --vim-name VIM_NAME]
[--vnfd-id VNFD_ID | --vnfd-name VNFD_NAME]
[--tenant-id TENANT_ID] [--long]
List VNF(s) that belong to a given tenant.
optional arguments:
-h, --help show this help message and exit
--template-source TEMPLATE_SOURCE
List VNF with specified template source. Available
options are 'onboarded' (default), 'inline' or 'all'
--vim-id VIM_ID List VNF(s) that belong to a given VIM ID
--vim-name VIM_NAME List VNF(s) that belong to a given VIM Name
--vnfd-id VNFD_ID List VNF(s) that belong to a given VNFD ID
--vnfd-name VNFD_NAME
List VNF(s) that belong to a given VNFD Name
--tenant-id TENANT_ID
The owner tenant ID or project ID
--long List additional fields in output
3. Show VNF
$ openstack vnf show <VNF: vnf-scale>
Result:
+-----------------+-----------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------+-----------------------------------------------------------------------------------------------+
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
| | description: Scaling template |
| | resources: |
| | CP1: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | CP2: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | VDU1: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP1 |
| | VDU2: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP2 |
| | VL1: |
| | type: OS::Neutron::Net |
| | outputs: |
| | mgmt_ip-VDU1: |
| | value: |
| | get_attr: |
| | - CP1 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | mgmt_ip-VDU2: |
| | value: |
| | get_attr: |
| | - CP2 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | , heat_template=heat_template_version: 2013-05-23 |
| | description: 'sample-tosca-vnfd-scaling |
| | |
| | ' |
| | parameters: {} |
| | resources: |
| | SP1_scale_out: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: 1 |
| | cooldown: 120 |
| | SP1_group: |
| | type: OS::Heat::AutoScalingGroup |
| | properties: |
| | min_size: 1 |
| | max_size: 3 |
| | desired_capacity: 2 |
| | cooldown: 120 |
| | resource: |
| | type: SP1_res.yaml |
| | SP1_scale_in: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: -1 |
| | cooldown: 120 |
| | outputs: {} |
| | , scaling_group_names={"SP1": "SP1_group"} |
| created_at | 2020-08-12 04:22:35 |
| description | sample-tosca-vnfd-scaling |
| error_reason | None |
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
| name | vnf-scale |
| placement_attr | vim_name=openstack-nfv-vim |
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
| status | ACTIVE |
| updated_at | None |
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+-----------------+-----------------------------------------------------------------------------------------------+
Help:
$ openstack vnf show --help
usage: openstack vnf show [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
[--noindent] [--prefix PREFIX]
[--max-width <integer>] [--fit-width]
[--print-empty]
<VNF>
Display VNF details
positional arguments:
<VNF> VNF to display (name or ID)
optional arguments:
-h, --help show this help message and exit
4. List VNF resource
$ openstack vnf resource list <VNF: vnf-scale>
Result:
+--------------------------------------+---------------+----------------------------+
| ID | Name | Type |
+--------------------------------------+---------------+----------------------------+
| 4abedc36da294bb0a0fa8aaa7f4c01f4 | SP1_scale_out | OS::Heat::ScalingPolicy |
| 0060aff7150d43c5ace293e3cac4552a | SP1_scale_in | OS::Heat::ScalingPolicy |
| 141c0279-1dfb-42a3-b947-4caa3765b27f | SP1_group | OS::Heat::AutoScalingGroup |
| 9f65c3d6-e5ce-4611-8589-82fab1a32d6e | qf4qc4l6qk7o | SP1_res.yaml |
| 9a01d98e-9c01-4e55-ba86-571b61e4ea74 | edilzqp2htvv | SP1_res.yaml |
| 0abc3f38-647e-4b47-8376-06d2e56c4217 | VDU2 | OS::Nova::Server |
| a6374222-ecbc-4eee-96e6-9fe601807c9d | CP2 | OS::Neutron::Port |
| 8d2fc2d9-33ee-440d-9e02-db6083cd5cb6 | VL1 | OS::Neutron::Net |
| 84c78850-8a06-41ab-98a7-371224125beb | VDU1 | OS::Nova::Server |
| 5462f8c1-3292-44af-8661-39e1a7474859 | CP1 | OS::Neutron::Port |
+--------------------------------------+---------------+----------------------------+
Help:
$ openstack vnf resource list --help
usage: openstack vnf resource list [-h] [-f {csv,json,table,value,yaml}]
[-c COLUMN]
[--quote {all,minimal,none,nonnumeric}]
[--noindent] [--max-width <integer>]
[--fit-width] [--print-empty]
[--sort-column SORT_COLUMN]
<VNF>
List resources of a VNF like VDU, CP, etc.
positional arguments:
<VNF> VNF to display (name or ID)
optional arguments:
-h, --help show this help message and exit
5. Update VNF
Create vnf-config.yaml
:
vdus:
VDU1:
config:
foo: 'bar'
Update VNF with the config file vnf-config.yaml
:
$ openstack vnf set --config-file vnf-config.yaml <VNF: vnf-scale>
Result (Updating):
+-----------------+-----------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------+-----------------------------------------------------------------------------------------------+
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
| | description: Scaling template |
| | resources: |
| | CP1: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | CP2: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | VDU1: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP1 |
| | VDU2: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP2 |
| | VL1: |
| | type: OS::Neutron::Net |
| | outputs: |
| | mgmt_ip-VDU1: |
| | value: |
| | get_attr: |
| | - CP1 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | mgmt_ip-VDU2: |
| | value: |
| | get_attr: |
| | - CP2 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | , config=vdus: |
| | VDU1: |
| | config: |
| | foo: bar |
| | , heat_template=heat_template_version: 2013-05-23 |
| | description: 'sample-tosca-vnfd-scaling |
| | |
| | ' |
| | parameters: {} |
| | resources: |
| | SP1_scale_out: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: 1 |
| | cooldown: 120 |
| | SP1_group: |
| | type: OS::Heat::AutoScalingGroup |
| | properties: |
| | min_size: 1 |
| | max_size: 3 |
| | desired_capacity: 2 |
| | cooldown: 120 |
| | resource: |
| | type: SP1_res.yaml |
| | SP1_scale_in: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: -1 |
| | cooldown: 120 |
| | outputs: {} |
| | , scaling_group_names={"SP1": "SP1_group"} |
| created_at | 2020-08-12 04:22:35 |
| description | sample-tosca-vnfd-scaling |
| error_reason | None |
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
| name | vnf-scale |
| placement_attr | vim_name=openstack-nfv-vim |
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
| status | PENDING_UPDATE |
| updated_at | None |
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+-----------------+-----------------------------------------------------------------------------------------------+
Result (Updated):
+-----------------+-----------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------+-----------------------------------------------------------------------------------------------+
| attributes | SP1_res.yaml=heat_template_version: 2013-05-23 |
| | description: Scaling template |
| | resources: |
| | CP1: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | CP2: |
| | type: OS::Neutron::Port |
| | properties: |
| | port_security_enabled: false |
| | network: net_mgmt |
| | VDU1: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP1 |
| | VDU2: |
| | type: OS::Nova::Server |
| | properties: |
| | flavor: m1.tiny |
| | user_data_format: SOFTWARE_CONFIG |
| | availability_zone: nova |
| | image: cirros-0.5.2-x86_64-disk |
| | config_drive: false |
| | networks: |
| | - port: |
| | get_resource: CP2 |
| | VL1: |
| | type: OS::Neutron::Net |
| | outputs: |
| | mgmt_ip-VDU1: |
| | value: |
| | get_attr: |
| | - CP1 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | mgmt_ip-VDU2: |
| | value: |
| | get_attr: |
| | - CP2 |
| | - fixed_ips |
| | - 0 |
| | - ip_address |
| | , config=vdus: |
| | VDU1: |
| | config: |
| | foo: bar |
| | , heat_template=heat_template_version: 2013-05-23 |
| | description: 'sample-tosca-vnfd-scaling |
| | |
| | ' |
| | parameters: {} |
| | resources: |
| | SP1_scale_out: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: 1 |
| | cooldown: 120 |
| | SP1_group: |
| | type: OS::Heat::AutoScalingGroup |
| | properties: |
| | min_size: 1 |
| | max_size: 3 |
| | desired_capacity: 2 |
| | cooldown: 120 |
| | resource: |
| | type: SP1_res.yaml |
| | SP1_scale_in: |
| | type: OS::Heat::ScalingPolicy |
| | properties: |
| | auto_scaling_group_id: |
| | get_resource: SP1_group |
| | adjustment_type: change_in_capacity |
| | scaling_adjustment: -1 |
| | cooldown: 120 |
| | outputs: {} |
| | , scaling_group_names={"SP1": "SP1_group"} |
| created_at | 2020-08-12 04:22:35 |
| description | sample-tosca-vnfd-scaling |
| error_reason | None |
| id | 9b312a7c-15de-4230-85fb-27da7d37978b |
| instance_id | 0e00ca75-23b7-4ff8-a90f-83c55d756d4f |
| mgmt_ip_address | {"VDU2": ["192.168.120.250", "192.168.120.41"], "VDU1": ["192.168.120.69", "192.168.120.92"]} |
| name | vnf-scale |
| placement_attr | vim_name=openstack-nfv-vim |
| project_id | e77397d2a02c4af1b7d79cef2a406396 |
| status | ACTIVE |
| updated_at | 2020-08-12 05:06:13 |
| vim_id | aacb3c7f-d532-44d9-b8ed-49e2b30114aa |
| vnfd_id | 1001f4e6-2e62-4950-be7a-541963e7e575 |
+-----------------+-----------------------------------------------------------------------------------------------+
Help:
$ openstack vnf set --help
usage: openstack vnf set [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
[--noindent] [--prefix PREFIX]
[--max-width <integer>] [--fit-width] [--print-empty]
(--config-file CONFIG_FILE | --config CONFIG | --param-file PARAM_FILE)
<VNF>
Update a given VNF.
positional arguments:
<VNF> VNF to update (name or ID)
optional arguments:
-h, --help show this help message and exit
--config-file CONFIG_FILE
YAML file with VNF configuration
--config CONFIG YAML data with VNF configuration
--param-file PARAM_FILE
YAML file with VNF parameter
Note
When the update VNF operation executed, Tacker ask Heat to update the stack and the change is reflected immediately, and the VMs may reboot.
6. Scale VNF
Scale out the VNF:
$ openstack vnf scale --scaling-policy-name <SCALING_POLICY_NAME: SP1> \
--scaling-type out <VNF: vnf-scale>
Check the VMs scaled out:
$ openstack server list
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
| dfb04024-666c-4b82-94eb-12766851cfb7 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU2-ljontrce3bd7 | ACTIVE | net_mgmt=192.168.120.8 | cirros-0.5.2-x86_64-disk | m1.tiny |
| e48999e8-5f65-43e4-b8a5-e81e358e2e21 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU1-3dcglaxrwyzl | ACTIVE | net_mgmt=192.168.120.82 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 0abc3f38-647e-4b47-8376-06d2e56c4217 | vn-6okzhe-edilzqp2htvv-ibfssgztffjf-VDU2-43gjj46b2nrr | ACTIVE | net_mgmt=192.168.120.41 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 43840dde-1ec3-4da6-aeab-afca96299a9f | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU2-zd7nq3smgjdr | ACTIVE | net_mgmt=192.168.120.250 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 84c78850-8a06-41ab-98a7-371224125beb | vn-6okzhe-edilzqp2htvv-ibfssgztffjf-VDU1-qvv2vv37f65t | ACTIVE | net_mgmt=192.168.120.92 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 9318b9fe-d655-4088-9910-b5f7481ed059 | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU1-omaexvftqjee | ACTIVE | net_mgmt=192.168.120.69 | cirros-0.5.2-x86_64-disk | m1.tiny |
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
Scale in the VNF:
$ openstack vnf scale --scaling-policy-name <SCALING_POLICY_NAME: SP1> \
--scaling-type in <VNF: vnf-scale>
Check the VMs scaled in:
$ openstack server list
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
| dfb04024-666c-4b82-94eb-12766851cfb7 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU2-ljontrce3bd7 | ACTIVE | net_mgmt=192.168.120.8 | cirros-0.5.2-x86_64-disk | m1.tiny |
| e48999e8-5f65-43e4-b8a5-e81e358e2e21 | vn-6okzhe-k6n2umsyoizd-ex2uwxma2tlt-VDU1-3dcglaxrwyzl | ACTIVE | net_mgmt=192.168.120.82 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 43840dde-1ec3-4da6-aeab-afca96299a9f | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU2-zd7nq3smgjdr | ACTIVE | net_mgmt=192.168.120.250 | cirros-0.5.2-x86_64-disk | m1.tiny |
| 9318b9fe-d655-4088-9910-b5f7481ed059 | vn-6okzhe-qf4qc4l6qk7o-tukln5mwcokq-VDU1-omaexvftqjee | ACTIVE | net_mgmt=192.168.120.69 | cirros-0.5.2-x86_64-disk | m1.tiny |
+--------------------------------------+-------------------------------------------------------+--------+--------------------------+--------------------------+---------+
Help:
$ openstack vnf scale --help
usage: openstack vnf scale [-h] [--scaling-policy-name SCALING_POLICY_NAME]
[--scaling-type SCALING_TYPE]
<VNF>
Scale a VNF.
positional arguments:
<VNF> VNF to scale (name or ID)
optional arguments:
-h, --help show this help message and exit
--scaling-policy-name SCALING_POLICY_NAME
VNF policy name used to scale
--scaling-type SCALING_TYPE
VNF scaling type, it could be either "out" or "in"
7. Delete VNFs
$ openstack vnf delete <VNF: vnf-scale>
Result:
All specified vnf(s) deleted successfully
Help:
$ openstack vnf delete --help
usage: openstack vnf delete [-h] [--force] <VNF> [<VNF> ...]
Delete VNF(s).
positional arguments:
<VNF> VNF(s) to delete (name or ID)
optional arguments:
-h, --help show this help message and exit
--force Force delete VNF instance