descheduler-cronjob.yaml.j2 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. apiVersion: batch/v1beta1
  2. kind: CronJob
  3. metadata:
  4. name: "{{ openshift_descheduler_cronjob_name }}"
  5. namespace: openshift-descheduler
  6. spec:
  7. schedule: "{{ openshift_descheduler_cronjob_schedule }}"
  8. jobTemplate:
  9. spec:
  10. template:
  11. metadata:
  12. annotations:
  13. scheduler.alpha.kubernetes.io/critical-pod: ''
  14. name: "{{ openshift_descheduler_cronjob_name }}"
  15. spec:
  16. priorityClassName: system-cluster-critical
  17. containers:
  18. - name: descheduler
  19. image: "{{ openshift_descheduler_image }}"
  20. volumeMounts:
  21. - mountPath: /policy-dir
  22. name: policy-volume
  23. command:
  24. - /bin/descheduler
  25. args:
  26. - --policy-config-file=/policy-dir/policy.yaml
  27. - --v={{ openshift_descheduler_debug_level }}
  28. {% if openshift_descheduler_dry_run_mode is defined and (openshift_descheduler_dry_run_mode | bool) %}
  29. - --dry-run
  30. {% endif %}
  31. {% if openshift_descheduler_node_selectors is defined and openshift_descheduler_node_selectors is not none %}
  32. - --node-selector="{{ openshift_descheduler_node_selectors }}"
  33. {% endif %}
  34. restartPolicy: "Never"
  35. {% if openshift_descheduler_cronjob_node_selector is iterable and openshift_descheduler_cronjob_node_selector | length > 0 %}
  36. nodeSelector:
  37. {% for key, value in openshift_descheduler_cronjob_node_selector.items() %}
  38. {{ key }}: "{{ value }}"
  39. {% endfor %}
  40. {% endif %}
  41. serviceAccountName: "{{ openshift_descheduler_service_account }}"
  42. volumes:
  43. - name: policy-volume
  44. configMap:
  45. name: "{{ openshift_descheduler_policy_configmap_name }}"