* fix(ansible-lint): FQDN and `name`
* fix(ansible-lint): add `name` and FQDN for module call
* fix(ansible-lint): add `name` to tasks and FQDN for module
* fix(ansible-lint): add task `name` and FQDN for module calls
* fix(ansible-lint): last `include_tasks`
* fix(ansible-lint): add task names and FQDN
* refactor: `Ensure` to `Run`
* [skip ci]refactor: add exist and seperate ensure installed node task, mention build cluster
* [skip ci]refactor: Pipe seperator
* [skip ci]refactor: run
* refactor: remove quotes as other files don't use them
For templated vars in task name
* [skip ci]refactor: task names, use `Run`
* [skip ci]refactor: use variable name in task name
* [skip ci]refactor: task names
* [skip ci]refactor: add service mgr in task name
* [skip ci]refactor: add task names and module FQDNs
* [skip ci]refactor: fix task name
* [skip ci]refactor: add -
* [skip ci]refactor: include task names and FQDNs
* [skip ci]refactor: add task names and FQDNs
* [skip ci]: ignore `name[template]`
* refactor: `when` clause for `block` should be before `block`
* fix: https://github.com/ansible-community/molecule/issues/3883
* refactor: molecule lint command was removed in version `5.0.0`
Use separate CI job step to run linting instead.
* [skip ci]refactor: noqa for command tasks
Subject to change
* refactor: use Ubuntu 22.04
Suspect issues with Molecule tests are related to cgroups v2.
in an air gapped environment the machine will not be able to check sha checksums or information
around the binary so we should ignore the tasks in that scenario
in an air gapped environment the machine will not be able to check sha checksums or information
around the binary so we should ignore the tasks in that scenario
airgap installs allow users to deploy k3s in a situation where the server is not internet connected
and therefore unable to download anything externally
For some weird reason, string booleans were set on `k3s_control_node` and `k3s_primary_control_node`, making their behavior non-obvious (for python `bool("false") == True`).
This fixes that problem, and BTW restores the ability to create clusters, which got lost with this bug.
After running the role against a cluster, see:
```sh
❯ ansible -i inventories/testing.yaml k8s_node -m command -ba 'kubectl get node'
vm0 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm0 Ready control-plane,etcd,master 9m19s v1.21.2+k3s1
vm2 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm2 Ready control-plane,etcd,master 9m22s v1.21.2+k3s1
vm1 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm1 Ready control-plane,etcd,master 9m22s v1.21.2+k3s1
```
Now, after the patch:
```sh
❯ ansible -i inventories/testing.yaml k8s_node -m command -ba 'kubectl get node'
vm0 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm0 Ready control-plane,etcd,master 2m2s v1.21.2+k3s1
vm1 Ready control-plane,etcd,master 58s v1.21.2+k3s1
vm2 Ready control-plane,etcd,master 80s v1.21.2+k3s1
vm1 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm0 Ready control-plane,etcd,master 2m2s v1.21.2+k3s1
vm1 Ready control-plane,etcd,master 58s v1.21.2+k3s1
vm2 Ready control-plane,etcd,master 80s v1.21.2+k3s1
vm2 | CHANGED | rc=0 >>
NAME STATUS ROLES AGE VERSION
vm0 Ready control-plane,etcd,master 2m2s v1.21.2+k3s1
vm1 Ready control-plane,etcd,master 58s v1.21.2+k3s1
vm2 Ready control-plane,etcd,master 80s v1.21.2+k3s1
```
@Tecnativa TT2541
Otherwise, when completely uninstalling the etcd-enabled cluster, it fails with:
```
TASK [xanmanning.k3s : Check the conditions when embedded etcd is defined] ***************************************
fatal: [vm0]: FAILED! => {
"assertion": "(((k3s_controller_list | length) % 2) == 1)",
"changed": false,
"evaluated_to": false,
"msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
fatal: [vm1]: FAILED! => {
"assertion": "(((k3s_controller_list | length) % 2) == 1)",
"changed": false,
"evaluated_to": false,
"msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
fatal: [vm2]: FAILED! => {
"assertion": "(((k3s_controller_list | length) % 2) == 1)",
"changed": false,
"evaluated_to": false,
"msg": "Etcd should have a minimum of 3 defined members and the number of members should be odd. Please see notes about HA in README.md"
}
```
If you run the role on an ansible configured with that setting, it will fail with:
fatal: [vm0]: FAILED! => {"msg": "Unexpected templating type error occurred on ({% for host in ansible_play_hosts_all %}\n{% filter string %}\n{% filter replace('\\n', ' ') %}\n{{ host }}\n@@@\n{{ hostvars[host].ansible_host | default(hostvars[host].ansible_fqdn) }}\n@@@\nC_{{ hostvars[host].k3s_control_node }}\n@@@\nP_{{ hostvars[host].k3s_primary_control_node | default(False) }}\n{% endfilter %}\n{% endfilter %}\n@@@ END:{{ host }}\n{% endfor %}): sequence item 4: expected str instance, bool found"}