From ceca2f9a8cbc11095c2fac20fcc789a61c424098 Mon Sep 17 00:00:00 2001
From: Eric Wolinetz <ewolinet@redhat.com>
Date: Thu, 4 Jan 2018 11:53:46 -0600
Subject: Adding logic to disable and reenable external communication to ES
 during full restart

---
 .../tasks/main.yaml                                |  2 --
 .../tasks/restart_cluster.yml                      | 35 ++++++++++++++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)

(limited to 'roles')

diff --git a/roles/openshift_logging_elasticsearch/tasks/main.yaml b/roles/openshift_logging_elasticsearch/tasks/main.yaml
index 32e0c5471..39c7dd66f 100644
--- a/roles/openshift_logging_elasticsearch/tasks/main.yaml
+++ b/roles/openshift_logging_elasticsearch/tasks/main.yaml
@@ -36,14 +36,12 @@
     full_restart_cluster: True
   when:
     - _es_installed_version is defined
-    - __es_version.split('.')[0] | int >= 5
     - _es_installed_version.split('.')[0] | int < __es_version.split('.')[0] | int
 
 - set_fact:
     full_restart_cluster: True
   when:
     - _es_ops_installed_version is defined
-    - __es_version.split('.')[0] | int >= 5
     - _es_ops_installed_version.split('.')[0] | int < __es_version.split('.')[0] | int
 
 # allow passing in a tempdir
diff --git a/roles/openshift_logging_elasticsearch/tasks/restart_cluster.yml b/roles/openshift_logging_elasticsearch/tasks/restart_cluster.yml
index be43357b1..d55beec86 100644
--- a/roles/openshift_logging_elasticsearch/tasks/restart_cluster.yml
+++ b/roles/openshift_logging_elasticsearch/tasks/restart_cluster.yml
@@ -1,4 +1,22 @@
 ---
+# Disable external communication for {{ _cluster_component }}
+- name: Disable external communication for logging-{{ _cluster_component }}
+  oc_service:
+    state: present
+    name: "logging-{{ _cluster_component }}"
+    namespace: "{{ openshift_logging_elasticsearch_namespace }}"
+    selector:
+      component: "{{ _cluster_component }}"
+      provider: openshift
+      connection: blocked
+    labels:
+      logging-infra: 'support'
+    ports:
+      - port: 9200
+        targetPort: "restapi"
+  when:
+    - full_restart_cluster | bool
+
 ## get all pods for the cluster
 - command: >
     oc get pod -l component={{ _cluster_component }},provider=openshift -n {{ openshift_logging_elasticsearch_namespace }} -o jsonpath={.items[*].metadata.name}
@@ -54,3 +72,20 @@
     oc exec {{ _cluster_pods.stdout.split(' ')[0] }} -c elasticsearch -n {{ openshift_logging_elasticsearch_namespace }} -- {{ __es_local_curl }} -XPUT 'https://localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "all" } }'
   register: _enable_output
   changed_when: "'\"acknowledged\":true' in _enable_output.stdout"
+
+# Reenable external communication for {{ _cluster_component }}
+- name: Reenable external communication for logging-{{ _cluster_component }}
+  oc_service:
+    state: present
+    name: "logging-{{ _cluster_component }}"
+    namespace: "{{ openshift_logging_elasticsearch_namespace }}"
+    selector:
+      component: "{{ _cluster_component }}"
+      provider: openshift
+    labels:
+      logging-infra: 'support'
+    ports:
+      - port: 9200
+        targetPort: "restapi"
+  when:
+    - full_restart_cluster | bool
-- 
cgit v1.2.3