prole/infrastructure/roles/k3s/tasks/optional_workloads_policy_eval.yml

30 lines
1.2 KiB
YAML

---
- name: Evaluate optional-workloads policy (ready + schedulable) - build candidates
ansible.builtin.set_fact:
_k3s_ready_node_candidates: >-
{{ (_k3s_nodes_list.stdout_lines | default([])
| select('search', ' Ready')
| list) }}
_k3s_scheduling_disabled_node_candidates: >-
{{ (_k3s_nodes_list.stdout_lines | default([])
| select('search', 'SchedulingDisabled')
| list) }}
optional_workloads_min_ready_schedulable_nodes: >-
{{ (k3s_optional_workloads_min_nodes_cfg | int) }}
changed_when: false
- name: Evaluate optional-workloads policy (ready + schedulable) - count ready schedulable nodes
ansible.builtin.set_fact:
ready_schedulable_nodes: >-
{{ ((_k3s_ready_node_candidates | default([]))
| difference(_k3s_scheduling_disabled_node_candidates | default([]))
| length) | int }}
changed_when: false
- name: Evaluate optional-workloads policy (ready + schedulable) - compute allow/deny
ansible.builtin.set_fact:
optional_workloads_allowed: >-
{{ (ready_schedulable_nodes | int) >= (optional_workloads_min_ready_schedulable_nodes | int) }}
changed_when: false