install_heapster.yaml 2.4 KB

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