From 46a842a551318298319cd39138a8a1b929f71978 Mon Sep 17 00:00:00 2001 From: Derek Nola Date: Mon, 13 Nov 2023 14:09:15 -0800 Subject: [PATCH] Support K3s config yaml (#252) * Support K3s config yaml Signed-off-by: Derek Nola --- Vagrantfile | 5 ++++- inventory-sample.yml | 4 ++++ roles/prereq/tasks/main.yml | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 785104c..cb2dcb7 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -32,8 +32,11 @@ def provision(vm, role, node_num) # Required to use the private network configured above extra_server_args: "--node-external-ip #{node_ip} --flannel-iface eth1", extra_agent_args: "--node-external-ip #{node_ip} --flannel-iface eth1", - # Not needed, left as reference for ruby-ansible list syntax + # Optional, left as reference for ruby-ansible syntax # extra_service_envs: [ "NO_PROXY='localhost'" ], + # config_yaml: <<~YAML + # write-kubeconfig-mode: 644 + # YAML } end end diff --git a/inventory-sample.yml b/inventory-sample.yml index ce96dfd..af09a86 100644 --- a/inventory-sample.yml +++ b/inventory-sample.yml @@ -27,3 +27,7 @@ k3s_cluster: # List of locally available manifests to apply to the cluster, useful for PVCs or Traefik modifications. # Manifests should be either full paths or relative to the playbook directory. # extra_manifests: [ '/path/to/manifest1.yaml', '/path/to/manifest2.yaml' ] + # config_yaml: | + # This is now an inner yaml file. Mantain the indentation. + # YAML here will be placed as the content of /etc/rancher/k3s/config.yaml + # See https://docs.k3s.io/installation/configuration#configuration-file diff --git a/roles/prereq/tasks/main.yml b/roles/prereq/tasks/main.yml index 7135495..4ad9726 100644 --- a/roles/prereq/tasks/main.yml +++ b/roles/prereq/tasks/main.yml @@ -187,3 +187,17 @@ dest: "/var/lib/rancher/k3s/server/manifests" mode: 0600 loop: "{{ extra_manifests }}" + +- name: Setup optional config file + when: config_yaml is defined + block: + - name: Make config directory + ansible.builtin.file: + path: "/etc/rancher/k3s" + mode: 0755 + state: directory + - name: Copy config values + ansible.builtin.copy: + content: "{{ config_yaml }}" + dest: "/etc/rancher/k3s/config.yaml" + mode: 0644