mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2025-12-25 18:23:05 +01:00
Enhance k3s_agent role to support conditional snapshotter for PXE-booted systems.
**Added:** - PXE Boot Check - Introduced tasks to check if the system is PXE-booted by analyzing `/proc/cmdline` in `roles/k3s_agent/tasks/main.yml`. - Conditional Snapshotter in Template - Added logic in `k3s.service.j2` template to conditionally set `--snapshotter native` for PXE-booted systems. **Changed:** - `k3s.service.j2` Template Update - Modified the `ExecStart` line to include a conditional check for `is_pxe_booted` fact, dynamically setting the `--snapshotter` option for NFS-mounted systems. - `main.yml` Task Modification - Added tasks to set `is_pxe_booted` fact based on the presence of `root=/dev/nfs` in the system's boot command line. This update allows k3s agents on PXE-booted systems to use the native snapshotter when running on NFS, addressing compatibility issues with OverlayFS.
This commit is contained in:
@@ -1,4 +1,13 @@
|
||||
---
|
||||
- name: Check if system is PXE-booted
|
||||
command: cat /proc/cmdline
|
||||
register: boot_cmdline
|
||||
changed_when: false
|
||||
|
||||
- name: Set fact for PXE-booted system
|
||||
set_fact:
|
||||
is_pxe_booted: "{{ 'root=/dev/nfs' in boot_cmdline.stdout }}"
|
||||
when: boot_cmdline is defined
|
||||
|
||||
- name: Deploy K3s http_proxy conf
|
||||
include_tasks: http_proxy.yml
|
||||
|
||||
@@ -7,11 +7,14 @@ After=network-online.target
|
||||
Type=notify
|
||||
ExecStartPre=-/sbin/modprobe br_netfilter
|
||||
ExecStartPre=-/sbin/modprobe overlay
|
||||
ExecStart=/usr/local/bin/k3s agent --server https://{{ apiserver_endpoint | ansible.utils.ipwrap }}:6443 --token {{ hostvars[groups[group_name_master | default('master')][0]]['token'] | default(k3s_token) }} {{ extra_agent_args | default("") }}
|
||||
# Conditional snapshotter based on PXE boot status
|
||||
ExecStart=/usr/local/bin/k3s agent \
|
||||
--server https://{{ apiserver_endpoint | ansible.utils.ipwrap }}:6443 \
|
||||
{% if is_pxe_booted | default(false) %}--snapshotter native \
|
||||
{% endif %}--token {{ hostvars[groups[group_name_master | default('master')][0]]['token'] | default(k3s_token) }} \
|
||||
{{ extra_agent_args | default("") }}
|
||||
KillMode=process
|
||||
Delegate=yes
|
||||
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
|
||||
Reference in New Issue
Block a user