install_metrics.yaml 4.7 KB

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