Loading roles/k3s_server/tasks/main.yml +40 −36 Original line number Diff line number Diff line Loading @@ -79,29 +79,34 @@ ansible.builtin.pause: seconds: 10 - name: Change server to API endpoint instead of localhost ansible.builtin.command: >- /usr/local/bin/k3s kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }} --kubeconfig ~{{ ansible_user }}/.kube/config changed_when: true - name: Check whether kubectl is installed on control node ansible.builtin.command: 'kubectl' register: kubectl_installed ignore_errors: true delegate_to: 127.0.0.1 become: false changed_when: false - name: Copy kubectl config to local machine - name: Apply K3S kubeconfig to control node when: kubectl_installed.rc == 0 block: - name: Copy kubeconfig to control node ansible.builtin.fetch: src: /etc/rancher/k3s/k3s.yaml dest: "{{ kubeconfig }}" flat: true - name: Check whether kubectl is installed on control node ansible.builtin.command: 'kubectl' register: kubectl_installed ignore_errors: true - name: Change server address in kubeconfig on control node ansible.builtin.shell: | KUBECONFIG={{ kubeconfig }} kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }} delegate_to: 127.0.0.1 become: false changed_when: false register: csa_result changed_when: - csa_result.rc == 0 - name: Setup kubeconfig k3s-ansible context when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 - name: Setup kubeconfig k3s-ansible context on control node when: kubeconfig != "~/.kube/config" ansible.builtin.replace: path: "{{ kubeconfig }}" regexp: 'name: default' Loading @@ -109,15 +114,14 @@ delegate_to: 127.0.0.1 become: false - name: Merge with any existing kube config when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 - name: Merge with any existing kubeconfig on control node when: kubeconfig != "~/.kube/config" ansible.builtin.shell: | TFILE=$(mktemp) KUBECONFIG=~/.kube/config.new kubectl rename-context default k3s-ansible KUBECONFIG=~/.kube/config.new kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible KUBECONFIG=~/.kube/config.new:~/.kube/config kubectl config view --flatten > ${TFILE} KUBECONFIG={{ kubeconfig }} kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible KUBECONFIG={{ kubeconfig }}:~/.kube/config kubectl config view --flatten > ${TFILE} mv ${TFILE} ~/.kube/config rm ~/.kube/config.new rm {{ kubeconfig }} delegate_to: 127.0.0.1 become: false register: mv_result Loading Loading
roles/k3s_server/tasks/main.yml +40 −36 Original line number Diff line number Diff line Loading @@ -79,29 +79,34 @@ ansible.builtin.pause: seconds: 10 - name: Change server to API endpoint instead of localhost ansible.builtin.command: >- /usr/local/bin/k3s kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }} --kubeconfig ~{{ ansible_user }}/.kube/config changed_when: true - name: Check whether kubectl is installed on control node ansible.builtin.command: 'kubectl' register: kubectl_installed ignore_errors: true delegate_to: 127.0.0.1 become: false changed_when: false - name: Copy kubectl config to local machine - name: Apply K3S kubeconfig to control node when: kubectl_installed.rc == 0 block: - name: Copy kubeconfig to control node ansible.builtin.fetch: src: /etc/rancher/k3s/k3s.yaml dest: "{{ kubeconfig }}" flat: true - name: Check whether kubectl is installed on control node ansible.builtin.command: 'kubectl' register: kubectl_installed ignore_errors: true - name: Change server address in kubeconfig on control node ansible.builtin.shell: | KUBECONFIG={{ kubeconfig }} kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }} delegate_to: 127.0.0.1 become: false changed_when: false register: csa_result changed_when: - csa_result.rc == 0 - name: Setup kubeconfig k3s-ansible context when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 - name: Setup kubeconfig k3s-ansible context on control node when: kubeconfig != "~/.kube/config" ansible.builtin.replace: path: "{{ kubeconfig }}" regexp: 'name: default' Loading @@ -109,15 +114,14 @@ delegate_to: 127.0.0.1 become: false - name: Merge with any existing kube config when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 - name: Merge with any existing kubeconfig on control node when: kubeconfig != "~/.kube/config" ansible.builtin.shell: | TFILE=$(mktemp) KUBECONFIG=~/.kube/config.new kubectl rename-context default k3s-ansible KUBECONFIG=~/.kube/config.new kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible KUBECONFIG=~/.kube/config.new:~/.kube/config kubectl config view --flatten > ${TFILE} KUBECONFIG={{ kubeconfig }} kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible KUBECONFIG={{ kubeconfig }}:~/.kube/config kubectl config view --flatten > ${TFILE} mv ${TFILE} ~/.kube/config rm ~/.kube/config.new rm {{ kubeconfig }} delegate_to: 127.0.0.1 become: false register: mv_result Loading