From 440e268e4f983ddd58787673de18d74bf3cc1d4d Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Sun, 26 Apr 2026 04:28:21 +0000 Subject: [PATCH] fix: seed kube-vip image from runner --- .gitea/workflows/deploy.yml | 14 ++++++++++++++ ansible/roles/kube-vip-deploy/tasks/main.yml | 19 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a98a6d6..0a64a99 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -365,6 +365,20 @@ jobs: working-directory: ansible run: python3 generate_inventory.py + - name: Prepare kube-vip image archive + run: | + set -euo pipefail + mkdir -p outputs + for attempt in 1 2 3; do + if docker pull ghcr.io/kube-vip/kube-vip:v1.1.2; then + docker save -o outputs/kube-vip-bootstrap.tar ghcr.io/kube-vip/kube-vip:v1.1.2 + exit 0 + fi + sleep 10 + done + echo "Best-effort runner kube-vip image archive preparation failed; Ansible will try node-side pulls" >&2 + continue-on-error: true + - name: Run Ansible Playbook working-directory: ansible run: | diff --git a/ansible/roles/kube-vip-deploy/tasks/main.yml b/ansible/roles/kube-vip-deploy/tasks/main.yml index 33baba6..5964da1 100644 --- a/ansible/roles/kube-vip-deploy/tasks/main.yml +++ b/ansible/roles/kube-vip-deploy/tasks/main.yml @@ -1,4 +1,23 @@ --- +- name: Check for runner-provided kube-vip image archive + stat: + path: "{{ playbook_dir }}/../outputs/kube-vip-bootstrap.tar" + delegate_to: localhost + become: false + register: kube_vip_bootstrap_archive + +- name: Copy runner-provided kube-vip image archive + copy: + src: "{{ playbook_dir }}/../outputs/kube-vip-bootstrap.tar" + dest: /tmp/kube-vip-bootstrap.tar + mode: "0644" + when: kube_vip_bootstrap_archive.stat.exists + +- name: Import runner-provided kube-vip image archive + command: /usr/local/bin/ctr -n k8s.io images import /tmp/kube-vip-bootstrap.tar + changed_when: false + when: kube_vip_bootstrap_archive.stat.exists + - name: Pre-pull kube-vip bootstrap images into containerd shell: | if /usr/local/bin/ctr -n k8s.io images ls -q | grep -Fx -- "{{ item }}" >/dev/null; then