---
- include: pre_install.yaml

- name: Install Metrics
  include: "{{ role_path }}/tasks/install_{{ include_file }}.yaml"
  with_items:
    - support
    - heapster
    - hawkular
    - cassandra
  loop_control:
    loop_var: include_file
  when: not openshift_metrics_heapster_standalone | bool

- name: Install Heapster Standalone
  include: install_heapster.yaml
  when: openshift_metrics_heapster_standalone | bool

- find: paths={{ mktemp.stdout }}/templates patterns=*.yaml
  register: object_def_files
  changed_when: no

- slurp: src={{item.path}}
  register: object_defs
  with_items: "{{object_def_files.files}}"
  changed_when: no

- name: Create objects
  include: oc_apply.yaml
  vars:
    kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig"
    namespace: "{{ openshift_metrics_project }}"
    file_name: "{{ item.source }}"
    file_content: "{{ item.content | b64decode | from_yaml }}"
  with_items: "{{ object_defs.results }}"

- include: update_master_config.yaml

- command: >
    {{openshift.common.client_binary}}
    --config={{mktemp.stdout}}/admin.kubeconfig
    get rc
    -l metrics-infra
    -o name
    -n {{openshift_metrics_project}}
  register: existing_metrics_rc
  changed_when: no

- name: Scaling down cluster to recognize changes
  include: stop_metrics.yaml
  when: existing_metrics_rc.stdout_lines | length > 0

- name: Scaling up cluster
  include: start_metrics.yaml
  tags: openshift_metrics_start_cluster
  when:
    - openshift_metrics_start_cluster | default(true) | bool
