prole/infrastructure/playbooks/k3s_fetch_kubeconfig.yml

27 lines
968 B
YAML

---
- name: Fetch k3s kubeconfig from primary node
hosts: myrddin.prole.org
gather_facts: false
vars:
k3s_kubeconfig_src: /etc/rancher/k3s/k3s.yaml
k3s_api_server: "https://{{ inventory_hostname }}:6443"
local_kubeconfig_path: "{{ playbook_dir }}/../../prole-k3s.kubeconfig"
tasks:
- name: Read k3s kubeconfig from primary node
ansible.builtin.slurp:
src: "{{ k3s_kubeconfig_src }}"
register: k3s_kubeconfig_raw
become: true
- name: Rewrite kubeconfig server to primary endpoint
ansible.builtin.set_fact:
k3s_kubeconfig_rendered: "{{ k3s_kubeconfig_raw.content | b64decode | regex_replace('server: https://[^\\s]+', 'server: ' ~ k3s_api_server) }}"
- name: Save kubeconfig locally for etc/init scripts
ansible.builtin.copy:
content: "{{ k3s_kubeconfig_rendered }}"
dest: "{{ local_kubeconfig_path }}"
mode: "0600"
delegate_to: localhost
run_once: true