From 2085524f331b649d7fc9cbb8dd67f0237034655c Mon Sep 17 00:00:00 2001 From: Roman Dobosz Date: Fri, 30 Jul 2021 11:26:34 +0200 Subject: [PATCH] Switch gates to OVN by default. Also, rearrange tests files. Job hierarchy looks as follows: - kuryr-kubernetes-base (base tempest job) - kuryr-kubernetes-base-ovn (derived from base for neutron OVN) - kuryr-kubernetes-tempest-amphora - kuryr-kubernetes-octavia-base (ovn-octavia-provider) - kuryr-kubernetes-tempest (alias for the parent, used in projects kuryr-tempest-plugin and os-vif) - kuryr-kubernetes-tempest-ovn-provider-ovn (alias for the parent, used in project ovn-octavia-provider) - kuryr-kubernetes-tempest-systemd - kuryr-kubernetes-tempest-centos-7 (this one is probably broken) - kuryr-kubernetes-tempest-defaults (default settings for kuryr-kubernetes, so OVN + amphora + default set of handlers, default subnet and sg drivers) - kuryr-kubernetes-tempest-ipv6 - kuryr-kubernetes-tempest-dual-stack - kuryr-kubernetes-tempest-lower-constraints - kuryr-kubernetes-tempest-l2 - kuryr-kubernetes-tempest-pools-namespace - kuryr-kubernetes-tempest-crio (currently broken) - kuryr-kubernetes-tempest-multinode - kuryr-kubernetes-tempest-multinode-ha - kuryr-kubernetes-base-ovs (derived from base for neutron OVS) - kuryr-kubernetes-octavia-base-ovs (amphora) - kuryr-kubernetes-tempest-ipv6-ovs - kuryr-kubernetes-tempest-amphora-ovs - kuryr-kubernetes-tempest-multinode-ovs - kuryr-kubernetes-e2e-np (base devstack job) For convenience, tempest jobs are in two files: one for multinode jobs, and one for one node jobs. Network policy job is in its own file, since it have different parent (devstack). Change-Id: I198f138feb9bd7b6cc659ac8cd788cddd5be9439 --- .zuul.d/base.yaml | 324 +++++++++++------- .zuul.d/k8s-np-e2e.yaml | 139 ++++++++ .zuul.d/octavia.yaml | 151 -------- .zuul.d/project.yaml | 20 +- .zuul.d/sdn.yaml | 186 ---------- .zuul.d/tempest-jobs.yaml | 248 ++++++++++++++ ...inode.yaml => tempest-multinode-jobs.yaml} | 167 ++++----- devstack/lib/kuryr_kubernetes | 24 +- 8 files changed, 704 insertions(+), 555 deletions(-) create mode 100644 .zuul.d/k8s-np-e2e.yaml delete mode 100644 .zuul.d/octavia.yaml delete mode 100644 .zuul.d/sdn.yaml create mode 100644 .zuul.d/tempest-jobs.yaml rename .zuul.d/{multinode.yaml => tempest-multinode-jobs.yaml} (62%) diff --git a/.zuul.d/base.yaml b/.zuul.d/base.yaml index 5903f21d1..82acf4611 100644 --- a/.zuul.d/base.yaml +++ b/.zuul.d/base.yaml @@ -13,9 +13,115 @@ # limitations under the License. - job: - name: kuryr-kubernetes-tempest-base + name: kuryr-kubernetes-base parent: devstack-tempest - description: Base kuryr-kubernetes-job + description: | + Base Kuryr Kubernetes tempest job. There are neither Neutron nor Octavia + services, its meant to be extended. + required-projects: + - openstack/devstack-gate + - openstack/devstack-plugin-container + - openstack/kuryr-kubernetes + - openstack/kuryr-tempest-plugin + - openstack/tempest + timeout: 10800 + post-run: playbooks/copy-k8s-logs.yaml + host-vars: + controller: + devstack_plugins: + kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes + devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container + kuryr-tempest-plugin: https://opendev.org/openstack/kuryr-tempest-plugin + vars: + # Default swap size got shrinked to 1 GB, it's way too small for us. + configure_swap_size: 8192 + tempest_test_regex: '^(kuryr_tempest_plugin.tests.)' + tempest_test_timeout: 1800 + tox_envlist: 'all' + tempest_plugins: + - kuryr-tempest-plugin + devstack_localrc: + ENABLE_TLS: true + ETCD_USE_RAMDISK: true + KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer + KURYR_SG_DRIVER: policy + KURYR_SUBNET_DRIVER: namespace + devstack_services: + c-api: false + c-bak: false + c-sch: false + c-vol: false + cinder: false + coredns: false + # Need to disable dstat due to bug https://github.com/dstat-real/dstat/pull/162 + dstat: false + etcd3: true + g-api: true + g-reg: true + key: true + kubernetes-master: true + kuryr-daemon: true + kuryr-kubernetes: true + mysql: true + n-api-meta: true + n-api: true + n-cond: true + n-cpu: true + n-sch: true + placement-api: true + placement-client: true + rabbit: true + s-account: false + s-container: false + s-object: false + s-proxy: false + tempest: true + zuul_copy_output: + '{{ devstack_log_dir }}/kubernetes': 'logs' + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ + - ^contrib/.*$ + +- job: + name: kuryr-kubernetes-base-ovn + parent: kuryr-kubernetes-base + description: Base kuryr-kubernetes-job with OVN + required-projects: + - openstack/neutron + timeout: 10800 + post-run: playbooks/copy-k8s-logs.yaml + host-vars: + controller: + devstack_plugins: + neutron: https://opendev.org/openstack/neutron + vars: + network_api_extensions_common: + - tag-ports-during-bulk-creation + devstack_localrc: + KURYR_NEUTRON_DEFAULT_ROUTER: kuryr-router + KURYR_ENFORCE_SG_RULES: false + ML2_L3_PLUGIN: ovn-router,trunk,qos + OVN_BRANCH: v20.06.2 + OVN_BUILD_FROM_SOURCE: true + OVN_L3_CREATE_PUBLIC_NETWORK: true + VAR_RUN_PATH: /usr/local/var/run + devstack_services: + neutron-tag-ports-during-bulk-creation: true + neutron: true + q-qos: true + q-trunk: true + zuul_copy_output: + '{{ devstack_base_dir }}/data/ovn': 'logs' + '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs' + '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs' + '/home/zuul/np_sctp_kubetest.log': 'logs' + +- job: + name: kuryr-kubernetes-base-ovs + parent: kuryr-kubernetes-base + description: Base kuryr-kubernetes-job with OVS required-projects: - openstack/devstack-gate - openstack/devstack-plugin-container @@ -28,150 +134,116 @@ host-vars: controller: devstack_plugins: - kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes - devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container - kuryr-tempest-plugin: https://opendev.org/openstack/kuryr-tempest-plugin neutron: https://opendev.org/openstack/neutron vars: - # Default swap size got shrinked to 1 GB, it's way too small for us. - configure_swap_size: 8192 - tempest_test_regex: '^(kuryr_tempest_plugin.tests.)' - tempest_test_timeout: 1800 - tox_envlist: 'all' network_api_extensions_common: - tag-ports-during-bulk-creation - tempest_plugins: - - kuryr-tempest-plugin - devstack_localrc: - Q_AGENT: openvswitch - Q_ML2_TENANT_NETWORK_TYPE: vxlan - Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge - ML2_L3_PLUGIN: router - KURYR_K8S_API_PORT: 6443 - KURYR_K8S_CLOUD_PROVIDER: false - ETCD_USE_RAMDISK: true - USE_PYTHON3: true devstack_services: - # TODO(dmellado):Temporary workaround until proper fix - base: false - # Need to disable dstat due to bug https://github.com/dstat-real/dstat/pull/162 - dstat: false - s-account: false - s-container: false - s-object: false - s-proxy: false - c-api: false - c-bak: false - c-sch: false - c-vol: false - cinder: false - tempest: true + neutron-tag-ports-during-bulk-creation: true + neutron: true ovn-controller: false ovn-northd: false - q-ovn-metadata-agent: false ovs-vswitchd: false ovsdb-server: false - neutron: true q-agt: true q-dhcp: true q-l3: true - q-svc: true q-meta: true - key: true - mysql: true - rabbit: true - n-api: true - n-api-meta: true - n-cpu: true - n-cond: true - n-sch: true - placement-api: true - placement-client: true - g-api: true - g-reg: true - etcd3: true - kubernetes-master: true - kuryr-kubernetes: true - kuryr-daemon: true - coredns: false - neutron-tag-ports-during-bulk-creation: true + q-ovn-metadata-agent: false + q-svc: true + q-trunk: true + devstack_localrc: + KURYR_ENFORCE_SG_RULES: true + ML2_L3_PLUGIN: router + Q_AGENT: openvswitch + Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge + Q_ML2_TENANT_NETWORK_TYPE: vxlan zuul_copy_output: - '{{ devstack_log_dir }}/kubernetes': 'logs' - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - - ^contrib/.*$ + '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs' + '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs' - job: - name: kuryr-kubernetes-k8s-base - parent: devstack - description: Base kuryr-kubernetes-job without tempest + name: kuryr-kubernetes-octavia-base + parent: kuryr-kubernetes-base-ovn + description: | + Kuryr-Kubernetes tempest job using octavia required-projects: - - openstack/devstack-plugin-container - - openstack/kuryr-kubernetes - - openstack/neutron - post-run: playbooks/copy-k8s-logs.yaml + - openstack/octavia + - openstack/python-octaviaclient + - openstack/ovn-octavia-provider + - openstack/octavia-tempest-plugin + pre-run: playbooks/get_amphora_tarball.yaml host-vars: controller: devstack_plugins: - kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes - devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container - neutron: https://opendev.org/openstack/neutron + octavia: https://opendev.org/openstack/octavia + ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin vars: - network_api_extensions_common: - - tag-ports-during-bulk-creation + tempest_plugins: + - kuryr-tempest-plugin + - octavia-tempest-plugin devstack_localrc: - Q_AGENT: openvswitch - Q_ML2_TENANT_NETWORK_TYPE: vxlan - Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge - ML2_L3_PLUGIN: router - KURYR_K8S_API_PORT: 6443 - Q_BUILD_OVS_FROM_GIT: true - KURYR_K8S_CLOUD_PROVIDER: false - ETCD_USE_RAMDISK: true + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: ovn + KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 + KURYR_LB_ALGORITHM: SOURCE_IP_PORT + OCTAVIA_AMP_IMAGE_FILE: /tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2 + OCTAVIA_AMP_IMAGE_NAME: test-only-amphora-x64-haproxy-ubuntu-bionic + OCTAVIA_AMP_IMAGE_SIZE: 3 + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 devstack_services: - # TODO(dmellado):Temporary workaround until proper fix - base: false - # Need to disable dstat due to bug https://github.com/dstat-real/dstat/pull/162 - dstat: false - s-account: false - s-container: false - s-object: false - s-proxy: false - c-api: false - c-bak: false - c-sch: false - c-vol: false - cinder: false - neutron: true - q-agt: true - q-dhcp: true - q-l3: true - q-svc: true - q-meta: true - key: true - mysql: true - rabbit: true - n-api: true - n-api-meta: true - n-cpu: true - n-cond: true - n-sch: true - placement-api: true - placement-client: true - g-api: true - g-reg: true - etcd3: true - kubernetes-master: true - kuryr-kubernetes: true - kuryr-daemon: true - coredns: false - neutron-tag-ports-during-bulk-creation: true - zuul_copy_output: - '{{ devstack_log_dir }}/kubernetes': 'logs' - irrelevant-files: - - ^.*\.rst$ - - ^doc/.*$ - - ^releasenotes/.*$ - - ^contrib/.*$ + octavia: true + o-api: true + o-cw: true + o-da: true + o-hk: true + o-hm: true + +- job: + name: kuryr-kubernetes-octavia-base-ovs + parent: kuryr-kubernetes-base-ovs + description: | + Kuryr-Kubernetes tempest job using octavia + required-projects: + - openstack/octavia + - openstack/python-octaviaclient + - openstack/octavia-tempest-plugin + pre-run: playbooks/get_amphora_tarball.yaml + host-vars: + controller: + devstack_plugins: + octavia: https://opendev.org/openstack/octavia + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin + vars: + tempest_plugins: + - kuryr-tempest-plugin + - octavia-tempest-plugin + devstack_localrc: + OCTAVIA_AMP_IMAGE_FILE: /tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2 + OCTAVIA_AMP_IMAGE_NAME: test-only-amphora-x64-haproxy-ubuntu-bionic + OCTAVIA_AMP_IMAGE_SIZE: 3 + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_services: + octavia: true + o-api: true + o-cw: true + o-hk: true + o-hm: true diff --git a/.zuul.d/k8s-np-e2e.yaml b/.zuul.d/k8s-np-e2e.yaml new file mode 100644 index 000000000..2b6148d4c --- /dev/null +++ b/.zuul.d/k8s-np-e2e.yaml @@ -0,0 +1,139 @@ +# Copyright 2021 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- job: + name: kuryr-kubernetes-e2e-np + parent: devstack + description: | + Kuryr-Kubernetes job with OVN and Octavia provider OVN running k8s network policy e2e tests + required-projects: + - openstack/devstack-plugin-container + - openstack/kuryr-kubernetes + - openstack/neutron + - openstack/octavia + - openstack/ovn-octavia-provider + - openstack/python-octaviaclient + pre-run: playbooks/get_amphora_tarball.yaml + post-run: + - playbooks/run_k8s_e2e_tests.yaml + - playbooks/copy-k8s-logs.yaml + post-timeout: 7200 + host-vars: + controller: + devstack_plugins: + devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container + kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes + neutron: https://opendev.org/openstack/neutron + octavia: https://opendev.org/openstack/octavia + ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider + vars: + network_api_extensions_common: + - tag-ports-during-bulk-creation + devstack_localrc: + ETCD_USE_RAMDISK: true + KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer + KURYR_ENFORCE_SG_RULES: false + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: ovn + KURYR_K8S_API_PORT: 6443 + KURYR_K8S_CLOUD_PROVIDER: false + KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 + KURYR_LB_ALGORITHM: SOURCE_IP_PORT + KURYR_NEUTRON_DEFAULT_ROUTER: kuryr-router + KURYR_SG_DRIVER: policy + KURYR_SUBNET_DRIVER: namespace + ML2_L3_PLUGIN: ovn-router,trunk,qos + OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2" + OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic" + OCTAVIA_AMP_IMAGE_SIZE: 3 + OVN_BRANCH: v20.06.2 + OVN_BUILD_FROM_SOURCE: true + OVN_L3_CREATE_PUBLIC_NETWORK: true + PHYSICAL_NETWORK: public + Q_AGENT: ovn + Q_BUILD_OVS_FROM_GIT: true + Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger + Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve + Q_ML2_TENANT_NETWORK_TYPE: geneve + Q_USE_PROVIDERNET_FOR_PUBLIC: true + VAR_RUN_PATH: /usr/local/var/run + devstack_services: + # TODO(dmellado):Temporary workaround until proper fix + base: false + c-api: false + c-bak: false + c-sch: false + c-vol: false + cinder: false + coredns: false + # Need to disable dstat due to bug https://github.com/dstat-real/dstat/pull/162 + dstat: false + etcd3: true + g-api: true + g-reg: true + key: true + kubernetes-master: true + kuryr-daemon: true + kuryr-kubernetes: true + mysql: true + n-api-meta: true + n-api: true + n-cond: true + n-cpu: true + n-sch: true + neutron-tag-ports-during-bulk-creation: true + neutron: true + o-api: true + o-cw: true + o-da: true + o-hk: true + o-hm: true + octavia: true + ovn-controller: true + ovn-northd: true + placement-api: true + placement-client: true + q-agt: false + q-dhcp: false + q-l3: false + q-meta: false + q-ovn-metadata-agent: true + q-qos: true + q-svc: true + q-trunk: true + rabbit: true + s-account: false + s-container: false + s-object: false + s-proxy: false + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' + kubetest_version: v1.20.2 + np_parallel_number: 2 + gopkg: go1.15.2.linux-amd64.tar.gz + np_sleep: 30 + zuul_copy_output: + '/home/zuul/np_kubetest.log': 'logs' + '/home/zuul/np_sctp_kubetest.log': 'logs' + '{{ devstack_log_dir }}/kubernetes': 'logs' + irrelevant-files: + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ + - ^contrib/.*$ + voting: false diff --git a/.zuul.d/octavia.yaml b/.zuul.d/octavia.yaml deleted file mode 100644 index c7e8dde35..000000000 --- a/.zuul.d/octavia.yaml +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright 2018 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- job: - name: kuryr-kubernetes-tempest-octavia-base - parent: kuryr-kubernetes-tempest-base - description: | - Kuryr-Kubernetes tempest job using octavia - required-projects: - - openstack/octavia - - openstack/python-octaviaclient - - openstack/octavia-tempest-plugin - pre-run: playbooks/get_amphora_tarball.yaml - host-vars: - controller: - devstack_plugins: - octavia: https://opendev.org/openstack/octavia - octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin.git - vars: - tempest_plugins: - - kuryr-tempest-plugin - - octavia-tempest-plugin - devstack_localrc: - OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2" - OCTAVIA_AMP_IMAGE_SIZE: 3 - OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic" - devstack_local_conf: - post-config: - $OCTAVIA_CONF: - controller_worker: - amp_active_retries: 9999 - health_manager: - failover_threads: 2 - health_update_threads: 2 - stats_update_threads: 2 - devstack_services: - kuryr-daemon: true - octavia: true - o-api: true - o-cw: true - o-hk: true - o-hm: true - -- job: - name: kuryr-kubernetes-tempest-systemd - parent: kuryr-kubernetes-tempest-octavia-base - description: | - Kuryr-Kubernetes tempest job using octavia and running kuryr as systemd - services - vars: - devstack_localrc: - KURYR_K8S_CONTAINERIZED_DEPLOYMENT: false - -- job: - name: kuryr-kubernetes-tempest-centos-7 - parent: kuryr-kubernetes-tempest-systemd - nodeset: openstack-centos-7-single-node - voting: false - -- job: - name: kuryr-kubernetes-tempest - parent: kuryr-kubernetes-tempest-octavia-base - description: | - Kuryr-Kubernetes tempest job running kuryr containerized - -- job: - name: kuryr-kubernetes-tempest-ipv6 - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest job running kuryr containerized with IPv6 pod - and service networks - vars: - devstack_localrc: - KURYR_IPV6: true - voting: false - -- job: - name: kuryr-kubernetes-tempest-dual-stack - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest job running kuryr containerized with dual stack - pod and service networks - vars: - devstack_localrc: - KURYR_DUAL_STACK: true - voting: false - -- job: - name: kuryr-kubernetes-tempest-lower-constraints - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest job running kuryr containerized with - requirments from lower-constraints.txt - vars: - devstack_localrc: - KURYR_CONTAINERS_USE_LOWER_CONSTRAINTS: true - voting: false - -- job: - name: kuryr-kubernetes-tempest-l2 - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest job using octavia in l2 mode, kuryr containerized - vars: - devstack_localrc: - KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 - -- job: - name: kuryr-kubernetes-tempest-pools-namespace - description: | - Tempest with containers, port pools and namespace subnet driver - parent: kuryr-kubernetes-tempest - vars: - devstack_localrc: - KURYR_SUBNET_DRIVER: namespace - KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer - KURYR_SG_DRIVER: policy - KURYR_USE_PORT_POOLS: true - KURYR_POD_VIF_DRIVER: neutron-vif - KURYR_VIF_POOL_DRIVER: neutron - KURYR_CONFIGMAP_MODIFIABLE: true - -- job: - name: kuryr-kubernetes-tempest-network-policy - description: | - Tempest with Octavia, containers and network policy driver - parent: kuryr-kubernetes-tempest - vars: - devstack_localrc: - KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer - KURYR_SG_DRIVER: policy - KURYR_SUBNET_DRIVER: namespace - -- job: - name: kuryr-kubernetes-tempest-crio - parent: kuryr-kubernetes-tempest - vars: - devstack_localrc: - CONTAINER_ENGINE: crio - voting: false diff --git a/.zuul.d/project.yaml b/.zuul.d/project.yaml index 795671c00..cc973e06d 100644 --- a/.zuul.d/project.yaml +++ b/.zuul.d/project.yaml @@ -16,28 +16,26 @@ name: kuryr-kubernetes-tempest-jobs check: jobs: - - kuryr-kubernetes-tempest-systemd - kuryr-kubernetes-tempest + - kuryr-kubernetes-tempest-defaults + - kuryr-kubernetes-tempest-systemd - kuryr-kubernetes-tempest-lower-constraints - - kuryr-kubernetes-tempest-ovn - - kuryr-kubernetes-tempest-network-policy - kuryr-kubernetes-tempest-multinode - - kuryr-kubernetes-tempest-multinode-ovn + - kuryr-kubernetes-tempest-multinode-ovs - kuryr-kubernetes-tempest-ipv6 - - kuryr-kubernetes-tempest-ovn-ipv6 - - kuryr-kubernetes-tempest-ovn-provider-ovn - - kuryr-kubernetes-e2e-np-ovn-provider-ovn + - kuryr-kubernetes-tempest-ipv6-ovs + - kuryr-kubernetes-tempest-amphora + - kuryr-kubernetes-tempest-amphora-ovs + - kuryr-kubernetes-e2e-np gate: jobs: - - kuryr-kubernetes-tempest-systemd - kuryr-kubernetes-tempest - - kuryr-kubernetes-tempest-ovn - - kuryr-kubernetes-tempest-network-policy + - kuryr-kubernetes-tempest-systemd + - kuryr-kubernetes-tempest-amphora experimental: jobs: - kuryr-kubernetes-tempest-l2 - kuryr-kubernetes-tempest-pools-namespace - - kuryr-kubernetes-tempest-ovn-systemd - kuryr-kubernetes-tempest-multinode-ha - kuryr-kubernetes-tempest-crio - kuryr-kubernetes-tempest-dual-stack diff --git a/.zuul.d/sdn.yaml b/.zuul.d/sdn.yaml deleted file mode 100644 index 6535d2712..000000000 --- a/.zuul.d/sdn.yaml +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright 2018 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- job: - name: kuryr-kubernetes-tempest-ovn - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest job using OVN - required-projects: - - openstack/neutron - host-vars: - controller: - devstack_plugins: - neutron: https://opendev.org/openstack/neutron - vars: - devstack_localrc: - Q_AGENT: ovn - ML2_L3_PLUGIN: ovn-router,trunk,qos - OVN_DBS_LOG_LEVEL: dbg - Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger - Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve - Q_ML2_TENANT_NETWORK_TYPE: geneve - Q_USE_PROVIDERNET_FOR_PUBLIC: true - VAR_RUN_PATH: /usr/local/var/run - PHYSICAL_NETWORK: public - OVN_L3_CREATE_PUBLIC_NETWORK: true - OVN_BUILD_FROM_SOURCE: true - ENABLE_CHASSIS_AS_GW: true - OVN_BRANCH: v20.06.1 - KURYR_NEUTRON_DEFAULT_ROUTER: kuryr-router - ENABLE_TLS: True - devstack_services: - ovn-northd: true - ovn-controller: true - q-ovn-metadata-agent: true - q-svc: true - q-agt: false - q-l3: false - q-dhcp: false - q-meta: false - q-trunk: true - q-qos: true - ovs-vswitchd: true - ovsdb-server: true - zuul_copy_output: - '{{ devstack_base_dir }}/data/ovn': 'logs' - '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs' - '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs' - -- job: - name: kuryr-kubernetes-tempest-ovn-systemd - parent: kuryr-kubernetes-tempest-ovn - description: | - Kuryr-Kubernetes tempest job using OVN and Containerized - vars: - devstack_localrc: - KURYR_K8S_CONTAINERIZED_DEPLOYMENT: false - -- job: - name: kuryr-kubernetes-tempest-ovn-ipv6 - parent: kuryr-kubernetes-tempest-ovn - description: | - Kuryr-Kubernetes tempest job running kuryr containerized with OVN and - IPv6 pod and service networks - vars: - devstack_localrc: - KURYR_IPV6: true - -- job: - name: kuryr-kubernetes-tempest-ovn-provider-ovn - parent: kuryr-kubernetes-tempest-ovn - description: | - Kuryr-Kubernetes tempest job using OVN, CNI daemon, Containerized, Octavia provider OVN, and Network Policy drivers - required-projects: - - openstack/ovn-octavia-provider - host-vars: - controller: - devstack_plugins: - ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider - vars: - devstack_services: - o-da: true - devstack_local_conf: - post-config: - $OCTAVIA_CONF: - controller_worker: - amp_active_retries: 9999 - api_settings: - enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' - devstack_localrc: - ENABLE_CHASSIS_AS_GW: true - KURYR_EP_DRIVER_OCTAVIA_PROVIDER: ovn - KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 - KURYR_ENFORCE_SG_RULES: false - KURYR_LB_ALGORITHM: SOURCE_IP_PORT - KURYR_SUBNET_DRIVER: namespace - KURYR_SG_DRIVER: policy - KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer - -- job: - name: kuryr-kubernetes-e2e-np-ovn-provider-ovn - parent: kuryr-kubernetes-k8s-base - description: | - Kuryr-Kubernetes job with OVN and Octavia provider OVN running k8s network policy e2e tests - required-projects: - - openstack/neutron - - openstack/octavia - - openstack/python-octaviaclient - - openstack/ovn-octavia-provider - pre-run: playbooks/get_amphora_tarball.yaml - post-run: playbooks/run_k8s_e2e_tests.yaml - post-timeout: 7200 - host-vars: - controller: - devstack_plugins: - neutron: https://opendev.org/openstack/neutron - octavia: https://opendev.org/openstack/octavia - ovn-octavia-provider: https://opendev.org/openstack/ovn-octavia-provider - vars: - devstack_localrc: - OCTAVIA_AMP_IMAGE_FILE: "/tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2" - OCTAVIA_AMP_IMAGE_SIZE: 3 - OCTAVIA_AMP_IMAGE_NAME: "test-only-amphora-x64-haproxy-ubuntu-bionic" - Q_AGENT: ovn - ML2_L3_PLUGIN: ovn-router,trunk,qos - Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger - Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve - Q_ML2_TENANT_NETWORK_TYPE: geneve - Q_USE_PROVIDERNET_FOR_PUBLIC: true - VAR_RUN_PATH: /usr/local/var/run - PHYSICAL_NETWORK: public - OVN_L3_CREATE_PUBLIC_NETWORK: true - OVN_BUILD_FROM_SOURCE: true - ENABLE_CHASSIS_AS_GW: true - OVN_BRANCH: v20.06.2 - KURYR_NEUTRON_DEFAULT_ROUTER: kuryr-router - KURYR_EP_DRIVER_OCTAVIA_PROVIDER: ovn - KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 - KURYR_ENFORCE_SG_RULES: false - KURYR_LB_ALGORITHM: SOURCE_IP_PORT - KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer - KURYR_SG_DRIVER: policy - KURYR_SUBNET_DRIVER: namespace - devstack_services: - octavia: true - o-api: true - o-cw: true - o-hk: true - o-hm: true - o-da: true - ovn-northd: true - ovn-controller: true - q-ovn-metadata-agent: true - q-svc: true - q-agt: false - q-l3: false - q-dhcp: false - q-meta: false - q-trunk: true - q-qos: true - devstack_local_conf: - post-config: - $OCTAVIA_CONF: - controller_worker: - amp_active_retries: 9999 - api_settings: - enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' - kubetest_version: v1.20.2 - np_parallel_number: 2 - gopkg: go1.15.2.linux-amd64.tar.gz - np_sleep: 30 - zuul_copy_output: - '/home/zuul/np_kubetest.log': 'logs' - '/home/zuul/np_sctp_kubetest.log': 'logs' - voting: false diff --git a/.zuul.d/tempest-jobs.yaml b/.zuul.d/tempest-jobs.yaml new file mode 100644 index 000000000..72107b6e3 --- /dev/null +++ b/.zuul.d/tempest-jobs.yaml @@ -0,0 +1,248 @@ +# Copyright 2018 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- job: + name: kuryr-kubernetes-tempest + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job running kuryr containerized + +- job: + name: kuryr-kubernetes-tempest-ovn-provider-ovn + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes alias for kuryr kubernetes tempest test. + Because of the change we introduced in switching over to Neutron OVN + and Octavia OVN provider, this can be removed after updating + ovn-octavia-provider zuul project. + +- job: + name: kuryr-kubernetes-tempest-systemd + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job using octavia and running kuryr as systemd + services + vars: + devstack_localrc: + KURYR_K8S_CONTAINERIZED_DEPLOYMENT: false + +- job: + name: kuryr-kubernetes-tempest-centos-7 + parent: kuryr-kubernetes-tempest-systemd + nodeset: openstack-centos-7-single-node + voting: false + +- job: + name: kuryr-kubernetes-tempest-defaults + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job running kuryr containerized with OVN, + Octavias amphora, default set of handlers, default SG driver and default + subnet driver. + host-vars: + controller: + devstack_plugins: + octavia: https://opendev.org/openstack/octavia + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin + vars: + devstack_localrc: + KURYR_ENABLED_HANDLERS: '' + KURYR_ENFORCE_SG_RULES: true + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: default + KURYR_K8S_OCTAVIA_MEMBER_MODE: L3 + KURYR_LB_ALGORITHM: ROUND_ROBIN + KURYR_SG_DRIVER: default + KURYR_SUBNET_DRIVER: default + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver' + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_services: + q-trunk: true + o-da: false + voting: true + +- job: + name: kuryr-kubernetes-tempest-ipv6 + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job running kuryr containerized with IPv6 pod + and service networks using OVN and Octavia Amphora + # TODO(gryf): investigate why NP does not work with IPv6 + host-vars: + controller: + devstack_plugins: + octavia: https://opendev.org/openstack/octavia + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin + vars: + devstack_localrc: + KURYR_ENABLED_HANDLERS: '' + KURYR_ENFORCE_SG_RULES: true + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: default + KURYR_IPV6: true + KURYR_K8S_OCTAVIA_MEMBER_MODE: L3 + KURYR_LB_ALGORITHM: ROUND_ROBIN + KURYR_SG_DRIVER: default + KURYR_SUBNET_DRIVER: default + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver' + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_services: + q-trunk: true + o-da: false + voting: false + +- job: + name: kuryr-kubernetes-tempest-ipv6-ovs + parent: kuryr-kubernetes-octavia-base-ovs + description: | + Kuryr-Kubernetes tempest job running kuryr containerized with IPv6 pod + and service networks based on OVS + # TODO(gryf): investigate why NP does not work with IPv6 + vars: + devstack_localrc: + KURYR_ENABLED_HANDLERS: '' + KURYR_IPV6: true + KURYR_SG_DRIVER: default + KURYR_SUBNET_DRIVER: default + devstack_services: + q-trunk: false + voting: false + +- job: + name: kuryr-kubernetes-tempest-dual-stack + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job running kuryr containerized with dual stack + pod and service networks + vars: + devstack_localrc: + KURYR_DUAL_STACK: true + voting: false + +- job: + name: kuryr-kubernetes-tempest-lower-constraints + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job running kuryr containerized with + requirments from lower-constraints.txt + vars: + devstack_localrc: + KURYR_CONTAINERS_USE_LOWER_CONSTRAINTS: true + voting: false + +- job: + name: kuryr-kubernetes-tempest-l2 + parent: kuryr-kubernetes-octavia-base + description: | + Kuryr-Kubernetes tempest job using octavia in l2 mode, kuryr containerized + vars: + devstack_localrc: + KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 + +- job: + name: kuryr-kubernetes-tempest-pools-namespace + parent: kuryr-kubernetes-octavia-base + description: | + Tempest with containers, port pools and namespace subnet driver + vars: + devstack_localrc: + KURYR_SUBNET_DRIVER: namespace + KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer + KURYR_SG_DRIVER: policy + KURYR_USE_PORT_POOLS: true + KURYR_POD_VIF_DRIVER: neutron-vif + KURYR_VIF_POOL_DRIVER: neutron + KURYR_CONFIGMAP_MODIFIABLE: true + +- job: + name: kuryr-kubernetes-tempest-crio + parent: kuryr-kubernetes-octavia-base + vars: + devstack_localrc: + CONTAINER_ENGINE: crio + voting: false + +- job: + name: kuryr-kubernetes-tempest-amphora + parent: kuryr-kubernetes-base-ovn + required-projects: + - openstack/octavia + - openstack/python-octaviaclient + - openstack/octavia-tempest-plugin + pre-run: playbooks/get_amphora_tarball.yaml + host-vars: + controller: + devstack_plugins: + octavia: https://opendev.org/openstack/octavia + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin + vars: + tempest_plugins: + - kuryr-tempest-plugin + - octavia-tempest-plugin + devstack_localrc: + KURYR_ENFORCE_SG_RULES: true + OCTAVIA_AMP_IMAGE_FILE: /tmp/test-only-amphora-x64-haproxy-ubuntu-bionic.qcow2 + OCTAVIA_AMP_IMAGE_NAME: test-only-amphora-x64-haproxy-ubuntu-bionic + OCTAVIA_AMP_IMAGE_SIZE: 3 + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_services: + octavia: true + o-api: true + o-cw: true + o-hk: true + o-hm: true + voting: false + +- job: + name: kuryr-kubernetes-tempest-amphora-ovs + parent: kuryr-kubernetes-octavia-base-ovs + vars: + devstack_localrc: + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: amphora + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver' + voting: false diff --git a/.zuul.d/multinode.yaml b/.zuul.d/tempest-multinode-jobs.yaml similarity index 62% rename from .zuul.d/multinode.yaml rename to .zuul.d/tempest-multinode-jobs.yaml index 6c32e5791..52f83b1e5 100644 --- a/.zuul.d/multinode.yaml +++ b/.zuul.d/tempest-multinode-jobs.yaml @@ -14,9 +14,88 @@ - job: name: kuryr-kubernetes-tempest-multinode - parent: kuryr-kubernetes-tempest + parent: kuryr-kubernetes-octavia-base description: | - Kuryr-Kubernetes tempest multinode job + Kuryr-Kubernetes tempest multinode job with OVN + nodeset: openstack-two-node-focal + host-vars: + controller: + devstack_plugins: + octavia: https://opendev.org/openstack/octavia + octavia-tempest-plugin: https://opendev.org/openstack/octavia-tempest-plugin + group-vars: + subnode: + devstack_plugins: + devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container + kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes + devstack_services: + c-bak: false + c-vol: false + dstat: false + kubernetes-master: false + kubernetes-worker: true + kuryr-daemon: true + kuryr-kubernetes: false + neutron: true + ovn-northd: false + ovn-octavia-provider: true + placement-client: true + q-svc: false + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_localrc: + KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer + KURYR_ENFORCE_SG_RULES: false + KURYR_EP_DRIVER_OCTAVIA_PROVIDER: ovn + KURYR_K8S_OCTAVIA_MEMBER_MODE: L2 + KURYR_LB_ALGORITHM: SOURCE_IP_PORT + KURYR_NEUTRON_DEFAULT_ROUTER: kuryr-router + KURYR_SG_DRIVER: policy + KURYR_SUBNET_DRIVER: namespace + OVN_BRANCH: v20.06.2 + OVN_BUILD_FROM_SOURCE: true + OVN_L3_CREATE_PUBLIC_NETWORK: true + VAR_RUN_PATH: /usr/local/var/run + vars: + tempest_test_regex: '^(kuryr_tempest_plugin.tests.scenario.test_cross_ping_multi_worker.TestCrossPingScenarioMultiWorker)' + devstack_localrc: + KURYR_K8S_MULTI_WORKER_TESTS: true + devstack_local_conf: + post-config: + $OCTAVIA_CONF: + controller_worker: + amp_active_retries: 9999 + api_settings: + enabled_provider_drivers: amphora:'Octavia Amphora driver',ovn:'Octavia OVN driver' + health_manager: + failover_threads: 2 + health_update_threads: 2 + stats_update_threads: 2 + devstack_services: + kubernetes-master: true + kubernetes-worker: false + kuryr-daemon: true + kuryr-kubernetes: true + zuul_copy_output: + '{{ devstack_base_dir }}/data/ovn': 'logs' + '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs' + '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs' + voting: false + +- job: + name: kuryr-kubernetes-tempest-multinode-ovs + parent: kuryr-kubernetes-octavia-base-ovs + description: | + Kuryr-Kubernetes tempest multinode job with OVS nodeset: openstack-two-node-focal group-vars: subnode: @@ -43,97 +122,25 @@ q-ovn-metadata-agent: false q-svc: false devstack_localrc: + KURYR_ENABLED_HANDLERS: vif,endpoints,service,namespace,pod_label,policy,kuryrnetworkpolicy,kuryrnetwork,kuryrport,kuryrloadbalancer + KURYR_ENFORCE_SG_RULES: true + KURYR_SG_DRIVER: policy + KURYR_SUBNET_DRIVER: namespace ML2_L3_PLUGIN: router Q_AGENT: openvswitch Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch,linuxbridge Q_ML2_TENANT_NETWORK_TYPE: vxlan - USE_PYTHON3: true vars: tempest_test_regex: '^(kuryr_tempest_plugin.tests.scenario.test_cross_ping_multi_worker.TestCrossPingScenarioMultiWorker)' - devstack_localrc: - KURYR_K8S_API_URL: "https://${SERVICE_HOST}:${KURYR_K8S_API_PORT}" - KURYR_K8S_MULTI_WORKER_TESTS: True - USE_PYTHON3: true devstack_services: dstat: false kubernetes-master: true kubernetes-worker: false kuryr-daemon: true kuryr-kubernetes: true - voting: false - -- job: - name: kuryr-kubernetes-tempest-multinode-ovn - parent: kuryr-kubernetes-tempest - description: | - Kuryr-Kubernetes tempest multinode job using OVN - nodeset: openstack-two-node-focal - group-vars: - subnode: - devstack_plugins: - devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container - kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes - devstack_services: - c-bak: false - c-vol: false - dstat: false - kubernetes-master: false - kubernetes-worker: true - kuryr-daemon: true - kuryr-kubernetes: false - neutron: true - ovn-controller: true - ovn-northd: false - ovs-vswitchd: true - ovsdb-server: true - placement-client: true - q-agt: false - q-dhcp: false - q-l3: false - q-meta: false - q-ovn-metadata-agent: true - q-svc: false - devstack_localrc: - ML2_L3_PLUGIN: ovn-router,trunk,qos - Q_AGENT: ovn - Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger - Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve - Q_ML2_TENANT_NETWORK_TYPE: geneve - USE_PYTHON3: true - vars: - tempest_test_regex: '^(kuryr_tempest_plugin.tests.scenario.test_cross_ping_multi_worker.TestCrossPingScenarioMultiWorker)' + neutron: true devstack_localrc: - KURYR_K8S_API_URL: "https://${SERVICE_HOST}:${KURYR_K8S_API_PORT}" - KURYR_K8S_MULTI_WORKER_TESTS: True - ML2_L3_PLUGIN: ovn-router,trunk,qos - Q_AGENT: ovn - Q_ML2_PLUGIN_MECHANISM_DRIVERS: ovn,logger - Q_ML2_PLUGIN_TYPE_DRIVERS: local,flat,vlan,geneve - Q_ML2_TENANT_NETWORK_TYPE: geneve - Q_USE_PROVIDERNET_FOR_PUBLIC: true - USE_PYTHON3: true - devstack_services: - dstat: false - kubernetes-master: true - kubernetes-worker: false - kuryr-daemon: true - kuryr-kubernetes: true - ovn-controller: true - ovn-northd: true - ovs-vswitchd: true - ovsdb-server: true - q-agt: false - q-dhcp: false - q-l3: false - q-meta: false - q-ovn-metadata-agent: true - q-qos: true - q-svc: true - q-trunk: true - zuul_copy_output: - '{{ devstack_base_dir }}/data/ovn': 'logs' - '{{ devstack_log_dir }}/ovsdb-server-nb.log': 'logs' - '{{ devstack_log_dir }}/ovsdb-server-sb.log': 'logs' + KURYR_K8S_MULTI_WORKER_TESTS: true voting: false - job: diff --git a/devstack/lib/kuryr_kubernetes b/devstack/lib/kuryr_kubernetes index 3e126702c..077fc358e 100644 --- a/devstack/lib/kuryr_kubernetes +++ b/devstack/lib/kuryr_kubernetes @@ -49,6 +49,7 @@ function ovs_bind_for_kubelet { local service_subnet_cidr local pod_subnet_gw local cidrs + local _sp_id=${KURYR_NEUTRON_DEFAULT_SUBNETPOOL_ID} project_id="$1" port_number="$2" @@ -95,10 +96,31 @@ function ovs_bind_for_kubelet { KURYR_POD_SUBNETS_IDS=(${KURYR_NEUTRON_DEFAULT_POD_SUBNET}-IPv4) fi + if [[ -z ${KURYR_SUBNETPOOLS_IDS} ]]; then + # NOTE(gryf): In case we are missing KURYR_SUBNETPOOLS_IDS variable + # populated, which probably means, that kuryr-kubernetes service is + # not enabled, but if kuryr-daemon service is enabled (which is the + # case for multi node setup, where worker nodes should have it + # enabled), we need to have it filled. + export KURYR_SUBNETPOOLS_IDS=() + export KURYR_ETHERTYPES=() + if [[ "$KURYR_IPV6" == "False" ]]; then + export KURYR_ETHERTYPE=IPv4 + KURYR_ETHERTYPES+=("IPv4") + KURYR_SUBNETPOOLS_IDS+=(${_sp_id:-${SUBNETPOOL_V4_ID}}) + else + KURYR_ETHERTYPES+=("IPv6") + KURYR_SUBNETPOOLS_IDS+=($(openstack \ + --os-cloud devstack-admin \ + --os-region "${REGION_NAME}" \ + subnet pool show ${SUBNETPOOL_KURYR_NAME_V6} -c id -f value)) + fi + fi + for i in "${!KURYR_SERVICE_SUBNETS_IDS[@]}"; do pod_subnet_gw=$(openstack subnet show "${KURYR_POD_SUBNETS_IDS[$i]}" \ -c gateway_ip -f value) - if [[ "$KURYR_SUBNET_DRIVER" == "namespace" ]]; then + if is_service_enabled kuryr-kubernetes && [[ "$KURYR_SUBNET_DRIVER" == "namespace" ]]; then cidrs=$(openstack subnet pool show "${KURYR_SUBNETPOOLS_IDS[$i]}" -c prefixes -f value) subnetpool_cidr=$(python3 -c "print(${cidrs}[0])") sudo ip route add "$subnetpool_cidr" via "$pod_subnet_gw" dev "$ifname"