Improve upstream gate support

Registered by Daniel Mellado

In order for Kuryr-Kubernetes to be tested with several SDNs we need to improve a lot the current gate support so it has several more gates, both multinode and single node covering a whole test matrix. Some of these new gates will be added just to the experimental in order to avoid having a too long gate queue.

Multinode gates
==========
The multinode gates intend to cover the sdn setup with different providers:

SDNs [dragonflow, odl, ovn], with octavia L3 for all of them but odl, which doesn't support it yet.

- tempest-kuryr-kubernetes-multinode-odl-lbaasv2
- tempest-kuryr-kubernetes-multinode-ovn-octavia
- tempest-kuryr-kubernetes-multinode-df-octavia

The idea would be for this to have an initial controller+compute setup on zuulv3

Single node gates
===========
Under the scope of this blueprint, support for containerized and daemonized Kuryr-Kubernetes will also be added, originally as experimental gate.

Blueprint information

Status:
Not started
Approver:
Antoni Segura Puimedon
Priority:
Undefined
Drafter:
Daniel Mellado
Direction:
Approved
Assignee:
Daniel Mellado
Definition:
Approved
Series goal:
Proposed for rocky
Implementation:
Not started
Milestone target:
milestone icon queens-3

Related branches

Sprints

Whiteboard

<dulek> In case of deployment options we'll have in short time:
- containerized
- with daemon
- pooled
- pooled with VIF choice on daemon side.

Matrix gets pretty complicated then, so I believe we'll need to start deprecating some deployment options. First thing would be stabilizing cni-daemon as a default. Then we'll need to decide what we're doing with pooled configurations.

<dulek> I've came up with following plan, based mostly on my subjective perception of which configurations can break more easily:

check:
- lbaasv2
- octavia
- octavia-daemon
- octavia-openshift
- octavia-daemon-containerized (nv)
- octavia-containerized (nv)

experimental:
- lbaasv2-daemon
- lbaasv2-openshift
- lbaasv2-daemon-openshift
- octavia-daemon-openshift-containerized

gate:
- lbaasv2
- octavia
- octavia-daemon
- octavia-openshift
- octavia-daemon-containerized (nv)
- octavia-containerized (nv)

no jobs:
- lbaasv2-daemon-openshift-containerized
- lbaasv2-daemon-containerized
- lbaasv2-openshift-containerized
- octavia-openshfit-containerized
- octavia-daemon-openshift
- lbaasv2-containerized

It's based on idea that sooner or later we're going to deprecate lbaasv2 and Octavia has more moving parts, so let's base tests on it. Then most of "triple" configurations are not really needed, as most bugs will be seen on "double" configurations.

[irenab] Lets not forget the SDN - neutron backends matrix

Gerrit topic: https://review.openstack.org/#q,topic:bp/devstack-openshift-support,n,z

Addressed by: https://review.openstack.org/521077
    Add OpenShift gates

Gerrit topic: https://review.openstack.org/#q,topic:bp/enhance-upstream-gates,n,z

Addressed by: https://review.openstack.org/527360
    Make some Tempest gates voting

Addressed by: https://review.openstack.org/543864
    Add OVN gate

Addressed by: https://review.openstack.org/544808
    Add Dragonflow gate

Addressed by: https://review.openstack.org/534827
    Add experimental containerized jobs

Addressed by: https://review.openstack.org/545619
    Add timeout to the wait_for method in plugin.sh

Addressed by: https://review.openstack.org/546149
    TrivialFix: Make timeout a parameter in wait_for

Addressed by: https://review.openstack.org/546942
    Creating gate for testing ports pool feature Partially-Implements: blueprint enhance-upstream-gates

Addressed by: https://review.openstack.org/577373
    Add timeout to the wait_for method in plugin.sh

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.