install_elasticsearch.yaml 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. ---
  2. - name: Getting current ES deployment size
  3. set_fact: openshift_logging_current_es_size={{ openshift_logging_facts.elasticsearch.deploymentconfigs.keys() | length }}
  4. - set_fact: openshift_logging_es_pvc_prefix="logging-es"
  5. when: "not openshift_logging_es_pvc_prefix or openshift_logging_es_pvc_prefix == ''"
  6. - set_fact: es_pvc_pool={{[]}}
  7. - set_fact: openshift_logging_es_pvc_prefix="{{ openshift_logging_es_pvc_prefix | default('logging-es') }}"
  8. - name: Generate PersistentVolumeClaims
  9. include: "{{ role_path}}/tasks/generate_pvcs.yaml"
  10. vars:
  11. es_pv_selector: "{{openshift_logging_es_pv_selector}}"
  12. es_pvc_dynamic: "{{openshift_logging_es_pvc_dynamic | bool}}"
  13. es_pvc_names: "{{openshift_logging_facts.elasticsearch.pvcs.keys()}}"
  14. es_pvc_prefix: "{{openshift_logging_es_pvc_prefix}}"
  15. es_pvc_size: "{{openshift_logging_es_pvc_size}}"
  16. es_dc_names: "{{openshift_logging_facts.elasticsearch.deploymentconfigs.keys()}}"
  17. es_cluster_size: "{{openshift_logging_es_cluster_size}}"
  18. es_access_modes: "{{ openshift_logging_storage_access_modes }}"
  19. # we should initialize the es_dc_pool with the current keys
  20. - name: Init pool of DeploymentConfig names for Elasticsearch
  21. set_fact: es_dc_pool={{ es_dc_pool | default([]) + [deploy_name] }}
  22. with_items: "{{ openshift_logging_facts.elasticsearch.deploymentconfigs.keys() }}"
  23. loop_control:
  24. loop_var: deploy_name
  25. # This should be used to generate new DC names if necessary
  26. - name: Create new DeploymentConfig names for Elasticsearch
  27. set_fact: es_dc_pool={{es_dc_pool|default([]) + [deploy_name]}}
  28. vars:
  29. component: es
  30. es_cluster_name: "{{component}}"
  31. deploy_name_prefix: "logging-{{component}}"
  32. deploy_name: "{{deploy_name_prefix}}-{{'abcdefghijklmnopqrstuvwxyz0123456789'|random_word(8)}}"
  33. with_sequence: count={{ openshift_logging_es_cluster_size | int - openshift_logging_current_es_size | int }}
  34. check_mode: no
  35. - name: Generate Elasticsearch DeploymentConfig
  36. template: src=es.j2 dest={{mktemp.stdout}}/templates/logging-{{deploy_name}}-dc.yaml
  37. vars:
  38. component: es
  39. logging_component: elasticsearch
  40. deploy_name_prefix: "logging-{{component}}"
  41. image: "{{openshift_logging_image_prefix}}logging-elasticsearch:{{openshift_logging_image_version}}"
  42. es_cluster_name: "{{component}}"
  43. es_cpu_limit: "{{openshift_logging_es_cpu_limit }}"
  44. es_memory_limit: "{{openshift_logging_es_memory_limit}}"
  45. pvc_claim: "{{(es_pvc_pool | length > item.0) | ternary(es_pvc_pool[item.0], None)}}"
  46. deploy_name: "{{item.1}}"
  47. es_node_selector: "{{openshift_logging_es_nodeselector | default({}) }}"
  48. es_storage: "{{openshift_logging_facts|es_storage(deploy_name, pvc_claim)}}"
  49. es_number_of_shards: "{{ openshift_logging_es_number_of_shards }}"
  50. es_number_of_replicas: "{{ openshift_logging_es_number_of_replicas }}"
  51. with_indexed_items:
  52. - "{{ es_dc_pool }}"
  53. check_mode: no
  54. changed_when: no
  55. # --------- Tasks for Operation clusters ---------
  56. - name: Getting current ES deployment size
  57. set_fact: openshift_logging_current_es_ops_size={{ openshift_logging_facts.elasticsearch_ops.deploymentconfigs.keys() | length }}
  58. - set_fact: openshift_logging_es_ops_pvc_prefix="{{ openshift_logging_es_ops_pvc_prefix | default('logging-es-ops') }}"
  59. - name: Validate Elasticsearch cluster size for Ops
  60. fail: msg="The openshift_logging_es_ops_cluster_size may not be scaled down more than 1 less (or 0) the number of Elasticsearch nodes already deployed"
  61. vars:
  62. es_dcs: "{{openshift_logging_facts.elasticsearch_ops.deploymentconfigs}}"
  63. cluster_size: "{{openshift_logging_es_ops_cluster_size|int}}"
  64. when:
  65. - openshift_logging_use_ops | bool
  66. - "{{es_dcs | length - openshift_logging_es_ops_cluster_size|int | abs > 1}}"
  67. check_mode: no
  68. - set_fact: openshift_logging_es_ops_pvc_prefix="logging-es-ops"
  69. when: "not openshift_logging_es_ops_pvc_prefix or openshift_logging_es_ops_pvc_prefix == ''"
  70. - set_fact: es_pvc_pool={{[]}}
  71. - name: Generate PersistentVolumeClaims for Ops
  72. include: "{{ role_path}}/tasks/generate_pvcs.yaml"
  73. vars:
  74. es_pvc_names: "{{openshift_logging_facts.elasticsearch_ops.pvcs.keys()}}"
  75. es_dc_names: "{{openshift_logging_facts.elasticsearch_ops.deploymentconfigs.keys()}}"
  76. es_pvc_size: "{{openshift_logging_es_ops_pvc_size}}"
  77. es_pvc_prefix: "{{openshift_logging_es_ops_pvc_prefix}}"
  78. es_cluster_size: "{{openshift_logging_es_ops_cluster_size|int}}"
  79. es_pvc_dynamic: "{{openshift_logging_es_ops_pvc_dynamic | bool}}"
  80. es_pv_selector: "{{openshift_logging_es_ops_pv_selector}}"
  81. es_access_modes: "{{ openshift_logging_storage_access_modes }}"
  82. when:
  83. - openshift_logging_use_ops | bool
  84. check_mode: no
  85. - name: Init pool of DeploymentConfig names for Elasticsearch Ops
  86. set_fact: es_ops_dc_pool={{ es_ops_dc_pool | default([]) + [deploy_name] }}
  87. with_items: "{{ openshift_logging_facts.elasticsearch_ops.deploymentconfigs.keys() }}"
  88. loop_control:
  89. loop_var: deploy_name
  90. when:
  91. - openshift_logging_use_ops | bool
  92. - name: Create new DeploymentConfig names for Elasticsearch Ops
  93. set_fact: es_ops_dc_pool={{es_ops_dc_pool | default([]) + [deploy_name]}}
  94. vars:
  95. component: es-ops
  96. es_cluster_name: "{{component}}"
  97. deploy_name_prefix: "logging-{{component}}"
  98. deploy_name: "{{deploy_name_prefix}}-{{'abcdefghijklmnopqrstuvwxyz0123456789'|random_word(8)}}"
  99. cluster_size: "{{openshift_logging_es_ops_cluster_size|int}}"
  100. with_sequence: count={{ openshift_logging_es_ops_cluster_size | int - openshift_logging_current_es_ops_size | int }}
  101. when:
  102. - openshift_logging_use_ops | bool
  103. check_mode: no
  104. - name: Generate Elasticsearch DeploymentConfig for Ops
  105. template: src=es.j2 dest={{mktemp.stdout}}/templates/logging-{{deploy_name}}-dc.yaml
  106. vars:
  107. component: es-ops
  108. logging_component: elasticsearch
  109. deploy_name_prefix: "logging-{{component}}"
  110. image: "{{openshift_logging_image_prefix}}logging-elasticsearch:{{openshift_logging_image_version}}"
  111. pvc_claim: "{{(es_pvc_pool | length > item.0) | ternary(es_pvc_pool[item.0], None)}}"
  112. deploy_name: "{{item.1}}"
  113. es_cluster_name: "{{component}}"
  114. es_cpu_limit: "{{openshift_logging_es_ops_cpu_limit }}"
  115. es_memory_limit: "{{openshift_logging_es_ops_memory_limit}}"
  116. es_node_quorum: "{{es_ops_node_quorum}}"
  117. es_recover_after_nodes: "{{es_ops_recover_after_nodes}}"
  118. es_recover_expected_nodes: "{{es_ops_recover_expected_nodes}}"
  119. openshift_logging_es_recover_after_time: "{{openshift_logging_es_ops_recover_after_time}}"
  120. es_node_selector: "{{openshift_logging_es_ops_nodeselector | default({}) }}"
  121. es_storage: "{{openshift_logging_facts|es_storage(deploy_name, pvc_claim,root='elasticsearch_ops')}}"
  122. es_number_of_shards: "{{ openshift_logging_es_ops_number_of_shards }}"
  123. es_number_of_replicas: "{{ openshift_logging_es_ops_number_of_replicas }}"
  124. with_indexed_items:
  125. - "{{ es_ops_dc_pool | default([]) }}"
  126. when:
  127. - openshift_logging_use_ops | bool
  128. check_mode: no
  129. changed_when: no