b1dae28aa5
Replace Hetzner infrastructure and cloud-provider assumptions with Proxmox VM clones, kube-vip API HA, and NFS-backed storage. Update bootstrap, Flux addons, CI workflows, and docs to target the new private Proxmox baseline while preserving the existing Tailscale, Doppler, Flux, Rancher, and B2 backup flows.
59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
---
|
|
- name: Check if k3s agent is already installed
|
|
stat:
|
|
path: /usr/local/bin/k3s-agent
|
|
register: k3s_agent_binary
|
|
|
|
- name: Download k3s install script
|
|
get_url:
|
|
url: https://get.k3s.io
|
|
dest: /tmp/install-k3s.sh
|
|
mode: "0755"
|
|
when: not k3s_agent_binary.stat.exists
|
|
|
|
- name: Install k3s agent
|
|
when: not k3s_agent_binary.stat.exists
|
|
block:
|
|
- name: Run k3s agent install
|
|
environment:
|
|
INSTALL_K3S_VERSION: "{{ k3s_version if k3s_version != 'latest' else '' }}"
|
|
K3S_URL: "{{ k3s_server_url }}"
|
|
K3S_TOKEN: "{{ k3s_token }}"
|
|
command: >-
|
|
/tmp/install-k3s.sh agent
|
|
--node-ip {{ k3s_node_ip }}
|
|
--flannel-iface={{ k3s_flannel_iface }}
|
|
{% if k3s_kubelet_cloud_provider_external | bool %}--kubelet-arg=cloud-provider=external{% endif %}
|
|
args:
|
|
creates: /usr/local/bin/k3s-agent
|
|
rescue:
|
|
- name: Show k3s-agent service status after failed install
|
|
command: systemctl status k3s-agent --no-pager
|
|
register: k3s_agent_status_after_install
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Show recent k3s-agent logs after failed install
|
|
command: journalctl -u k3s-agent -n 120 --no-pager
|
|
register: k3s_agent_journal_after_install
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Fail with k3s-agent diagnostics
|
|
fail:
|
|
msg: |
|
|
k3s agent install failed on {{ inventory_hostname }}.
|
|
Service status:
|
|
{{ k3s_agent_status_after_install.stdout | default('n/a') }}
|
|
|
|
Recent logs:
|
|
{{ k3s_agent_journal_after_install.stdout | default('n/a') }}
|
|
|
|
- name: Wait for k3s agent to be ready
|
|
command: systemctl is-active k3s-agent
|
|
register: agent_status
|
|
until: agent_status.stdout == "active"
|
|
retries: 30
|
|
delay: 10
|
|
changed_when: false
|