ci: almost done cleanup
diff --git a/roles/defaults/defaults/main.yml b/roles/defaults/defaults/main.yml
index ec0988d..841fdb3 100644
--- a/roles/defaults/defaults/main.yml
+++ b/roles/defaults/defaults/main.yml
@@ -18,5 +18,8 @@
atmosphere_ingress_class_name: atmosphere
atmosphere_ingress_cluster_issuer: atmosphere
+# Network backend
+atmosphere_network_backend: openvswitch
+
# This is for override values in atmosphere_images
atmosphere_image_overrides: {}
diff --git a/roles/keepalived/defaults/main.yml b/roles/keepalived/defaults/main.yml
index ac9309e..dd1e135 100644
--- a/roles/keepalived/defaults/main.yml
+++ b/roles/keepalived/defaults/main.yml
@@ -42,3 +42,15 @@
keepalived_vrid: 51
# ]]]
+
+keepalived_pod_dependency:
+ openvswitch:
+ - requireSameNode: true
+ labels:
+ application: neutron
+ component: neutron-ovs-agent
+ ovn:
+ - requireSameNode: true
+ labels:
+ application: ovn
+ component: ovn-controller
diff --git a/roles/keepalived/tasks/main.yml b/roles/keepalived/tasks/main.yml
index 50eb9d3..4eff179 100644
--- a/roles/keepalived/tasks/main.yml
+++ b/roles/keepalived/tasks/main.yml
@@ -131,7 +131,7 @@
apiVersion: v1
fieldPath: metadata.name
- name: DEPENDENCY_POD_JSON
- value: '[{"labels":{"application":"neutron","component":"neutron-ovs-agent"},"requireSameNode":true}]'
+ value: "{{ keepalived_pod_dependency[atmosphere_network_backend] | to_json }}"
- name: wait-for-ip
image: "{{ atmosphere_images['keepalived'] | vexxhost.kubernetes.docker_image('ref') }}"
command:
diff --git a/roles/neutron/defaults/main.yml b/roles/neutron/defaults/main.yml
index b82e0b6..c7d21b3 100644
--- a/roles/neutron/defaults/main.yml
+++ b/roles/neutron/defaults/main.yml
@@ -19,9 +19,6 @@
neutron_helm_release_namespace: openstack
neutron_helm_values: {}
-# OVN support
-neutron_ovn_enabled: "{{ ovn_enabled | default(false) | bool }}"
-
# List of networks to provision inside OpenStack
neutron_networks: []
diff --git a/roles/neutron/tasks/main.yml b/roles/neutron/tasks/main.yml
index 5853b31..f37f6a5 100644
--- a/roles/neutron/tasks/main.yml
+++ b/roles/neutron/tasks/main.yml
@@ -40,30 +40,10 @@
ansible.builtin.set_fact:
_neutron_helm_values: "{{ __neutron_helm_values }}"
-- name: Add OVN configuration
- when: neutron_ovn_enabled | bool
- block:
- - name: Retrieve OVN Northbound service IP
- kubernetes.core.k8s_info:
- api_version: v1
- kind: Service
- name: ovn-ovsdb-nb
- namespace: "{{ neutron_helm_release_namespace }}"
- register: neutron_ovn_nb_svc
- failed_when: neutron_ovn_nb_svc.resources | length == 0
-
- - name: Retrieve OVN Southbound service IP
- kubernetes.core.k8s_info:
- api_version: v1
- kind: Service
- name: ovn-ovsdb-sb
- namespace: "{{ neutron_helm_release_namespace }}"
- register: neutron_ovn_sb_svc
- failed_when: neutron_ovn_sb_svc.resources | length == 0
-
- - name: Append Helm values
- ansible.builtin.set_fact:
- _neutron_helm_values: "{{ _neutron_helm_values | combine(__neutron_ovn_helm_values, recursive=True) }}"
+- name: Append Helm values
+ when: atmosphere_network_backend == 'ovn'
+ ansible.builtin.set_fact:
+ _neutron_helm_values: "{{ _neutron_helm_values | combine(__neutron_ovn_helm_values, recursive=True) }}"
- name: Deploy Helm chart
run_once: true
diff --git a/roles/neutron/vars/main.yml b/roles/neutron/vars/main.yml
index 6352a03..acae3fc 100644
--- a/roles/neutron/vars/main.yml
+++ b/roles/neutron/vars/main.yml
@@ -16,6 +16,9 @@
endpoints: "{{ openstack_helm_endpoints }}"
images:
tags: "{{ atmosphere_images | vexxhost.atmosphere.openstack_helm_image_tags('neutron') }}"
+ network:
+ backend:
+ - "{{ atmosphere_network_backend }}"
pod:
replicas:
server: 3
@@ -67,9 +70,6 @@
service_ingress_server: false
__neutron_ovn_helm_values:
- network:
- backend:
- - ovn
conf:
neutron:
DEFAULT:
diff --git a/roles/ovn/tasks/main.yml b/roles/ovn/tasks/main.yml
index 307c50e..8c9eb37 100644
--- a/roles/ovn/tasks/main.yml
+++ b/roles/ovn/tasks/main.yml
@@ -14,6 +14,7 @@
- name: Deploy Helm chart
run_once: true
+ when: atmosphere_network_backend == 'ovn'
kubernetes.core.helm:
name: "{{ ovn_helm_release_name }}"
chart_ref: "{{ ovn_helm_chart_ref }}"
diff --git a/roles/tempest/tasks/main.yml b/roles/tempest/tasks/main.yml
index 3a46f9e..254691a 100644
--- a/roles/tempest/tasks/main.yml
+++ b/roles/tempest/tasks/main.yml
@@ -85,7 +85,7 @@
chart_ref: "{{ tempest_helm_chart_ref }}"
release_namespace: "{{ tempest_helm_release_namespace }}"
kubeconfig: /etc/kubernetes/admin.conf
- values: "{{ _tempest_helm_values | combine(tempest_helm_values, recursive=True) }}"
+ values: "{{ _tempest_helm_values | combine(_tempest_network_backend_settings[atmosphere_network_backend], recursive=True) | combine(tempest_helm_values, recursive=True) }}"
wait: true
wait_timeout: 20m
diff --git a/roles/tempest/vars/main.yml b/roles/tempest/vars/main.yml
index c8ab79c..944f021 100644
--- a/roles/tempest/vars/main.yml
+++ b/roles/tempest/vars/main.yml
@@ -63,3 +63,48 @@
# NOTE(mnaser): Heat uses the catalog and blindly adds a /v3 to the end of
# the endpoint. This is a workaround to make it work.
default: /v3
+
+_tempest_network_backend_settings:
+ openvswitch: {}
+ ovn:
+ conf:
+ tempest:
+ network-feature-enabled:
+ api_extensions:
+ - default-subnetpools
+ - network-ip-availability
+ - network_availability_zone
+ - auto-allocated-topology
+ - ext-gw-mode
+ - binding
+ - agent
+ - subnet_allocation
+ - tag
+ - external-net
+ - flavors
+ - net-mtu
+ - availability_zone
+ - quotas
+ - l3-ha
+ - provider
+ - multi-provider
+ - address-scope
+ - extraroute
+ - subnet-service-types
+ - standard-attr-timestamp
+ - service-type
+ - l3-flavors
+ - port-security
+ - extra_dhcp_opt
+ - standard-attr-revisions
+ - pagination
+ - sorting
+ - security-group
+ - dhcp_agent_scheduler
+ - router_availability_zone
+ - rbac-policies
+ - standard-attr-description
+ - router
+ - allowed-address-pairs
+ - project-id
+ - dvr