K3s
K3s is a highly available, certified Kubernetes distribution designed for production workloads, packaged as a single binary that reduces the dependencies and steps needed to install.
The k3s role performs various tasks related to OS configuration, K3s cluster deployment, reset, and validation.
Role deployments are performed at global level, using the Provisioning playbook. Upgrades can be performed at role level — see the instructions detailed below.
Role Tasks
See the related role tasks listed below.
Configuration
Configuration related tasks — see configuration.yaml for details.
Facts
Ansible facts — see facts.yaml for details.
Load Balancer
Load balancer related tasks — see loadbalancer.yaml for details.
Main
Main role related tasks — see main.yaml for details.
Reset
Reset related tasks — see reset.yaml for details.
A reset is performed at global level only — review the Reset playbook instructions.
Upgrade
Upgrade related tasks — see upgrade.yaml for details. Run the following command to perform a role upgrade:
ansible-playbook --ask-vault-pass --tags=k3s upgrade.yamlThe upgrade will trigger the Kured role execution, performing safe automatic node reboots.
Validation
Validation related tasks — see validation.yaml for details. Run the following command to perform all role related validation tasks:
ansible-playbook --ask-vault-pass --tags=k3s validation.yamlRole Templates
See the related role templates listed below.
Configuration
- Cluster — Cluster configuration template, see
config.j2for details. - HAProxy — HAProxy configuration template, see
haproxy.j2for details. - KeepAlived — KeepAlived configuration template, see
keepalived.j2for details. - Registries — Registries configuration template, see
registries.j2for details.
Service
Service configuration template — see service.j2 for details.
Role Variables
A role upgrade is required in order to apply any changes related to role variables.
See the related role variables, defined in the main.yaml defaults file. Review the README.md file for additional details.
Use Renovate to automate release pull requests and keep dependencies up-to-date.