install_metrics.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. ---
  2. - include_tasks: pre_install.yaml
  3. - name: Install Metrics
  4. include_tasks: "install_{{ include_file }}.yaml"
  5. with_items:
  6. - support
  7. - heapster
  8. - hawkular
  9. - cassandra
  10. loop_control:
  11. loop_var: include_file
  12. when: not openshift_metrics_heapster_standalone | bool
  13. - name: Install Heapster Standalone
  14. include_tasks: install_heapster.yaml
  15. when: openshift_metrics_heapster_standalone | bool
  16. - name: Install Hawkular OpenShift Agent (HOSA)
  17. include_tasks: install_hosa.yaml
  18. when: openshift_metrics_install_hawkular_agent | default(false) | bool
  19. - name: Generate metrics-server deployment
  20. template:
  21. src: metrics-server-deployment.j2
  22. dest: "{{ mktemp.stdout }}/templates/metrics-server-deployment.yaml"
  23. - find:
  24. paths: "{{ mktemp.stdout }}/templates"
  25. patterns: "^(?!metrics-hawkular-openshift-agent|metrics-server-|extension-apiserver-authentication-reader-metrics-server-).*.yaml"
  26. use_regex: true
  27. register: object_def_files
  28. changed_when: no
  29. - slurp:
  30. src: "{{item.path}}"
  31. register: object_defs
  32. with_items: "{{object_def_files.files}}"
  33. changed_when: no
  34. - name: Create objects
  35. include_tasks: oc_apply.yaml
  36. vars:
  37. kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
  38. namespace: "{{ openshift_metrics_project }}"
  39. file_name: "{{ item.source }}"
  40. file_content: "{{ item.content | b64decode | from_yaml }}"
  41. with_items: "{{ object_defs.results }}"
  42. - find:
  43. paths: "{{ mktemp.stdout }}/templates"
  44. patterns: "^metrics-hawkular-openshift-agent.*.yaml"
  45. use_regex: true
  46. register: hawkular_agent_object_def_files
  47. when: openshift_metrics_install_hawkular_agent | bool
  48. changed_when: no
  49. - slurp:
  50. src: "{{item.path}}"
  51. register: hawkular_agent_object_defs
  52. with_items: "{{ hawkular_agent_object_def_files.files }}"
  53. when: openshift_metrics_install_hawkular_agent | bool
  54. changed_when: no
  55. - name: Create Hawkular Agent objects
  56. include_tasks: oc_apply.yaml
  57. vars:
  58. kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
  59. namespace: "{{ openshift_metrics_hawkular_agent_namespace }}"
  60. file_name: "{{ item.source }}"
  61. file_content: "{{ item.content | b64decode | from_yaml }}"
  62. with_items: "{{ hawkular_agent_object_defs.results }}"
  63. when: openshift_metrics_install_hawkular_agent | bool
  64. - find:
  65. paths: "{{ mktemp.stdout }}/templates"
  66. patterns: "^metrics-server-.*.yaml"
  67. use_regex: true
  68. register: metrics_server_object_def_files
  69. changed_when: no
  70. - slurp:
  71. src: "{{item.path}}"
  72. register: metrics_server_object_defs
  73. with_items: "{{ metrics_server_object_def_files.files }}"
  74. changed_when: no
  75. - name: Create Metrics Server objects
  76. include_tasks: oc_apply.yaml
  77. vars:
  78. kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
  79. namespace: "{{ openshift_metrics_server_project }}"
  80. file_name: "{{ item.source }}"
  81. file_content: "{{ item.content | b64decode | from_yaml }}"
  82. with_items: "{{ metrics_server_object_defs.results }}"
  83. - find:
  84. paths: "{{ mktemp.stdout }}/templates"
  85. patterns: "^extension-apiserver-authentication-reader-metrics-server-rolebinding.yaml"
  86. use_regex: true
  87. register: apiextension_object_def_files
  88. changed_when: no
  89. - slurp:
  90. src: "{{item.path}}"
  91. register: apiextension_object_defs
  92. with_items: "{{ apiextension_object_def_files.files }}"
  93. changed_when: no
  94. - name: Create Metrics Server kube-system objects
  95. include_tasks: oc_apply.yaml
  96. vars:
  97. kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
  98. namespace: kube-system
  99. file_name: "{{ item.source }}"
  100. file_content: "{{ item.content | b64decode | from_yaml }}"
  101. with_items: "{{ apiextension_object_defs.results }}"
  102. - include_tasks: update_master_config.yaml
  103. when: not openshift_version_gte_3_9
  104. # Update asset config in openshift-web-console namespace
  105. - name: Add metrics route information to web console asset config
  106. include_role:
  107. name: openshift_web_console
  108. tasks_from: update_console_config.yml
  109. vars:
  110. console_config_edits:
  111. - key: clusterInfo#metricsPublicURL
  112. value: "https://{{ openshift_metrics_hawkular_hostname}}/hawkular/metrics"
  113. when:
  114. - openshift_web_console_install | default(true) | bool
  115. - openshift_version_gte_3_9
  116. - command: >
  117. {{openshift_client_binary}}
  118. --config={{mktemp.stdout}}/admin.kubeconfig
  119. get rc
  120. -l metrics-infra
  121. -o name
  122. -n {{openshift_metrics_project}}
  123. register: existing_metrics_rc
  124. changed_when: no
  125. - name: Scaling down cluster to recognize changes
  126. include_tasks: stop_metrics.yaml
  127. when: existing_metrics_rc.stdout_lines | length > 0
  128. - name: Scaling up cluster
  129. include_tasks: start_metrics.yaml
  130. tags: openshift_metrics_start_cluster
  131. when:
  132. - openshift_metrics_start_cluster | default(true) | bool