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

27 lines
1.0 KiB
YAML

---
# Fail fast on known-bad flags that prevent k3s from starting.
- name: Validate kube-apiserver args (known unsupported flags)
ansible.builtin.assert:
that:
- _bad_kube_apiserver_args | length == 0
fail_msg: >-
k3s_kube_apiserver_args contains unsupported flag(s): {{ _bad_kube_apiserver_args | join(', ') }}.
This can prevent k3s from starting (e.g. kube-apiserver exits with "unknown flag").
vars:
_bad_kube_apiserver_args: >-
{{
(k3s_kube_apiserver_args | default([]))
| select('search', '^etcd-timeout=')
| list
}}
- name: Validate datastore configuration (embedded etcd vs external datastore)
ansible.builtin.assert:
that:
- not ((k3s_cluster_init | default(false) | bool) and ((k3s_datastore_endpoint | default('')) | length > 0))
fail_msg: >-
Invalid k3s datastore config: k3s_cluster_init=true cannot be used with an external datastore.
Set k3s_cluster_init: false (or unset k3s_datastore_endpoint).
when: k3s_role == 'server'