2026-08-23 14:07:49 +09:00

66 lines
1.8 KiB
YAML

---
# Part of role: k3s-agent
# Called by: ansible/playbooks/join-debian-agent.yaml
# ansible/playbooks/setup-gpu-node.yaml
# Description: Configures the K3s agent's DNS resolver, installs K3s in agent mode, joins the cluster, labels and taints the node.
- name: Create K3s config directory
ansible.builtin.file:
path: /etc/rancher/k3s
state: directory
mode: "0755"
- name: Write K3s agent config
ansible.builtin.copy:
dest: /etc/rancher/k3s/config.yaml
content: "{{ k3s_agent_config | to_nice_yaml }}"
mode: "0644"
notify: Restart k3s-agent
- name: Write K3s DNS resolver file
ansible.builtin.copy:
dest: /etc/rancher/k3s/resolv.conf
content: "nameserver {{ k3s_dns_resolver }}\n"
owner: root
group: root
mode: "0644"
notify: Restart k3s-agent
- name: Download and install K3s agent
ansible.builtin.shell:
cmd: >
curl -sfL https://get.k3s.io |
INSTALL_K3S_VERSION={{ k3s_version }}
K3S_URL={{ k3s_server_url }}
K3S_TOKEN={{ k3s_node_token }}
sh -
creates: /usr/local/bin/k3s
- name: Ensure K3s agent service is running
ansible.builtin.service:
name: k3s-agent
state: started
enabled: true
become: true
- name: Apply node labels
ansible.builtin.shell:
cmd: >
k3s kubectl label node {{ ansible_facts['hostname'] }}
{{ item.key }}={{ item.value }} --overwrite
loop: "{{ k3s_node_labels | dict2items }}"
delegate_to: minisforum
become: true
changed_when: false
when: k3s_node_labels is defined and k3s_node_labels | length > 0
- name: Apply node taints
ansible.builtin.shell:
cmd: >
k3s kubectl taint node {{ ansible_facts['hostname'] }}
{{ item }} --overwrite
loop: "{{ k3s_node_taints }}"
delegate_to: minisforum
become: true
changed_when: false
when: k3s_node_taints is defined and k3s_node_taints | length > 0