diff --git a/Vagrantfile b/Vagrantfile index 055a21d..1f9c372 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -34,8 +34,10 @@ def provision(vm, role, node_num) extra_agent_args: "--node-external-ip #{node_ip} --flannel-iface eth1", # Optional, left as reference for ruby-ansible syntax # extra_service_envs: [ "NO_PROXY='localhost'" ], - # config_yaml: <<~YAML + # server_config_yaml: <<~YAML # write-kubeconfig-mode: 644 + # kube-apiserver-arg: + # - advertise-port=1234 # YAML } end diff --git a/inventory-sample.yml b/inventory-sample.yml index aaec431..8ec5e52 100644 --- a/inventory-sample.yml +++ b/inventory-sample.yml @@ -28,7 +28,7 @@ k3s_cluster: # List of locally available manifests to apply to the cluster, useful for PVCs or Traefik modifications. # extra_manifests: [ '/path/to/manifest1.yaml', '/path/to/manifest2.yaml' ] # airgap_dir: /tmp/k3s-airgap-images - # config_yaml: | + # server_config_yaml: | # This is now an inner yaml file. Maintain 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/playbook/reset.yml b/playbook/reset.yml index 1f53fc3..c11048a 100644 --- a/playbook/reset.yml +++ b/playbook/reset.yml @@ -26,3 +26,8 @@ ansible.builtin.shell: cmd: "rm -rf {{ k3s_server_location }}/*" removes: "{{ k3s_server_location }}/*" + - name: Remove K3s config + when: server_config_yaml is defined + ansible.builtin.file: + path: /etc/rancher/k3s/config.yaml + state: absent diff --git a/roles/k3s_server/tasks/main.yml b/roles/k3s_server/tasks/main.yml index 487a3db..7e1d402 100644 --- a/roles/k3s_server/tasks/main.yml +++ b/roles/k3s_server/tasks/main.yml @@ -19,6 +19,20 @@ INSTALL_K3S_VERSION: "{{ k3s_version }}" changed_when: true +- name: Setup optional config file + when: server_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: "{{ server_config_yaml }}" + dest: "/etc/rancher/k3s/config.yaml" + mode: 0644 + - name: Init first server node # Handle both hostname OR ip address being supplied in inventory when: ansible_hostname == groups['server'][0] or groups['server'][0] in ansible_facts['all_ipv4_addresses'] @@ -97,7 +111,7 @@ - name: Check whether kubectl is installed on control node ansible.builtin.command: 'kubectl' register: kubectl_installed - ignore_errors: yes + ignore_errors: true delegate_to: 127.0.0.1 become: false changed_when: false diff --git a/roles/prereq/tasks/main.yml b/roles/prereq/tasks/main.yml index e76312a..7686679 100644 --- a/roles/prereq/tasks/main.yml +++ b/roles/prereq/tasks/main.yml @@ -205,17 +205,3 @@ 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