aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2026-10-28 22:43:47 +0000
committerGerrit Code Review <review@openstack.org>2026-10-28 22:43:47 +0000
commit68e00c7dd49073d6e7ca61fac206a487e5dfd767 (patch)
tree2649accb096e80f00c206d50fe820028f7067ffb
parente493f2ed76a55a1e8e107c7f63d4803388feca2c (diff)
parent487d3037eeabf04ec034ce60f202b50f82c841e4 (diff)
downloadkolla-ansible-68e00c7dd49073d6e7ca61fac206a487e5dfd767.tar.gz
kolla-ansible-68e00c7dd49073d6e7ca61fac206a487e5dfd767.zip
Merge "neutron: Remove neutron-ovn-metadata-agent"
-rw-r--r--ansible/inventory/all-in-one4
-rw-r--r--ansible/inventory/multinode4
-rw-r--r--ansible/roles/neutron/defaults/main.yml47
-rw-r--r--ansible/roles/neutron/handlers/main.yml18
-rw-r--r--ansible/roles/neutron/tasks/config.yml14
-rw-r--r--ansible/roles/neutron/tasks/rolling_upgrade.yml33
-rw-r--r--ansible/roles/neutron/templates/neutron-ovn-metadata-agent.json.j253
-rw-r--r--ansible/roles/neutron/templates/neutron_ovn_metadata_agent.ini.j219
-rw-r--r--ansible/site.yml1
-rw-r--r--releasenotes/notes/drop-neutron-ovn-metadata-agent-24b72a043698a3b2.yaml7
-rw-r--r--tests/templates/inventory.j23
11 files changed, 43 insertions, 160 deletions
diff --git a/ansible/inventory/all-in-one b/ansible/inventory/all-in-one
index 543371a4a..98607c2ee 100644
--- a/ansible/inventory/all-in-one
+++ b/ansible/inventory/all-in-one
@@ -251,10 +251,6 @@ network
[neutron-ovn-maintenance-worker:children]
control
-[neutron-ovn-metadata-agent:children]
-compute
-network
-
# Cinder
[cinder-api:children]
cinder
diff --git a/ansible/inventory/multinode b/ansible/inventory/multinode
index d7db4653d..a0dd8d640 100644
--- a/ansible/inventory/multinode
+++ b/ansible/inventory/multinode
@@ -266,10 +266,6 @@ network
[neutron-ovn-maintenance-worker:children]
control
-[neutron-ovn-metadata-agent:children]
-compute
-network
-
[neutron-ovn-vpn-agent:children]
neutron
diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml
index 059f2ce6a..3b0e5c835 100644
--- a/ansible/roles/neutron/defaults/main.yml
+++ b/ansible/roles/neutron/defaults/main.yml
@@ -153,21 +153,6 @@ neutron_services:
volumes: "{{ neutron_metadata_agent_default_volumes + neutron_metadata_agent_extra_volumes }}"
dimensions: "{{ neutron_metadata_agent_dimensions }}"
healthcheck: "{{ neutron_metadata_agent_healthcheck }}"
- neutron-ovn-metadata-agent:
- cgroupns_mode: "{{ 'host' if neutron_agents_wrappers | bool else 'private' }}"
- container_name: "neutron_ovn_metadata_agent"
- image: "{{ neutron_ovn_metadata_agent_image_full }}"
- privileged: true
- enabled: false
- host_in_groups: "{{ inventory_hostname in groups['neutron-ovn-metadata-agent'] }}"
- volumes: "{{ neutron_ovn_metadata_agent_default_volumes + neutron_ovn_metadata_agent_extra_volumes }}"
- dimensions: "{{ neutron_ovn_metadata_agent_dimensions }}"
- healthcheck: "{{ neutron_ovn_metadata_agent_healthcheck }}"
- pid_mode: "{{ 'host' if neutron_agents_wrappers | bool else '' }}"
- environment:
- KOLLA_IMAGE: "{{ neutron_ovn_metadata_agent_image_full }}"
- KOLLA_NAME: "neutron_ovn_metadata_agent"
- KOLLA_NEUTRON_WRAPPERS: "{{ 'true' if neutron_agents_wrappers | bool else 'false' }}"
neutron-bgp-dragent:
container_name: "neutron_bgp_dragent"
image: "{{ neutron_bgp_dragent_image_full }}"
@@ -255,8 +240,6 @@ neutron_config_validation:
config: "/etc/neutron/plugins/ml2/openvswitch_agent.ini"
- generator: "/neutron/etc/oslo-config-generator/metering_agent.ini"
config: "/etc/neutron/metering_agent.ini"
- - generator: "/neutron/etc/oslo-config-generator/neutron_ovn_metadata_agent.ini"
- config: "/etc/neutron/neutron_ovn_metadata_agent.ini"
- generator: "/neutron/etc/oslo-config-generator/metadata_agent.ini"
config: "/etc/neutron/metadata_agent.ini"
- generator: "/neutron/etc/oslo-config-generator/sriov_agent.ini"
@@ -336,10 +319,6 @@ neutron_ovn_maintenance_worker_image: "{{ neutron_server_image }}"
neutron_ovn_maintenance_worker_tag: "{{ neutron_tag }}"
neutron_ovn_maintenance_worker_image_full: "{{ neutron_ovn_maintenance_worker_image }}:{{ neutron_ovn_maintenance_worker_tag }}"
-neutron_ovn_metadata_agent_image: "{{ docker_image_url }}neutron-metadata-agent"
-neutron_ovn_metadata_agent_tag: "{{ neutron_tag }}"
-neutron_ovn_metadata_agent_image_full: "{{ neutron_ovn_metadata_agent_image }}:{{ neutron_ovn_metadata_agent_tag }}"
-
neutron_openvswitch_agent_image: "{{ docker_image_url }}neutron-openvswitch-agent"
neutron_openvswitch_agent_tag: "{{ neutron_tag }}"
neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}"
@@ -384,7 +363,6 @@ neutron_sriov_agent_dimensions: "{{ neutron_agent_dimensions }}"
neutron_mlnx_agent_dimensions: "{{ neutron_agent_dimensions }}"
neutron_eswitchd_dimensions: "{{ neutron_agent_dimensions }}"
neutron_metadata_agent_dimensions: "{{ neutron_agent_dimensions }}"
-neutron_ovn_metadata_agent_dimensions: "{{ neutron_agent_dimensions }}"
neutron_openvswitch_agent_dimensions: "{{ neutron_agent_dimensions }}"
neutron_server_dimensions: "{{ default_container_dimensions }}"
neutron_bgp_dragent_dimensions: "{{ default_container_dimensions }}"
@@ -461,19 +439,6 @@ neutron_openvswitch_agent_healthcheck:
test: "{% if neutron_openvswitch_agent_enable_healthchecks | bool %}{{ neutron_openvswitch_agent_healthcheck_test }}{% else %}NONE{% endif %}"
timeout: "{{ neutron_openvswitch_agent_healthcheck_timeout }}"
-neutron_ovn_metadata_agent_enable_healthchecks: "{{ enable_container_healthchecks }}"
-neutron_ovn_metadata_agent_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
-neutron_ovn_metadata_agent_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
-neutron_ovn_metadata_agent_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}"
-neutron_ovn_metadata_agent_healthcheck_test: ["CMD-SHELL", "healthcheck_port neutron-ovn-metadata-agent {{ ovsdb_port }}"]
-neutron_ovn_metadata_agent_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}"
-neutron_ovn_metadata_agent_healthcheck:
- interval: "{{ neutron_ovn_metadata_agent_healthcheck_interval }}"
- retries: "{{ neutron_ovn_metadata_agent_healthcheck_retries }}"
- start_period: "{{ neutron_ovn_metadata_agent_healthcheck_start_period }}"
- test: "{% if neutron_ovn_metadata_agent_enable_healthchecks | bool %}{{ neutron_ovn_metadata_agent_healthcheck_test }}{% else %}NONE{% endif %}"
- timeout: "{{ neutron_ovn_metadata_agent_healthcheck_timeout }}"
-
neutron_server_enable_healthchecks: "{{ enable_container_healthchecks }}"
neutron_server_healthcheck_interval: "{{ default_container_healthcheck_interval }}"
neutron_server_healthcheck_retries: "{{ default_container_healthcheck_retries }}"
@@ -625,17 +590,6 @@ neutron_metadata_agent_default_volumes:
- "kolla_logs:/var/log/kolla/"
- "{{ '/dev/shm:/dev/shm' }}"
- "{{ kolla_dev_repos_directory ~ '/neutron:/dev-mode/neutron' if neutron_dev_mode | bool else '' }}"
-neutron_ovn_metadata_agent_default_volumes:
- - "{{ node_config_directory }}/neutron-ovn-metadata-agent/:{{ container_config_directory }}/:ro"
- - "neutron_metadata_socket:/var/lib/neutron/kolla/"
- - "/run/openvswitch:/run/openvswitch:shared"
- - "/run/netns:/run/netns:shared"
- - "kolla_logs:/var/log/kolla/"
- - "{{ '/dev/shm:/dev/shm' }}"
- - "{{ kolla_dev_repos_directory ~ '/neutron:/dev-mode/neutron' if neutron_dev_mode | bool else '' }}"
- - "{{ '/var/run/docker.sock:/var/run/docker.sock:ro' if neutron_agents_wrappers | bool and kolla_container_engine == 'docker' else '' }}"
- - "{{ '/run/podman/podman.sock:/run/podman/podman.sock' if neutron_agents_wrappers | bool and kolla_container_engine == 'podman' else '' }}"
- - "{{ '/var/lib/containers:/var/lib/containers' if neutron_agents_wrappers | bool and kolla_container_engine == 'podman' else '' }}"
neutron_openvswitch_agent_default_volumes:
- "{{ node_config_directory }}/neutron-openvswitch-agent/:{{ container_config_directory }}/:ro"
- "/lib/modules:/lib/modules:ro"
@@ -694,7 +648,6 @@ neutron_sriov_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_mlnx_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_eswitchd_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_metadata_agent_extra_volumes: "{{ neutron_extra_volumes }}"
-neutron_ovn_metadata_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_openvswitch_agent_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_server_extra_volumes: "{{ neutron_extra_volumes }}"
neutron_bgp_dragent_extra_volumes: "{{ neutron_extra_volumes }}"
diff --git a/ansible/roles/neutron/handlers/main.yml b/ansible/roles/neutron/handlers/main.yml
index 4fa023096..d9e8fb0b3 100644
--- a/ansible/roles/neutron/handlers/main.yml
+++ b/ansible/roles/neutron/handlers/main.yml
@@ -236,24 +236,6 @@
privileged: "{{ service.privileged | default(False) }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
-- name: Restart neutron-ovn-metadata-agent container
- vars:
- service_name: "neutron-ovn-metadata-agent"
- service: "{{ neutron_services[service_name] }}"
- become: true
- kolla_container:
- action: "recreate_or_restart_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ service.container_name }}"
- image: "{{ service.image }}"
- volumes: "{{ service.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ service.dimensions }}"
- privileged: "{{ service.privileged | default(False) }}"
- healthcheck: "{{ service.healthcheck | default(omit) }}"
- pid_mode: "{{ service.pid_mode | default(omit) }}"
- cgroupns_mode: "{{ service.cgroupns_mode | default(omit) }}"
- environment: "{{ service.environment | default(omit) }}"
-
- name: Restart neutron-bgp-dragent container
vars:
service_name: "neutron-bgp-dragent"
diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml
index 379750a66..212029cd3 100644
--- a/ansible/roles/neutron/tasks/config.yml
+++ b/ansible/roles/neutron/tasks/config.yml
@@ -75,7 +75,6 @@
- "neutron-openvswitch-agent"
- "neutron-ovn-agent"
- "neutron-ovn-maintenance-worker"
- - "neutron-ovn-metadata-agent"
- "neutron-ovn-vpn-agent"
- "neutron-periodic-worker"
- "neutron-rpc-server"
@@ -282,19 +281,6 @@
mode: "0660"
when: service | service_enabled_and_mapped_to_host
-- name: Copying over neutron_ovn_metadata_agent.ini
- become: true
- vars:
- service_name: "neutron-ovn-metadata-agent"
- service: "{{ neutron_services[service_name] }}"
- merge_configs:
- sources:
- - "{{ role_path }}/templates/neutron_ovn_metadata_agent.ini.j2"
- - "{{ node_custom_config }}/neutron/neutron_ovn_metadata_agent.ini"
- dest: "{{ node_config_directory }}/{{ service_name }}/neutron_ovn_metadata_agent.ini"
- mode: "0660"
- when: service | service_enabled_and_mapped_to_host
-
- name: Copying over neutron_ovn_vpn_agent.ini
become: true
vars:
diff --git a/ansible/roles/neutron/tasks/rolling_upgrade.yml b/ansible/roles/neutron/tasks/rolling_upgrade.yml
index 55f3cd35f..aac2040a6 100644
--- a/ansible/roles/neutron/tasks/rolling_upgrade.yml
+++ b/ansible/roles/neutron/tasks/rolling_upgrade.yml
@@ -1,4 +1,37 @@
---
+# TODO: Remove this block in 2027.2
+- name: Clean up obsolete neutron OVN metadata agent
+ become: true
+ when: neutron_plugin_agent == 'ovn'
+ block:
+ - name: Remove obsolete neutron OVN metadata agent container
+ kolla_container:
+ action: "stop_and_remove_container"
+ common_options: "{{ docker_common_options }}"
+ name: "neutron_ovn_metadata_agent"
+ ignore_missing: true
+
+ - name: Get container names for obsolete OVN metadata HAProxy cleanup
+ kolla_container_facts:
+ action: get_containers_names
+ container_engine: "{{ kolla_container_engine }}"
+ register: ovn_metadata_haproxy_containers
+
+ - name: Remove obsolete neutron OVN metadata agent HAProxy containers
+ kolla_container:
+ action: "stop_and_remove_container"
+ common_options: "{{ docker_common_options }}"
+ name: "{{ item }}"
+ ignore_missing: true
+ loop: >-
+ {{ ovn_metadata_haproxy_containers.container_names | default([])
+ | select('match', '^neutron_ovn_metadata_agent_haproxy_') | list }}
+
+ - name: Remove obsolete neutron OVN metadata agent configuration
+ ansible.builtin.file:
+ path: "{{ node_config_directory }}/neutron-ovn-metadata-agent"
+ state: absent
+
- name: Import tasks from config-host.yml
ansible.builtin.import_tasks: config-host.yml
diff --git a/ansible/roles/neutron/templates/neutron-ovn-metadata-agent.json.j2 b/ansible/roles/neutron/templates/neutron-ovn-metadata-agent.json.j2
deleted file mode 100644
index a725d9bcb..000000000
--- a/ansible/roles/neutron/templates/neutron-ovn-metadata-agent.json.j2
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "command": "neutron-ovn-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/neutron_ovn_metadata_agent.ini",
- "config_files": [
- {
- "source": "{{ container_config_directory }}/neutron.conf",
- "dest": "/etc/neutron/neutron.conf",
- "owner": "neutron",
- "perm": "0600"
- },
- {
- "source": "{{ container_config_directory }}/neutron_ovn_metadata_agent.ini",
- "dest": "/etc/neutron/neutron_ovn_metadata_agent.ini",
- "owner": "neutron",
- "perm": "0600"
- }
- {% if neutron_policy_file is defined %},{
- "source": "{{ container_config_directory }}/{{ neutron_policy_file }}",
- "dest": "/etc/neutron/{{ neutron_policy_file }}",
- "owner": "neutron",
- "perm": "0600"
- }{% endif %}{% if kolla_copy_ca_into_containers | bool %},
- {
- "source": "{{ container_config_directory }}/ca-certificates",
- "dest": "/var/lib/kolla/share/ca-certificates",
- "owner": "root",
- "perm": "0644"
- }{% endif %}
- ],
- "directories": [
- {
- "path": "/var/log/kolla",
- "owner": "fluentd:kolla",
- "perm": "2775"
- },
- {
- "path": "/var/log/kolla/neutron",
- "owner": "neutron:kolla",
- "perm": "2775"
- }
- ],
- "permissions": [
- {
- "path": "/var/log/kolla/neutron/*.log",
- "owner": "neutron:kolla",
- "perm": "0664"
- },
- {
- "path": "/var/lib/neutron/kolla",
- "owner": "neutron:neutron",
- "recurse": true
- }
- ]
-}
diff --git a/ansible/roles/neutron/templates/neutron_ovn_metadata_agent.ini.j2 b/ansible/roles/neutron/templates/neutron_ovn_metadata_agent.ini.j2
deleted file mode 100644
index 2ffe61d26..000000000
--- a/ansible/roles/neutron/templates/neutron_ovn_metadata_agent.ini.j2
+++ /dev/null
@@ -1,19 +0,0 @@
-[DEFAULT]
-auth_ca_cert = {{ openstack_cacert }}
-nova_metadata_protocol = {{ internal_protocol }}
-metadata_proxy_socket = /var/lib/neutron/kolla/metadata_proxy
-nova_metadata_host = {{ nova_internal_fqdn }}
-nova_metadata_port = {{ nova_metadata_port }}
-metadata_proxy_shared_secret = {{ metadata_secret }}
-log_file = neutron-ovn-metadata-agent.log
-log_dir = /var/log/kolla/neutron
-metadata_workers = 2
-
-[ovs]
-ovsdb_connection = tcp:127.0.0.1:{{ ovsdb_port }}
-ovsdb_timeout = {{ ovsdb_timeout }}
-
-[ovn]
-ovn_nb_connection = {{ ovn_nb_connection }}
-ovn_sb_connection = {{ ovn_sb_connection }}
-ovn_metadata_enabled = true
diff --git a/ansible/site.yml b/ansible/site.yml
index d95f17d35..a694b566c 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -689,7 +689,6 @@
- neutron-l3-agent
- ironic-neutron-agent
- neutron-metadata-agent
- - neutron-ovn-metadata-agent
- neutron-metering-agent
- neutron-bgp-dragent
- compute
diff --git a/releasenotes/notes/drop-neutron-ovn-metadata-agent-24b72a043698a3b2.yaml b/releasenotes/notes/drop-neutron-ovn-metadata-agent-24b72a043698a3b2.yaml
new file mode 100644
index 000000000..f25f279aa
--- /dev/null
+++ b/releasenotes/notes/drop-neutron-ovn-metadata-agent-24b72a043698a3b2.yaml
@@ -0,0 +1,7 @@
+---
+upgrade:
+ - |
+ ``neutron-ovn-metadata-agent`` has been removed, following it's removal
+ in Neutron. Metadata is now served using ``neutron-ovn-agent``.
+ If you are using any config overrides for ``neutron-ovn-metadata-agent``
+ you need to adapt them to point to ``neutron-ovn-agent``.
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index bc8a0366f..52ba3edfa 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -356,9 +356,12 @@ network
[neutron-ovn-maintenance-worker:children]
control
+{# TODO: Remove this in 2027.2 #}
+{% if is_upgrade | bool %}
[neutron-ovn-metadata-agent:children]
compute
network
+{% endif %}
[neutron-ovn-vpn-agent:children]
neutron