From d6168083c27f7302939b18e6b491d4d608929e97 Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Sun, 1 Mar 2026 03:37:08 +0000 Subject: [PATCH] fix: support CCM deployment or daemonset rollout checks --- ansible/roles/ccm/tasks/main.yml | 42 +++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/ansible/roles/ccm/tasks/main.yml b/ansible/roles/ccm/tasks/main.yml index 9c41163..ac662ae 100644 --- a/ansible/roles/ccm/tasks/main.yml +++ b/ansible/roles/ccm/tasks/main.yml @@ -24,10 +24,46 @@ command: kubectl apply -f https://raw.githubusercontent.com/hetznercloud/hcloud-cloud-controller-manager/main/deploy/ccm-networks.yaml changed_when: true -- name: Wait for CCM pods to be ready +- name: Detect CCM workload kind + shell: | + if kubectl -n hetzner-cloud-system get deployment hcloud-cloud-controller-manager >/dev/null 2>&1; then + echo deployment + elif kubectl -n hetzner-cloud-system get daemonset hcloud-cloud-controller-manager >/dev/null 2>&1; then + echo daemonset + else + echo missing + fi + register: ccm_workload_kind + changed_when: false + +- name: Wait for CCM deployment rollout command: kubectl rollout status deployment/hcloud-cloud-controller-manager -n hetzner-cloud-system - register: ccm_rollout - until: ccm_rollout.rc == 0 + register: ccm_rollout_deploy + until: ccm_rollout_deploy.rc == 0 changed_when: false retries: 30 delay: 10 + when: ccm_workload_kind.stdout == "deployment" + +- name: Wait for CCM daemonset rollout + command: kubectl rollout status daemonset/hcloud-cloud-controller-manager -n hetzner-cloud-system + register: ccm_rollout_ds + until: ccm_rollout_ds.rc == 0 + changed_when: false + retries: 30 + delay: 10 + when: ccm_workload_kind.stdout == "daemonset" + +- name: Show CCM namespace objects when workload missing + command: kubectl -n hetzner-cloud-system get all + register: ccm_ns_objects + changed_when: false + when: ccm_workload_kind.stdout == "missing" + +- name: Fail when CCM workload is missing + fail: + msg: | + hcloud-cloud-controller-manager workload not found after applying manifest. + Namespace objects: + {{ ccm_ns_objects.stdout | default('n/a') }} + when: ccm_workload_kind.stdout == "missing"