From cd543a660d12dd0cedfdc2e04b7bb2f04244ea5a Mon Sep 17 00:00:00 2001 From: Derek Nola Date: Tue, 26 Aug 2025 09:57:53 -0700 Subject: [PATCH] Inject installation envs for install script (#433) Signed-off-by: Derek Nola --- inventory-sample.yml | 1 + roles/k3s_agent/defaults/main.yml | 1 + roles/k3s_agent/tasks/main.yml | 16 +++++++++++----- roles/k3s_server/defaults/main.yml | 1 + roles/k3s_server/tasks/main.yml | 13 +++++++++---- roles/k3s_upgrade/defaults/main.yml | 1 + roles/k3s_upgrade/tasks/main.yml | 12 ++++++++---- 7 files changed, 32 insertions(+), 13 deletions(-) diff --git a/inventory-sample.yml b/inventory-sample.yml index aa023ec..bb47aaa 100644 --- a/inventory-sample.yml +++ b/inventory-sample.yml @@ -26,6 +26,7 @@ k3s_cluster: # Optional vars # extra_server_args: "" # extra_agent_args: "" + # extra_install_envs: { 'INSTALL_K3S_SKIP_SELINUX_RPM': 'true' } # cluster_context: k3s-ansible # api_port: 6443 # k3s_server_location: /var/lib/rancher/k3s diff --git a/roles/k3s_agent/defaults/main.yml b/roles/k3s_agent/defaults/main.yml index c35f268..81e26a1 100644 --- a/roles/k3s_agent/defaults/main.yml +++ b/roles/k3s_agent/defaults/main.yml @@ -4,3 +4,4 @@ k3s_server_location: "/var/lib/rancher/k3s" # noqa var-naming[no-role-prefix] systemd_dir: "/etc/systemd/system" # noqa var-naming[no-role-prefix] api_port: 6443 # noqa var-naming[no-role-prefix] extra_agent_args: "" # noqa var-naming[no-role-prefix] +extra_install_envs: {} # noqa var-naming[no-role-prefix] diff --git a/roles/k3s_agent/tasks/main.yml b/roles/k3s_agent/tasks/main.yml index 559080f..a0fc281 100644 --- a/roles/k3s_agent/tasks/main.yml +++ b/roles/k3s_agent/tasks/main.yml @@ -27,12 +27,18 @@ mode: "0755" - name: Download K3s binary - ansible.builtin.command: + # For some reason, ansible-lint thinks using enviroment with command is an error + # even though its valid https://ansible.readthedocs.io/projects/lint/rules/inline-env-var/#correct-code + ansible.builtin.command: # noqa inline-env-var cmd: /usr/local/bin/k3s-install.sh - environment: - INSTALL_K3S_SKIP_START: "true" - INSTALL_K3S_VERSION: "{{ k3s_version }}" - INSTALL_K3S_EXEC: "agent" + # Ensures that extra_install_envs are combined with required env vars + environment: >- + {{ extra_install_envs | combine({ + "INSTALL_K3S_SKIP_START": "true", + "INSTALL_K3S_SYSTEMD_DIR": systemd_dir, + "INSTALL_K3S_VERSION": k3s_version, + "INSTALL_K3S_EXEC": "agent" + }) }} changed_when: true - name: Setup optional config file diff --git a/roles/k3s_server/defaults/main.yml b/roles/k3s_server/defaults/main.yml index ce72970..058aff1 100644 --- a/roles/k3s_server/defaults/main.yml +++ b/roles/k3s_server/defaults/main.yml @@ -9,3 +9,4 @@ server_group: server # noqa var-naming[no-role-prefix] agent_group: agent # noqa var-naming[no-role-prefix] use_external_database: false # noqa var-naming[no-role-prefix] extra_server_args: "" # noqa var-naming[no-role-prefix] +extra_install_envs: {} # noqa var-naming[no-role-prefix] diff --git a/roles/k3s_server/tasks/main.yml b/roles/k3s_server/tasks/main.yml index 7c2a1dd..537ddf8 100644 --- a/roles/k3s_server/tasks/main.yml +++ b/roles/k3s_server/tasks/main.yml @@ -27,11 +27,16 @@ mode: "0755" - name: Download K3s binary - ansible.builtin.command: + # For some reason, ansible-lint thinks using enviroment with command is an error + # even though its valid https://ansible.readthedocs.io/projects/lint/rules/inline-env-var/#correct-code + ansible.builtin.command: # noqa inline-env-var cmd: /usr/local/bin/k3s-install.sh - environment: - INSTALL_K3S_SKIP_START: "true" - INSTALL_K3S_VERSION: "{{ k3s_version }}" + # Ensures that extra_install_envs are combined with required env vars + environment: >- + {{ extra_install_envs | combine({ + "INSTALL_K3S_SKIP_START": "true", + "INSTALL_K3S_VERSION": k3s_version, + }) }} changed_when: true - name: Add K3s autocomplete to user bashrc diff --git a/roles/k3s_upgrade/defaults/main.yml b/roles/k3s_upgrade/defaults/main.yml index b6c8026..eecb05b 100644 --- a/roles/k3s_upgrade/defaults/main.yml +++ b/roles/k3s_upgrade/defaults/main.yml @@ -2,3 +2,4 @@ systemd_dir: /etc/systemd/system # noqa var-naming[no-role-prefix] server_group: server # noqa var-naming[no-role-prefix] agent_group: agent # noqa var-naming[no-role-prefix] +extra_install_envs: {} # noqa var-naming[no-role-prefix] diff --git a/roles/k3s_upgrade/tasks/main.yml b/roles/k3s_upgrade/tasks/main.yml index 0614841..da9e4cf 100644 --- a/roles/k3s_upgrade/tasks/main.yml +++ b/roles/k3s_upgrade/tasks/main.yml @@ -33,11 +33,15 @@ loop: "{{ k3s_service_files.files }}" - name: Install new K3s Version - ansible.builtin.command: + # For some reason, ansible-lint thinks using enviroment with command is an error + # even though its valid https://ansible.readthedocs.io/projects/lint/rules/inline-env-var/#correct-code + ansible.builtin.command: # noqa inline-env-var cmd: /usr/local/bin/k3s-install.sh - environment: - INSTALL_K3S_SKIP_START: "true" - INSTALL_K3S_VERSION: "{{ k3s_version }}" + environment: >- + {{ extra_install_envs | combine({ + "INSTALL_K3S_SKIP_START": "true", + "INSTALL_K3S_VERSION": k3s_version, + }) }} changed_when: true - name: Restore K3s service