install_descheduler.yaml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. ---
  2. - name: create descheduler service account
  3. oc_serviceaccount:
  4. name: "{{ openshift_descheduler_service_account }}"
  5. namespace: "{{ openshift_descheduler_namespace }}"
  6. state: present
  7. - name: create descheduler cluster role
  8. oc_clusterrole:
  9. state: present
  10. name: "{{ openshift_descheduler_cluster_role_name }}"
  11. rules:
  12. - apiGroups: [""]
  13. resources: ["nodes"]
  14. verbs: ["get", "list", "watch"]
  15. - apiGroups: [""]
  16. resources: ["pods"]
  17. verbs: ["get", "list", "watch", "delete"]
  18. - apiGroups: [""]
  19. resources: ["pods/eviction"]
  20. verbs: ["create"]
  21. #- name: copy descheduler cluster role file
  22. # copy:
  23. # src: "{{ item }}"
  24. # dest: "{{ openshift_descheduler_tmp_location }}/{{ item }}"
  25. # with_items:
  26. # - clusterrole.yml
  27. # when: openshift_descheduler_state == 'present'
  28. #- name: "Ensure descheduler cluster roles are {{ openshift_descheduler_state }}"
  29. # oc_obj:
  30. # namespace: "{{ openshift_descheduler_namespace }}"
  31. # state: present
  32. # kind: "{{ item.type }}"
  33. # name: "{{ item.name }}"
  34. # delete_after: "{{ openshift_descheduler_delete_config }}"
  35. # files:
  36. # - "{{ openshift_descheduler_tmp_location }}/{{ item.fname }}"
  37. # with_items:
  38. # - fname: clusterrole.yml
  39. # type: clusterrole
  40. # name: "{{ openshift_descheduler_name }}"
  41. - name: bind descheduler cluster role to its service account
  42. oc_adm_policy_user:
  43. state: present
  44. user: "system:serviceaccount:openshift-infra:{{ openshift_descheduler_service_account }}"
  45. namespace: "{{ openshift_descheduler_namespace }}"
  46. resource_kind: cluster-role
  47. resource_name: "{{ openshift_descheduler_cluster_role_name }}"
  48. - name: copy descheduler policy template to tmp dir
  49. template:
  50. src: policy.yaml.j2
  51. dest: "{{ openshift_descheduler_tmp_location }}/policy.yaml"
  52. when: openshift_descheduler_state == 'present'
  53. - name: create descheduler policy configmap
  54. oc_configmap:
  55. state: present
  56. name: "{{ openshift_descheduler_policy_configmap_name }}"
  57. namespace: "{{ openshift_descheduler_namespace }}"
  58. from_file:
  59. policy.yaml: "{{ openshift_descheduler_tmp_location }}/policy.yaml"
  60. - name: copy the cronjob file for descheduler
  61. template:
  62. src: descheduler-cronjob.yaml.j2
  63. dest: "{{ openshift_descheduler_tmp_location }}/descheduler-cronjob.yaml"
  64. when: openshift_descheduler_state == 'present'
  65. - name: "Ensure the descheduler is {{ openshift_descheduler_state }}"
  66. oc_obj:
  67. namespace: "{{ openshift_descheduler_namespace }}"
  68. state: present
  69. kind: cronjob
  70. name: "{{ openshift_descheduler_cronjob_name }}"
  71. delete_after: "{{ openshift_descheduler_delete_config }}"
  72. files:
  73. - "{{ openshift_descheduler_tmp_location }}/descheduler-cronjob.yaml"