summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2017-02-10 15:24:53 +0100
committerGiuseppe Scrivano <gscrivan@redhat.com>2017-02-10 17:23:43 +0100
commit4c47f15b8a1328528cd6365b2d05578ab7fc1439 (patch)
tree3f65c33a3ca55743fa2225891006fcd64fea1420
parent094fd21ceab111900c518dfad874b434c81e62ee (diff)
downloadopenshift-4c47f15b8a1328528cd6365b2d05578ab7fc1439.tar.gz
openshift-4c47f15b8a1328528cd6365b2d05578ab7fc1439.tar.bz2
openshift-4c47f15b8a1328528cd6365b2d05578ab7fc1439.tar.xz
openshift-4c47f15b8a1328528cd6365b2d05578ab7fc1439.zip
master: support HA deployments with system containers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r--roles/openshift_master/tasks/system_container.yml41
-rw-r--r--roles/openshift_master/tasks/systemd_units.yml8
2 files changed, 47 insertions, 2 deletions
diff --git a/roles/openshift_master/tasks/system_container.yml b/roles/openshift_master/tasks/system_container.yml
index e3e3d7948..90cbc243d 100644
--- a/roles/openshift_master/tasks/system_container.yml
+++ b/roles/openshift_master/tasks/system_container.yml
@@ -18,6 +18,7 @@
when:
- ("master" in result.stdout)
- (openshift.common.version is defined) and (openshift.common.version == openshift_version) | bool
+ - openshift.master.ha is not defined or not openshift.master.ha | bool
- name: Uninstall Master system container package
command: >
@@ -26,11 +27,51 @@
when:
- ("master" in result.stdout)
- (openshift.common.version is not defined) or (openshift.common.version != openshift_version) | bool
+ - openshift.master.ha is not defined or not openshift.master.ha | bool
- 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
+ - openshift.master.ha is not defined or not openshift.master.ha | bool
+ 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)
+ - (openshift.common.version is defined) and (openshift.common.version == openshift_version) | bool
+ - openshift.master.ha is defined and openshift.master.ha | bool
+
+- 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)
+ - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) | bool
+ - openshift.master.ha is defined and openshift.master.ha | bool
+
+- 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:
+ - (openshift.common.version is not defined) or (openshift.common.version != openshift_version) or ("master" not in result.stdout) | bool
+ - openshift.master.ha is defined and openshift.master.ha | bool
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