install_heapster.yaml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ---
  2. - name: Ensure that Heapster has nodes to run on
  3. import_role:
  4. name: openshift_control_plane
  5. tasks_from: ensure_nodes_matching_selector.yml
  6. vars:
  7. openshift_master_ensure_nodes_selector: "{{ openshift_metrics_heapster_nodeselector | map_to_pairs }}"
  8. openshift_master_ensure_nodes_service: Heapster
  9. - command: >
  10. {{ openshift_client_binary }} -n {{ openshift_metrics_project | quote }}
  11. --config={{ mktemp.stdout }}/admin.kubeconfig
  12. get rc heapster -o jsonpath='{.spec.replicas}'
  13. register: heapster_replica_count
  14. failed_when: false
  15. changed_when: no
  16. - name: Generate heapster replication controller
  17. template: src=heapster.j2 dest={{mktemp.stdout}}/templates/metrics-heapster-rc.yaml
  18. vars:
  19. replica_count: "{{heapster_replica_count.stdout | default(0)}}"
  20. node_selector: "{{openshift_metrics_heapster_nodeselector | default('') }}"
  21. changed_when: no
  22. - set_fact:
  23. heapster_sa_secrets: ["heapster-secrets"]
  24. - set_fact:
  25. heapster_sa_secrets: "{{ heapster_sa_secrets + [item] }}"
  26. with_items:
  27. - hawkular-metrics-certs
  28. - hawkular-metrics-account
  29. when: not openshift_metrics_heapster_standalone | bool
  30. - name: Generating serviceaccount for heapster
  31. template: src=serviceaccount.j2 dest={{mktemp.stdout}}/templates/metrics-{{obj_name}}-sa.yaml
  32. vars:
  33. obj_name: heapster
  34. labels:
  35. metrics-infra: support
  36. secrets: "{{ heapster_sa_secrets }}"
  37. changed_when: no
  38. - name: Generate service for heapster
  39. template: src=service.j2 dest={{mktemp.stdout}}/templates/metrics-{{obj_name}}-svc.yaml
  40. vars:
  41. obj_name: heapster
  42. ports:
  43. - {port: 80, targetPort: http-endpoint}
  44. selector:
  45. name: "{{obj_name}}"
  46. annotations:
  47. service.alpha.openshift.io/serving-cert-secret-name: heapster-certs
  48. labels:
  49. metrics-infra: "{{obj_name}}"
  50. name: "{{obj_name}}"
  51. changed_when: no
  52. - name: generate cluster-reader role binding for the heapster service account
  53. template:
  54. src: rolebinding.j2
  55. dest: "{{ mktemp.stdout }}/templates/heapster-rolebinding.yaml"
  56. vars:
  57. cluster: True
  58. obj_name: heapster-cluster-reader
  59. labels:
  60. metrics-infra: heapster
  61. roleRef:
  62. kind: ClusterRole
  63. name: cluster-reader
  64. subjects:
  65. - kind: ServiceAccount
  66. name: heapster
  67. namespace: "{{ openshift_metrics_project }}"
  68. changed_when: no
  69. - include_tasks: generate_heapster_secrets.yaml