Browse Source

Adding logic to disable and reenable external communication to ES during full restart

Eric Wolinetz 7 years ago
parent
commit
ceca2f9a8c

+ 0 - 2
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

+ 35 - 0
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