Testing of changing OpenStack configurations parameters

Registered by Ksenia Svechnikova

Test case 1
Switch off debug mode of keystone on all nodes before deployment
================================================================
"1. Prepare cluster with 3 controllers, 2 computes
Expected Result:
Pass
2. Upload keystone config that switched off debug

> fuel configuration --env 1 --cluster 1 --upload file.yaml
> fuel configuration --env 1 --cluster 1 --execute

    ---
    configuration:
      keystone_config:
        DEFAULT/debug:
          value: False
Expected Result:
Pass
3. Deploy cluster
Expected Result:
Pass
4. Verify no debug keystone logs
Expected Result:
Pass
5. Run OSTF
Expected Result:
Pass"

Test case 2
Reconfigure nova CPU overcommit ratio
================================================================
"1. Deploy cluster with 3 controllers, 2 computes
Expected Result:
Deployment finished successfully
2. Get uptime of nova-scheduler from controllers:
> `ps -eo pid,comm,etime | grep nova-scheduler`
Expected Result:
-
3. Apply new cpu overcommit to the all controllers:
> `DEFAULT/cpu_allocation_ratio: 1.0`

use [yaml](https://mirantis.testrail.com/index.php?/attachments/get/59)
Expected Result:
Applying finished without errors
4. Verify option is applied to all controllers compute
Expected Result:
First compute nova.conf:
> `cpu_allocation_ratio=1.0`

Second compute nova.conf:
> `cpu_allocation_ratio=16.0`
5. Run OSTF
Expected Result:
OSTF passed without errors
6. Verify nova-schedule services uptime
Expected Result:
First nova-compute:
> `uptime < stored uptime`

Second nova-compute:
> `uptime > stored uptime`
7. Get uptime of nova-schedule from controllers:
> `ps -eo pid,comm,etime | grep nova-compute`
Expected Result:
-
8. Boot `SLAVE_NODE_CPU*2` instances
Expected Result:
Instances are booted successfuly
9. Boot instance
Expected Result:
Instance boot failed
10. Remove failed instance
Expected Result:
Instance is removed successfuly
11. Apply new cpu overcommit to all controllers:
> `DEFAULT/cpu_allocation_ratio: 16.0`
Expected Result:
Applying finished
12. Verify option is applied to all controllers
Expected Result:
First compute nova.conf:
> `cpu_allocation_ratio=16.0`

Second compute nova.conf:
> `cpu_allocation_ratio=16.0`
13. Boot instance
Expected Result:
Instance is booted successfully
14. Run OSTF
Expected Result:
OSTF passed without errors"

Test case 3
================================================================
Reconfigure keystone to use LDAP
"1. Deploy cluster with 3 controllers, 2 computes
Expected Result:
Pass
2. Get uptime of keystone from controllers
Expected Result:
Pass
3. Apply LDAP settings to keystone on controllers, verify settings.
[Yaml](https://mirantis.testrail.com/index.php?/attachments/get/58) is attached to the test case

> fuel configuration --env 1 --role controllers --upload file.yaml
> fuel configuration --env 1 --role controllers --execute
Expected Result:
Pass
4. [info] Print operation time

Expected Result:
Pass
5. Verify keystone uptime
Expected Result:
Pass
6. Verify cluster error
Expected Result:
Error '''Can't contact LDAP server'''
7. Get uptime of keystone from controllers
Expected Result:
Pass
8. Revert settings to non-ldap, verify settings
[Yaml](https://mirantis.testrail.com/index.php?/attachments/get/61)
Expected Result:
Pass
9. Print operation time
Expected Result:
Pass
10. Verify keystone uptime
Expected Result:
Pass
11. Run OSFT
Expected Result:
Pass"

Test case 4
================================================================
Reconfigure nova quotas
"1. Deploy cluster with 3 controllers, 2 computes, no quotes

Expected Result:
Pass
2. Try change nova quota
Expected Result:
(fail, 50x)
3. Get uptime of nova services
Expected Result:
Pass
4. Apply working nova quota driver setting to env, verify settings

> fuel configuration --env 1 --upload file.yaml
> fuel configuration --env 1 --execute
Expected Result:
Pass
5. [info] Print operation time
6. Verify services uptime
Expected Result:
Pass
7. Apply Noop nova quota driver setting to controllers, verify settings
Expected Result:
Pass
8. [info] Print operation time
9. Verify services uptime
Expected Result:
Pass
10. Try change nova quota (fail, 50x)
Expected Result:
(fail, 50x)"

Test case 5
================================================================
Reconfigure neutron ml2 vlan range
"1. Deploy cluster with 3 controllers, 2 computes with Neutron ml2 plugin
Expected Result:
Pass
2. Run OSTF
Expected Result:
Pass
3. Apply new VLAN range(minimal range) to all nodes

>fuel configuration --env 1 --upload file.yaml
>fuel configuration --env 1 --execute
Expected Result:
Pass
4. [info] Print operation time
Expected Result:
Info
5. Verify ml2 plugin settings
Expected Result:
Pass
6. Verify services uptime (TBD exact services state)
Expected Result:
Pass
7. Create new private network
Expected Result:
Pass
8. Try to create one more, verify that it is impossible
Expected Result:
Pass"

Test case 6
================================================================
Reconfigure nova ephemeral disk settings

"1. Deploy cluster with 3 controllers, 2 computes, qcow ehemeral disks for instances
Expected Result:
Pass
2. Create flavor with ephemeral disk

> nova flavor-create ks 6 2048 30 1 --ephemeral 1 --swap 1 --is-public true
Expected Result:
Pass
3. Boot instance with that flavor, verify disk format of the VM
> mount
> dev/vdb on /mnt type vfat
Expected Result:
Pass
4. Get uptime of nova-computes
Expected Result:
Info
5. Apply setting with raw format to the computes, verify it.

> fuel configuration --env 1 --node compute --upload file.yaml
> fuel configuration --env 1 --node compute --execute

[Yaml](https://mirantis.testrail.com/index.php?/attachments/get/62)
Expected Result:
Pass
6. [info] Print operation time
Expected Result:
Info
7. Verify services uptime
Expected Result:
Pass
8. Boot instance on updated compute, verify disk format

> mount
> dev/vdb on /mnt type ext4
Expected Result:
Pass
9. Run OSTF
Expected Result:
Pass"

Test case 7
================================================================
Check wrong config

"1. Deploy cluster with 3 controllers, 2 computes
Expected Result:
Pass
2. Upload not YAML config

> ---
> {configuration:
> keystone_config:
> DEFAULT/public_endpoint:
> ensure: absent
> DEFAULT/debug:
> value: False}

Expected Result:
Receive warring that the config has wrong value
3. Upload config with not known service

> ---
> {configuration:
> magic_keystone_config:
> DEFAULT/public_endpoint:
> ensure: absent
> DEFAULT/debug:
> value: False}
Expected Result:
Receive warring that the config has wrong value
4. Upload config for node in provisioning state
> fuel openstack-config --upload --env 1 --node 3 --file config_wrong.yaml
Expected Result:
Receive warring that the config has wrong value
5. Upload config for node in deploying state
> fuel openstack-config --upload --env 1 --node 3 --file config_wrong.yaml
Expected Result:
Receive warring that the config has wrong value
6. Upload config for env in deploying state
> fuel openstack-config --upload --env 1 --file config_wrong.yaml
Expected Result:
Receive warring that the config has wrong value"

Test case 8
================================================================
Preservation of configuration for cluster after resetting
"1. Prepare cluster with 1 controller and 1 compute nodes
Expected Result:
Pass
2. Apply custom configuration

>fuel configuration --env 1 --upload file.yaml

Expected Result:
Pass
3. Run network verification
Expected Result:
Pass
4. Deploy changes
Expected Result:
Pass
5. Check that configuration files match your custom configuration
Expected Result:
Pass
6. Run OSTF
Expected Result:
Pass
7. Reset cluster
Expected Result:
Pass
8. Deploy changes
Expected Result:
Pass
9. Check that configuration files match your custom configuration
Expected Result:
Pass
10. Run OSTF
Expected Result:
Pass"

Test case 9
================================================================
Multiple serial applying of configuration
"1. Deploy cluster (3 controller and 2 compute nodes)
Expected Result:
Pass
2. Upload configuration for all compute nodes
>fuel configuration --env 1 --role compute --upload file1.yaml
Expected Result:
Pass
3. Upload configuration for only one compute node (target compute node)
>fuel configuration --env 1 --node-id <target_compute_id> --upload file2.yaml
Expected Result:
Pass
4. Apply configurations
>fuel configuration --env 1 --role compute --execute
>fuel configuration --env 1 --node-id <target_compute_id> --execute
Expected Result:
Pass
5. Get uptime of nova-computes
Expected Result:
Info
6. Check that configuration files match your custom configuration
Expected Result:
Pass
7. Execute openstack operations which prove that configurations were applied correctly.
Expected Result:
Pass

Test case 10
================================================================
Download applied configuration "1. Prepare cluster
Expected Result:
Pass
2. Apply configuration
>fuel configuration --env 1 --upload file.yaml
Expected Result:
Pass
3. Download applied configuration
>fuel configuration --id 1 --download
Expected Result:
Pass"

Add controller to cluster with config applied to controllers "1. Upload keystone config that switched off debug

> fuel configuration --env 1 --role controller --upload file.yaml
> fuel configuration --env 1 --role controller --execute

---
configuration:
  keystone_config:
    DEFAULT/debug:
      value: False
2. Deploy cluster with 3+1 node
3. Verify no debug keystone logs
4. Add one controller to the cluster
5. Deploy the added node
6. Verify no debug keystone logs for keystone
7. Delete the last node
8. Run OSTF"

Test case 11
================================================================
Add compute to cluster with config applied to computes
"1. Apply new cpu overcommit to the all compute:

DEFAULT/cpu_allocation_ratio: 1.0
2. Verify option is applied to the first compute and not applied to the second
3. Run OSTF
4. Verify nova-compute services uptime
5. Deploy one more compute node
6. Verify option is applied to the first compute and not applied to the second
7. Run OSTF
8. Verify nova-compute services uptime"

Test case 12
================================================================
Add compute and controller with config applied to cluster

"1. Deploy cluster with 3 controllers, 2 computes
2. Run OSTF
3. Apply debug mode in neutron config for all cluster:

> fuel configuration --env 1 --upload file.yaml
> fuel configuration --env 1 --execute

debug = True

4. [info] Print operation time
5. Run OSTF
6. Check the debug logs are present
7. Add new compute and controller node
8. Run OSTF
9. Check the debug logs are present"

Test case 13
Apply different configs to cluster and to role

"1. Prepare cluster with 1 controller, 1 compute and 1 compute+cinder
Expected Result:
Pass
2. Apply config to the whole cluster
> fuel configuration --env 1 --upload cluster.yaml
Expected Result:
Pass
3. Apply config to cinder node
> fuel configuration --env 1 --role cinder --upload cinder.yaml
Expected Result:
Pass
4. Deploy changes
Expected Result:
Pass
5. [info] Print operation time
Expected Result:
Info
6. Verify applied settings on the whole cluster
Expected Result:
Pass
7. Verify applied settings which are only specified for cinder node
Expected Result:
Pass
8. Verify services uptime (TBD exact services state)
Expected Result:
Pass
9. Run OSTF
Expected Result:
Pass"

Test case 13
Deploy two clusters with different configs

         Scenario:
         1. Revert snapshot "ready_with_5_slaves"
         2. Divided the IP ranges into two parts
         3. Verify network of the first environment
         4. Verify network of the second environment
         5. Deploy environment with first ranges
         6. Run OSTF on the first environment
         7. Deploy environment with second ranges
         8. Run OSTF on the second environment
         9. Apply new CPU overcommit ratio for first environment
         10. Verify deployment task is finished
         11. Verify nova-scheduler services uptime
         12. Verify configuration file on controller
         13. Boot instances with flavor that occupy all CPU,
             boot extra instance and catch the error
         14. Apply old CPU overcommit ratio for each controller
         15. Verify deployment task is finished
         16. Verify nova-scheduler services uptime
         17. Verify configuration file on each controller

Blueprint information

Status:
Complete
Approver:
Ksenia Svechnikova
Priority:
Undefined
Drafter:
Ksenia Svechnikova
Direction:
Needs approval
Assignee:
Ksenia Svechnikova
Definition:
Approved
Series goal:
Accepted for 8.0.x
Implementation:
Implemented
Milestone target:
milestone icon 8.0
Started by
Ksenia Svechnikova
Completed by
Ksenia Svechnikova

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/test-openstack-config-change,n,z

Addressed by: https://review.openstack.org/246925
    Add base methods to work with new OpenStack configuration API

Addressed by: https://review.openstack.org/247549
    Add methods for verification of configuration changes after deployment

Addressed by: https://review.openstack.org/247497
    Add test for reconfiguration of ml2 vlan range

Addressed by: https://review.openstack.org/255858
    Add test for reconfiguration of nova CPU allocation ratio

Addressed by: https://review.openstack.org/256402
    Add negative test for reconfiguration of keystone to use LDAP

Addressed by: https://review.openstack.org/257278
    Add test for reconfiguration of nova quota

Addressed by: https://review.openstack.org/258431
    Add test for reconfiguration of nova ephemeral disk

Addressed by: https://review.openstack.org/258814
    Add test for preservation config after reset of cluster and preconfigured deploy

Addressed by: https://review.openstack.org/258825
    Add test for preservation config and preconfigured deploy

Addressed by: https://review.openstack.org/259034
    Add test for scalability of configured environment

Addressed by: https://review.openstack.org/259073
    Add test for multiple serial applying of configuration

Addressed by: https://review.openstack.org/266861
    Add test for applying configuration to number of clusters

Addressed by: https://review.openstack.org/267365
    Add test for scalability of configured environment

Addressed by: https://review.openstack.org/267884
    Add two negative tests for services reconfiguration

Addressed by: https://review.openstack.org/268926
    Add test for multiple serial applying of configuration

Addressed by: https://review.openstack.org/268936
    Add test for applying configuration to number of clusters

Addressed by: https://review.openstack.org/269082
    Add two negative tests for services reconfiguration

Gerrit topic: https://review.openstack.org/#q,topic:270111,n,z

Addressed by: https://review.openstack.org/270226
    Add test for applying of config for node with multiple role

Addressed by: https://review.openstack.org/275135
    Add test for applying of config for node with multiple role

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.