install_elasticsearch.yaml 5.6 KB

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