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

Signed-off-by: Dmitriy Safronov <zimniy@cyberbrain.pw>
This commit is contained in:
Dmitriy Safronov
2024-01-18 04:06:20 +04:00
committed by GitHub
parent 502d93bc02
commit fe3df5c836

View File

@@ -79,19 +79,6 @@
ansible.builtin.pause: ansible.builtin.pause:
seconds: 10 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: Copy kubectl config to local machine
ansible.builtin.fetch:
src: /etc/rancher/k3s/k3s.yaml
dest: "{{ kubeconfig }}"
flat: true
- name: Check whether kubectl is installed on control node - name: Check whether kubectl is installed on control node
ansible.builtin.command: 'kubectl' ansible.builtin.command: 'kubectl'
register: kubectl_installed register: kubectl_installed
@@ -100,29 +87,46 @@
become: false become: false
changed_when: false changed_when: false
- name: Setup kubeconfig k3s-ansible context - name: Apply K3S kubeconfig to control node
when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 when: kubectl_installed.rc == 0
ansible.builtin.replace: block:
path: "{{ kubeconfig }}" - name: Copy kubeconfig to control node
regexp: 'name: default' ansible.builtin.fetch:
replace: 'name: k3s-ansible' src: /etc/rancher/k3s/k3s.yaml
delegate_to: 127.0.0.1 dest: "{{ kubeconfig }}"
become: false flat: true
- name: Merge with any existing kube config - name: Change server address in kubeconfig on control node
when: kubeconfig == "~/.kube/config.new" and kubectl_installed.rc == 0 ansible.builtin.shell: |
ansible.builtin.shell: | KUBECONFIG={{ kubeconfig }} kubectl config set-cluster default --server=https://{{ api_endpoint }}:{{ api_port }}
TFILE=$(mktemp) delegate_to: 127.0.0.1
KUBECONFIG=~/.kube/config.new kubectl rename-context default k3s-ansible become: false
KUBECONFIG=~/.kube/config.new kubectl config set-context k3s-ansible --user=k3s-ansible --cluster=k3s-ansible register: csa_result
KUBECONFIG=~/.kube/config.new:~/.kube/config kubectl config view --flatten > ${TFILE} changed_when:
mv ${TFILE} ~/.kube/config - csa_result.rc == 0
rm ~/.kube/config.new
delegate_to: 127.0.0.1 - name: Setup kubeconfig k3s-ansible context on control node
become: false when: kubeconfig != "~/.kube/config"
register: mv_result ansible.builtin.replace:
changed_when: path: "{{ kubeconfig }}"
- mv_result.rc == 0 regexp: 'name: default'
replace: 'name: k3s-ansible'
delegate_to: 127.0.0.1
become: false
- name: Merge with any existing kubeconfig on control node
when: kubeconfig != "~/.kube/config"
ansible.builtin.shell: |
TFILE=$(mktemp)
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 {{ kubeconfig }}
delegate_to: 127.0.0.1
become: false
register: mv_result
changed_when:
- mv_result.rc == 0
- name: Start other server if any and verify status - name: Start other server if any and verify status
when: when: