From 75329362ff3edb1383b7d6e2e8b2a0e1aaa9f971 Mon Sep 17 00:00:00 2001 From: Matthieu Huguet Date: Mon, 13 Jan 2020 16:32:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(playbook)=20avoid=20downtime=20dur?= =?UTF-8?q?ing=20switch=20or=20rollback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current switch_routes ansible task leave the current route in an undefined state for a few seconds when switch or rollback playbooks are executed. --- CHANGELOG.md | 4 ++++ tasks/rollback_routes.yml | 2 ++ tasks/switch_route.yml | 2 ++ tasks/switch_routes.yml | 2 ++ 4 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a5da421f..af41ec81a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ Versioning](http://semver.org/spec/v2.0.0.html). ## Unreleased +### Fixed + +- Avoid downtime during a switch or rollback + ## [4.6.0] - 2020-01-13 ### Added diff --git a/tasks/rollback_routes.yml b/tasks/rollback_routes.yml index db0ef9b27..e76161690 100644 --- a/tasks/rollback_routes.yml +++ b/tasks/rollback_routes.yml @@ -10,9 +10,11 @@ vars: prefix_route_src: "{{ prefix_route.src }}" prefix_route_dest: "{{ prefix_route.dest }}" + update_src: "{{ prefix_route.update_src | default(True)}}" with_items: - src: current dest: next + update_src: False - src: previous dest: current loop_control: diff --git a/tasks/switch_route.yml b/tasks/switch_route.yml index ed372f619..22ef0e4d5 100644 --- a/tasks/switch_route.yml +++ b/tasks/switch_route.yml @@ -20,3 +20,5 @@ vars: prefix: "{{ prefix_route_src }}" tags: switch + when: update_src is defined and update_src == True + diff --git a/tasks/switch_routes.yml b/tasks/switch_routes.yml index 1be9a6777..d5064e714 100644 --- a/tasks/switch_routes.yml +++ b/tasks/switch_routes.yml @@ -10,9 +10,11 @@ vars: prefix_route_src: "{{ prefix_route.src }}" prefix_route_dest: "{{ prefix_route.dest }}" + update_src: "{{ prefix_route.update_src | default(True)}}" with_items: - src: current dest: previous + update_src: False - src: next dest: current loop_control: