From 666c48280984ff240c2abc575148e523ae44e705 Mon Sep 17 00:00:00 2001
From: entlein <einentlein@gmail.com>
Date: Wed, 29 Jun 2022 17:55:11 +0200
Subject: [PATCH] adding fancy wait condition

---
 roles/rke2/tasks/fix_selinux.yml | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/roles/rke2/tasks/fix_selinux.yml b/roles/rke2/tasks/fix_selinux.yml
index 9f40fa2..1976652 100644
--- a/roles/rke2/tasks/fix_selinux.yml
+++ b/roles/rke2/tasks/fix_selinux.yml
@@ -55,9 +55,24 @@
 #     state: absent
 #rancher    40814  0.1  0.3 751524 58892 ?        Ssl  05:02   0:16 /bin/openstack-cloud-controller-manager --v=2 --cloud-config=/etc/config/cloud.conf --cluster-name=kubernetes --cloud-provider=openstack --use-service-account-credentials=true --controllers=cloud-node,cloud-node-lifecycle,route,service --bind-address=127.0.0.1 --cluster-name=rke2-cluster-beta
 
-#- name: wait for openstack-cloud-controller to have booted (very indirect and stupid method)
-#  wait_for:
-#    path:  /var/lib/kubelet/pods/*/containers/rke2-ingress-nginx-controller
+
+- name: Wait for all control-plane pods become created
+  shell: "/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get po --namespace=kube-system --selector tier=control-plane --output=jsonpath='{.items[*].metadata.name}'"
+  register: control_plane_pods_created
+  until: item in control_plane_pods_created.stdout
+  retries: 10
+  delay: 30
+  with_items:
+    - etcd
+    - kube-apiserver
+    - kube-controller-manager
+    - kube-scheduler
+
+- name: Wait for openstack-cloud-controller deamon set to be ready
+  shell: "/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml wait --namespace=kube-system --for=condition=Unready pods --selector app=openstack-cloud-controller-manager --timeout=60s"
+  register: openstack_ccm_ready
+
+- debug: var=openstack_ccm_ready.stdout_lines
 
 - name: Enable SELinux
   selinux:
-- 
GitLab