summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivano@gnu.org>2017-02-15 10:06:41 +0100
committerGitHub <noreply@github.com>2017-02-15 10:06:41 +0100
commitec7340eb707ca25716b02d06bfb3fc16796aeaca (patch)
tree58689436888a99fec83310d0debee56bdb261ea2 /roles
parent9ab5683896630267fa26f94c2859727227f49a73 (diff)
parente63ff886e7d52470bfc7d8baab2b24766759c166 (diff)
downloadopenshift-ec7340eb707ca25716b02d06bfb3fc16796aeaca.tar.gz
openshift-ec7340eb707ca25716b02d06bfb3fc16796aeaca.tar.bz2
openshift-ec7340eb707ca25716b02d06bfb3fc16796aeaca.tar.xz
openshift-ec7340eb707ca25716b02d06bfb3fc16796aeaca.zip
Merge pull request #3332 from giuseppe/system-containers-ha
system containers: add support for HA deployments
Diffstat (limited to 'roles')
-rw-r--r--roles/openshift_master/tasks/system_container.yml47
-rw-r--r--roles/openshift_master/tasks/systemd_units.yml8
-rw-r--r--roles/openshift_master/vars/main.yml3
-rw-r--r--roles/openshift_node/tasks/node_system_container.yml8
-rw-r--r--roles/openshift_node/tasks/openvswitch_system_container.yml10
-rw-r--r--roles/openshift_node/vars/main.yml2
6 files changed, 65 insertions, 13 deletions
diff --git a/roles/openshift_master/tasks/system_container.yml b/roles/openshift_master/tasks/system_container.yml
index e3e3d7948..a0e1ac75e 100644
--- a/roles/openshift_master/tasks/system_container.yml
+++ b/roles/openshift_master/tasks/system_container.yml
@@ -17,7 +17,8 @@
changed_when: "'Extracting' in update_result.stdout"
when:
- ("master" in result.stdout)
- - (openshift.common.version is defined) and (openshift.common.version == openshift_version) | bool
+ - l_is_same_version
+ - not l_is_ha
- name: Uninstall Master system container package
command: >
@@ -25,12 +26,52 @@
failed_when: False
when:
- ("master" in result.stdout)
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) | bool
+ - not l_is_same_version
+ - not l_is_ha
- name: Install Master system container package
command: >
atomic install --system --name={{ openshift.common.service_type }}-master {{ openshift.common.system_images_registry }}/{{ openshift.master.master_system_image }}:{{ openshift_image_tag }}
when:
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) or ("master" not in result.stdout) | bool
+ - not l_is_same_version or ("master" not in result.stdout) | bool
+ - not l_is_ha
+ notify:
+ - restart master
+
+# HA
+- name: Update Master HA system container package
+ command: >
+ atomic containers update {{ openshift.common.service_type }}-master-{{ item }}
+ register: update_result
+ changed_when: "'Extracting' in update_result.stdout"
+ with_items:
+ - api
+ - controllers
+ when:
+ - ("master" in result.stdout)
+ - l_is_same_version
+ - l_is_ha
+
+- name: Uninstall Master HA system container package
+ command: >
+ atomic uninstall {{ openshift.common.service_type }}-master-{{ item }}
+ failed_when: False
+ with_items:
+ - api
+ - controllers
+ when:
+ - ("master" in result.stdout)
+ - not l_is_same_version
+ - l_is_ha
+
+- name: Install Master HA system container package
+ command: >
+ atomic install --system --set COMMAND={{ item }} --name={{ openshift.common.service_type }}-master-{{ item }} {{ openshift.common.system_images_registry }}/{{ openshift.master.master_system_image }}:{{ openshift_image_tag }}
+ with_items:
+ - api
+ - controllers
+ when:
+ - not l_is_same_version or ("master" not in result.stdout) | bool
+ - l_is_ha
notify:
- restart master
diff --git a/roles/openshift_master/tasks/systemd_units.yml b/roles/openshift_master/tasks/systemd_units.yml
index 4ab98cbbb..506c8b129 100644
--- a/roles/openshift_master/tasks/systemd_units.yml
+++ b/roles/openshift_master/tasks/systemd_units.yml
@@ -27,7 +27,9 @@
template:
src: "master_docker/master.docker.service.j2"
dest: "{{ containerized_svc_dir }}/{{ openshift.common.service_type }}-master.service"
- when: openshift.common.is_containerized | bool and (openshift.master.ha is not defined or not openshift.master.ha | bool and not openshift.common.is_master_system_container | bool)
+ when:
+ - openshift.common.is_containerized | bool and (openshift.master.ha is not defined or not openshift.master.ha) | bool
+ - not openshift.common.is_master_system_container | bool
register: create_master_unit_file
- command: systemctl daemon-reload
@@ -37,7 +39,9 @@
template:
src: "{{ ha_svc_template_path }}/atomic-openshift-master-{{ item }}.service.j2"
dest: "{{ containerized_svc_dir }}/{{ openshift.common.service_type }}-master-{{ item }}.service"
- when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native"
+ when:
+ - openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native"
+ - not openshift.common.is_master_system_container | bool
with_items:
- api
- controllers
diff --git a/roles/openshift_master/vars/main.yml b/roles/openshift_master/vars/main.yml
index 01cd28c66..1e157097d 100644
--- a/roles/openshift_master/vars/main.yml
+++ b/roles/openshift_master/vars/main.yml
@@ -18,3 +18,6 @@ openshift_master_valid_grant_methods:
- auto
- prompt
- deny
+
+l_is_ha: "{{ openshift.master.ha is defined and openshift.master.ha | bool }}"
+l_is_same_version: "{{ (openshift.common.version is defined) and (openshift.common.version == openshift_version) | bool }}"
diff --git a/roles/openshift_node/tasks/node_system_container.yml b/roles/openshift_node/tasks/node_system_container.yml
index 01e2d33c7..3ae5c7600 100644
--- a/roles/openshift_node/tasks/node_system_container.yml
+++ b/roles/openshift_node/tasks/node_system_container.yml
@@ -16,14 +16,16 @@
register: update_result
changed_when: "'Extracting' in update_result.stdout"
when:
- - (openshift.common.version is defined) and (openshift.common.version == openshift_version) and ("node" in result.stdout) | bool
+ - l_is_same_version
+ - ("node" in result.stdout)
- name: Uninstall Node system container package
command: >
atomic uninstall {{ openshift.common.service_type }}-node
failed_when: False
when:
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) and ("node" in result.stdout) | bool
+ - not l_is_same_version
+ - ("node" in result.stdout)
- name: Install Node system container package
command: >
@@ -31,4 +33,4 @@
register: install_node_result
changed_when: "'Extracting' in pull_result.stdout"
when:
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) or ("node" not in result.stdout) | bool
+ - not l_is_same_version or ("node" not in result.stdout) | bool
diff --git a/roles/openshift_node/tasks/openvswitch_system_container.yml b/roles/openshift_node/tasks/openvswitch_system_container.yml
index 47fac99eb..6114230d0 100644
--- a/roles/openshift_node/tasks/openvswitch_system_container.yml
+++ b/roles/openshift_node/tasks/openvswitch_system_container.yml
@@ -9,8 +9,6 @@
command: >
atomic containers list --no-trunc -a -f container=openvswitch
register: result
- when:
- - openshift.common.is_openvswitch_system_container | bool
- name: Update OpenvSwitch system container package
command: >
@@ -18,19 +16,21 @@
register: update_result
changed_when: "'Extracting' in update_result.stdout"
when:
- - (openshift.common.version is defined) and (openshift.common.version == openshift_version) and ("openvswitch" in result.stdout) | bool
+ - l_is_same_version
+ - ("openvswitch" in result.stdout) | bool
- name: Uninstall OpenvSwitch system container package
command: >
atomic uninstall openvswitch
failed_when: False
when:
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) and ("openvswitch" in result.stdout) | bool
+ - not l_is_same_version
+ - ("openvswitch" in result.stdout) | bool
- name: Install OpenvSwitch system container package
command: >
atomic install --system --name=openvswitch {{ openshift.common.system_images_registry }}/{{ openshift.node.ovs_system_image }}:{{ openshift_image_tag }}
when:
- - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) or ("openvswitch" not in result.stdout) | bool
+ - not l_is_same_version or ("openvswitch" not in result.stdout) | bool
notify:
- restart docker
diff --git a/roles/openshift_node/vars/main.yml b/roles/openshift_node/vars/main.yml
new file mode 100644
index 000000000..0c2abf3b9
--- /dev/null
+++ b/roles/openshift_node/vars/main.yml
@@ -0,0 +1,2 @@
+---
+l_is_same_version: "{{ (openshift.common.version is defined) and (openshift.common.version == openshift_version) | bool }}"