Add instructions to test workflows
story: 2007441 Task: #39114 Change-Id: I91636f9cf6a4568badc7314bed9101da62924c2b Signed-off-by: Tomi Juvonen <tomi.juvonen@nokia.com>
This commit is contained in:
parent
d06820b452
commit
ef8bbb388b
|
@ -14,7 +14,7 @@ Files:
|
||||||
|
|
||||||
## Kubernetes workflow (k8s.py)
|
## Kubernetes workflow (k8s.py)
|
||||||
|
|
||||||
First version of workflow towards Kubeernetes use cases.
|
First version of workflow towards Kubernetes use cases.
|
||||||
|
|
||||||
### Requirements for testing
|
### Requirements for testing
|
||||||
|
|
||||||
|
@ -43,13 +43,13 @@ https://phoenixnap.com/kb/how-to-install-kubernetes-on-centos
|
||||||
Note! There is no conflict with Kubernetes as limiting to only Fenix needed
|
Note! There is no conflict with Kubernetes as limiting to only Fenix needed
|
||||||
services.
|
services.
|
||||||
|
|
||||||
Clone devstack. Tested to work with latest stable release Train.
|
Clone DevStack. Tested to work with latest stable release Train.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/openstack/devstack -b stable/train
|
git clone https://github.com/openstack/devstack -b stable/train
|
||||||
```
|
```
|
||||||
|
|
||||||
Make local.conf. 'HOST_IP' should bemaster node IP.
|
Make local.conf. 'HOST_IP' should be the master node IP.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd devstack vi local.conf
|
cd devstack vi local.conf
|
||||||
|
@ -97,7 +97,7 @@ should be running in master node. Here is short description:
|
||||||
|
|
||||||
#### Term1: Fenix-engine logging
|
#### Term1: Fenix-engine logging
|
||||||
|
|
||||||
If any changes to Fenix make them under '/opt/stack/fenix'; restart fenix and
|
If any changes to Fenix make them under '/opt/stack/fenix'; restart Fenix and
|
||||||
see logs
|
see logs
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -110,7 +110,7 @@ API logs can also be seen
|
||||||
sudo journalctl -f --unit devstack@fenix-api
|
sudo journalctl -f --unit devstack@fenix-api
|
||||||
```
|
```
|
||||||
|
|
||||||
Debugging and other configuration changes to conf files under '/etc/fenix'
|
Debugging and other configuration changes to '.conf' files under '/etc/fenix'
|
||||||
|
|
||||||
#### Term2: Infrastructure admin window
|
#### Term2: Infrastructure admin window
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ DATE=`date -d "+15 sec" "+%Y-%m-%d %H:%M:%S"`;MSESSION=`curl -g -i -X POST http:
|
||||||
|
|
||||||
After maintenance workflow is 'MAINTENANCE_DONE', you should first press
|
After maintenance workflow is 'MAINTENANCE_DONE', you should first press
|
||||||
"ctrl + c" in VNFM window (Term3), so it removes constraints from Fenix and
|
"ctrl + c" in VNFM window (Term3), so it removes constraints from Fenix and
|
||||||
dies. Then you can remove the finished session from fenix
|
dies. Then you can remove the finished session from Fenix
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -g -i -X DELETE http://$HOST:$PORT/v1/maintenance/$MSESSION -H "Accept: application/json" -H "Content-Type: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "X-User-Id: $USER_ID"
|
curl -g -i -X DELETE http://$HOST:$PORT/v1/maintenance/$MSESSION -H "Accept: application/json" -H "Content-Type: application/json" -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "X-User-Id: $USER_ID"
|
||||||
|
@ -169,7 +169,7 @@ Keystone)
|
||||||
kubectl create namespace demo
|
kubectl create namespace demo
|
||||||
```
|
```
|
||||||
|
|
||||||
Start VNFM (when done in this order, we make sure demo-ha has nodes for antiaffinity):
|
Start VNFM (when done in this order, we make sure demo-ha has nodes for anti-affinity):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl apply -f demo-ha.yaml --namespace=demo;sleep 1;kubectl apply -f demo-nonha.yaml --namespace=demo
|
kubectl apply -f demo-ha.yaml --namespace=demo;sleep 1;kubectl apply -f demo-nonha.yaml --namespace=demo
|
||||||
|
@ -219,4 +219,138 @@ If not matching, delete and create again as easiest solution
|
||||||
kubectl delete replicaset.apps demo-ha demo-nonha --namespace=demo;sleep 15;kubectl apply -f demo-ha.yaml --namespace=demo;sleep 1;kubectl apply -f demo-nonha.yaml --namespace=demo
|
kubectl delete replicaset.apps demo-ha demo-nonha --namespace=demo;sleep 15;kubectl apply -f demo-ha.yaml --namespace=demo;sleep 1;kubectl apply -f demo-nonha.yaml --namespace=demo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## OpenStack workflows (default.py and nvf.py)
|
||||||
|
|
||||||
|
OpenStack workflows can be tested by using OPNFV Doctor project for testing.
|
||||||
|
Workflows:
|
||||||
|
|
||||||
|
- default.py is the first example workflow with VNFM interaction.
|
||||||
|
- nvf.py is enhanced Telco workflow that utilizes the ETSI FEAT03 constraints.
|
||||||
|
This workflow can optimize parallel nodes and migrations according to
|
||||||
|
ETSI constraints.
|
||||||
|
|
||||||
|
### Requirements for testing
|
||||||
|
|
||||||
|
- Multinode DevStack environment with 1 controller and at least 3 computes.
|
||||||
|
- Each compute needs to have at least 2 VCPUs
|
||||||
|
- DevStack local.conf for controller node need Fenix enabled. Also Heat, AODH and
|
||||||
|
Ceilometer are needed. VCPUs needs one to one to mapping to CPU.
|
||||||
|
|
||||||
|
Example controller baremetal local.conf:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[[local|localrc]]
|
||||||
|
GIT_BASE=https://git.openstack.org
|
||||||
|
HOST_IP=192.168.173.3
|
||||||
|
ADMIN_PASSWORD=admin
|
||||||
|
DATABASE_PASSWORD=admin
|
||||||
|
RABBIT_PASSWORD=admin
|
||||||
|
SERVICE_PASSWORD=admin
|
||||||
|
LOGFILE=/opt/stack/stack.sh.log
|
||||||
|
|
||||||
|
#USE_PYTHON3=True
|
||||||
|
#PYTHON3_VERSION=3.6
|
||||||
|
|
||||||
|
## Neutron options
|
||||||
|
Q_USE_SECGROUP=True
|
||||||
|
FLOATING_RANGE="192.168.37.0/24"
|
||||||
|
#FLOATING_RANGE="192.168.38.0/24"
|
||||||
|
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22"
|
||||||
|
Q_FLOATING_ALLOCATION_POOL=start=192.168.37.200,end=192.168.37.220
|
||||||
|
#Q_FLOATING_ALLOCATION_POOL=start=192.168.38.200,end=192.168.38.220
|
||||||
|
PUBLIC_NETWORK_GATEWAY="192.168.37.199"
|
||||||
|
#This is wrong, but if right devstack deletes the host ip
|
||||||
|
PUBLIC_INTERFACE=enp3s0f1
|
||||||
|
|
||||||
|
# Open vSwitch provider networking configuration
|
||||||
|
Q_USE_PROVIDERNET_FOR_PUBLIC=True
|
||||||
|
OVS_PHYSICAL_BRIDGE=br-ex
|
||||||
|
PUBLIC_BRIDGE=br-ex
|
||||||
|
OVS_BRIDGE_MAPPINGS=public:br-ex
|
||||||
|
MULTI_HOST=1
|
||||||
|
|
||||||
|
CEILOMETER_EVENT_ALARM=True
|
||||||
|
|
||||||
|
disable_service ceilometer-alarm-notifier,ceilometer-alarm-evaluator,ceilometer-acompute
|
||||||
|
enable_service aodh-evaluator,aodh-notifier,aodh-api
|
||||||
|
|
||||||
|
enable_plugin heat https://git.openstack.org/openstack/heat stable/train
|
||||||
|
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer stable/train
|
||||||
|
enable_plugin aodh https://git.openstack.org/openstack/aodh stable/train
|
||||||
|
enable_plugin gnocchi https://github.com/openstack/gnocchi
|
||||||
|
enable_plugin fenix https://opendev.org/x/fenix master
|
||||||
|
enable_service fenix-engine
|
||||||
|
enable_service fenix-api
|
||||||
|
|
||||||
|
disable_service n-cpu
|
||||||
|
|
||||||
|
[[post-config|$NOVA_CONF]]
|
||||||
|
[DEFAULT]
|
||||||
|
cpu_allocation_ratio = 1.0
|
||||||
|
allow_resize_to_same_host = False
|
||||||
|
```
|
||||||
|
|
||||||
|
### Workflow default.py
|
||||||
|
|
||||||
|
On controller node clone Doctor to be able to test. Doctor currently requires
|
||||||
|
Python 3.6:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://gerrit.opnfv.org/gerrit/doctor
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export INSTALLER_TYPE=devstack
|
||||||
|
export ADMIN_TOOL_TYPE=fenix
|
||||||
|
export TEST_CASE=maintenance
|
||||||
|
```
|
||||||
|
Use DevStack admin as user.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
. ~/devstack/operc admin admin
|
||||||
|
```
|
||||||
|
|
||||||
|
Goto Doctor and start testing
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd doctor
|
||||||
|
sudo -E tox -e py36
|
||||||
|
```
|
||||||
|
|
||||||
|
Use journalctl to track the progress in Fenix
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo journalctl -f --unit devstack@fenix-engine
|
||||||
|
```
|
||||||
|
|
||||||
|
If any changes to Fenix make them under '/opt/stack/fenix' and restart Fenix
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo systemctl restart devstack@fenix*
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also make changed to Doctor before running Doctor test
|
||||||
|
|
||||||
|
### Workflow vnf.py
|
||||||
|
|
||||||
|
This workflow differs from above as it expects ETSI FEAT03 constraints.
|
||||||
|
In Doctor testing it means we also need to use different application manager (VNFM)
|
||||||
|
|
||||||
|
Where default.py worklow used the sample.py application manager vnf.py
|
||||||
|
workflow uses vnfm.py workflow (doctor/doctor_tests/app_manager/vnfm.py)
|
||||||
|
|
||||||
|
Only change to testing is that you should export variable to use different
|
||||||
|
application manager.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export APP_MANAGER_TYPE=vnfm
|
||||||
|
```
|
||||||
|
|
||||||
|
If again want to use default.py, you can export the default value for
|
||||||
|
application manager
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export APP_MANAGER_TYPE=sample
|
||||||
|
```
|
||||||
|
Doctor modifies the message where it calls maintenance accordingly to use
|
||||||
|
either 'default' or 'nfv' as workflow in Fenix side
|
||||||
|
|
Loading…
Reference in New Issue