Unverified Commit fe3df5c8 authored by Dmitriy Safronov's avatar Dmitriy Safronov Committed by GitHub
Browse files

[#287] fix control node tasks logic to properly change server address on control node (#288)

parent 502d93bc
Loading
Loading
Loading
Loading
+40 −36
Original line number Diff line number Diff line
@@ -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'
@@ -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