install_elasticsearch.yaml 6.0 KB

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