66 lines
1.8 KiB
YAML
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 |