summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Libosvar <libosvar@redhat.com>2023-01-18 17:07:16 -0500
committerJakub Libosvar <libosvar@redhat.com>2023-01-18 17:07:16 -0500
commitfeb9f2b21ca706870c38e73ad451613f4e34e9f5 (patch)
treef502eef91bfc546f41fd0f47493847923f4f128f
parentb71b25820be6d61ed9f249eddf32bfa49ac76524 (diff)
downloadneutron-feb9f2b21ca706870c38e73ad451613f4e34e9f5.tar.gz
ovn-migration: Stop neutron server while running db sync
The patch stops all running neutron-server processes before syncing database from Neutron to OVN. Then it creates a new container to execute the sync in and after it is done the container is removed. Change-Id: Ifa439a536572efb72ccefde128fa186fc2f73bef
-rw-r--r--tools/ovn_migration/tripleo_environment/playbooks/roles/migration/defaults/main.yml1
-rw-r--r--tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/main.yml1
-rw-r--r--tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/sync-dbs.yml42
3 files changed, 29 insertions, 15 deletions
diff --git a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/defaults/main.yml b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/defaults/main.yml
index ce745eda18..13b5565f5f 100644
--- a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/defaults/main.yml
+++ b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/defaults/main.yml
@@ -2,3 +2,4 @@
tunnel_bridge: "br-tun"
ovn_bridge: "br-int"
+ovn_db_sync_container: "neutron-ovn-db-sync"
diff --git a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/main.yml b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/main.yml
index f05fad71b3..20f61002f1 100644
--- a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/main.yml
+++ b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/main.yml
@@ -2,7 +2,6 @@
- include_tasks: clone-dataplane.yml
- include_tasks: sync-dbs.yml
- when: ovn_central is defined
- include_tasks: activate-ovn.yml
diff --git a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/sync-dbs.yml b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/sync-dbs.yml
index 24a6910959..4e3b629420 100644
--- a/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/sync-dbs.yml
+++ b/tools/ovn_migration/tripleo_environment/playbooks/roles/migration/tasks/sync-dbs.yml
@@ -1,20 +1,34 @@
---
-- name: Get the neutron container ID
- shell:
- podman ps --filter "name=neutron_api" --format {% raw %}"{{.ID}}"{% endraw %}
- register: neutron_id
+- name: stop neutron_api containers
+ ansible.builtin.systemd:
+ name: tripleo_neutron_api
+ state: stopped
-- name: Sync neutron db with OVN db (container) - Run 1
- command: podman exec "{{ neutron_id.stdout }}"
- neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf
- --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
- --ovn-neutron_sync_mode migrate
+- name: get neutron_server image url
+ command: podman ps -a --filter "name=neutron_api" --format {% raw %}"{{.Image}}"{% endraw %}
+ register: neutron_server_image
-- name: Sync neutron db with OVN db (container) - Run 2
- command: podman exec "{{ neutron_id.stdout }}"
- neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf
- --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
- --ovn-neutron_sync_mode migrate
+- name: sync neutron db with OVN db
+ command: podman run --name {{ ovn_db_sync_container }}
+ -v /var/log/containers/neutron:/var/log/neutron:Z
+ -v /var/lib/config-data/puppet-generated/neutron/etc/neutron:/etc/neutron:Z
+ --privileged=True --network host --user root
+ {{ neutron_server_image.stdout }}
+ neutron-ovn-db-sync-util --config-file /etc/neutron/neutron.conf
+ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
+ --log-file /var/log/neutron/neutron-db-sync.log
+ --ovn-neutron_sync_mode migrate
+ --debug
+ when: ovn_central is defined
+
+- name: remove db-sync container
+ command: podman rm -f {{ ovn_db_sync_container }}
+ when: ovn_central is defined
+
+- name: start neutron_api containers
+ ansible.builtin.systemd:
+ name: tripleo_neutron_api
+ state: started
- name: Pause and let ovn-controllers settle before doing the final activation (5 minute)
pause: minutes=5