[Tempest] Devstack to configure tempest on a remote node
Hello stackers, I have been attempting to deploy a “spine & leaf” like topology for upstream testing job of the ovn-bgp-agent [1]. The idea is to have an all-in-one devstack VM where all openstack services are running. This VM is plugged to two leaf switches respectively with its two interfaces, and each switch is connected to the “spine” switch. With the leaf switches behaving as route reflected we can validate routes are advertised to the spine. Now in order to validate that, I need to execute the tempest tests on the spine. That means I want to use devstack on the spine VM that calls OpenStack services API on the devstack all-in-one VM. The spine VM should not have any openstack service running. The problem I’m struggling with that the tempest is configured based on the ENABLED_SERVICES for the current box. I tried to hack the spine VM portion by calling configure_tempest with custom ENABLED_SERVICES from a local.sh [2] which seems to configure the tempest.conf correctly but the stack.sh script calls test-config [3] phase after local.sh is invoked, which re-configures tempest.conf back to the state as if no OpenStack services were enabled. I kinda hit the wall and ran out of ideas for hacks/workarounds with the current devstack codebase. I thought one way of solving this would be to decouple ENABLED_SERVICES into two separate variables, one being used to configure services and one for tempest purposes but before I dive into that, I wanted to ask if anybody has any experience doing something similar (configuring only tempest with devstack) or maybe there is already some variable I am not aware of. Thank you for any inputs, ideas or suggestions :) Kuba [1] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/936968 [2] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/936968/54/playbooks/c... [3] https://opendev.org/openstack/devstack/src/branch/master/stack.sh#L1482-L151...
On Wed, Jan 8, 2025, at 8:54 AM, Jakub Libosvar wrote:
Hello stackers,
I have been attempting to deploy a “spine & leaf” like topology for upstream testing job of the ovn-bgp-agent [1]. The idea is to have an all-in-one devstack VM where all openstack services are running. This VM is plugged to two leaf switches respectively with its two interfaces, and each switch is connected to the “spine” switch. With the leaf switches behaving as route reflected we can validate routes are advertised to the spine. Now in order to validate that, I need to execute the tempest tests on the spine.
That means I want to use devstack on the spine VM that calls OpenStack services API on the devstack all-in-one VM. The spine VM should not have any openstack service running. The problem I’m struggling with that the tempest is configured based on the ENABLED_SERVICES for the current box. I tried to hack the spine VM portion by calling configure_tempest with custom ENABLED_SERVICES from a local.sh [2] which seems to configure the tempest.conf correctly but the stack.sh script calls test-config [3] phase after local.sh is invoked, which re-configures tempest.conf back to the state as if no OpenStack services were enabled.
I kinda hit the wall and ran out of ideas for hacks/workarounds with the current devstack codebase. I thought one way of solving this would be to decouple ENABLED_SERVICES into two separate variables, one being used to configure services and one for tempest purposes but before I dive into that, I wanted to ask if anybody has any experience doing something similar (configuring only tempest with devstack) or maybe there is already some variable I am not aware of.
Thank you for any inputs, ideas or suggestions :)
I haven't tried this myself, but I think tempest simply needs to be configured with cloud details then you can run it with tox. An alternative approach may be to configure tempest then run it with tox and avoid devstack entirely.
Kuba
[1] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/936968 [2] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/936968/54/playbooks/c... [3] https://opendev.org/openstack/devstack/src/branch/master/stack.sh#L1482-L151...
participants (2)
-
Clark Boylan
-
Jakub Libosvar