diff options
author | Devan Goodwin <dgoodwin@redhat.com> | 2016-11-24 10:00:29 -0400 |
---|---|---|
committer | Devan Goodwin <dgoodwin@redhat.com> | 2016-11-30 09:41:06 -0400 |
commit | 5c24cf417b08e0b427435d1bd5d27a4b03467092 (patch) | |
tree | 0c2250505df4c4f135aba50a67a05f4e0fc26dd7 /roles | |
parent | 4ff3ae5f8e99145a06a0cc9976ec07c008831b65 (diff) | |
download | openshift-5c24cf417b08e0b427435d1bd5d27a4b03467092.tar.gz openshift-5c24cf417b08e0b427435d1bd5d27a4b03467092.tar.bz2 openshift-5c24cf417b08e0b427435d1bd5d27a4b03467092.tar.xz openshift-5c24cf417b08e0b427435d1bd5d27a4b03467092.zip |
Cleanup ovs file and restart docker on every upgrade.
In 3.3 one of our services lays down a systemd drop-in for configuring
Docker networking to use lbr0. In 3.4, this has been changed but the
file must be cleaned up manually by us.
However, after removing the file docker requires a restart. This had big
implications particularly in containerized environments where upgrade is
a very fragile series of upgrading and service restarts.
To avoid double docker restarts, and thus double service restarts in
containerized environments, this change does the following:
- Skip restart during docker upgrade, if it is required. We will restart
on our own later.
- Skip containerized service restarts when we upgrade the services
themselves.
- Clean shutdown of all containerized services.
- Restart Docker. (always, previously this only happened if it needed an
upgrade)
- Ensure all containerized services are restarted.
- Restart rpm node services. (always)
- Mark node schedulable again.
At the end of this process, docker0 should be back on the system.
Diffstat (limited to 'roles')
-rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 1 | ||||
-rw-r--r-- | roles/openshift_node/handlers/main.yml | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 95a9d668a..eb29848ff 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1309,6 +1309,7 @@ def get_openshift_version(facts): # No need to run this method repeatedly on a system if we already know the # version + # TODO: We need a way to force reload this after upgrading bits. if 'common' in facts: if 'version' in facts['common'] and facts['common']['version'] is not None: return chomp_commit_offset(facts['common']['version']) diff --git a/roles/openshift_node/handlers/main.yml b/roles/openshift_node/handlers/main.yml index ebe584588..cb51416d4 100644 --- a/roles/openshift_node/handlers/main.yml +++ b/roles/openshift_node/handlers/main.yml @@ -1,14 +1,14 @@ --- - name: restart openvswitch systemd: name=openvswitch state=restarted - when: not (ovs_service_status_changed | default(false) | bool) and openshift.common.use_openshift_sdn | bool + when: (not skip_node_svc_handlers | default(False) | bool) and not (ovs_service_status_changed | default(false) | bool) and openshift.common.use_openshift_sdn | bool notify: - restart openvswitch pause - name: restart openvswitch pause pause: seconds=15 - when: openshift.common.is_containerized | bool + when: (not skip_node_svc_handlers | default(False) | bool) and openshift.common.is_containerized | bool - name: restart node systemd: name={{ openshift.common.service_type }}-node state=restarted - when: not (node_service_status_changed | default(false) | bool) + when: (not skip_node_svc_handlers | default(False) | bool) and not (node_service_status_changed | default(false) | bool) |