chore: Add retry logic for identity resource creation in keystone role (#712)

Co-authored-by: okozachenko1203 <okozachenko1203@users.noreply.github.com>
diff --git a/roles/keystone/tasks/main.yml b/roles/keystone/tasks/main.yml
index e2db9b9..6913630 100644
--- a/roles/keystone/tasks/main.yml
+++ b/roles/keystone/tasks/main.yml
@@ -112,14 +112,31 @@
   retries: 60
   delay: 1
 
+- name: Wait until identity service ready
+  kubernetes.core.k8s_info:
+    api_version: apps/v1
+    kind: Deployment
+    name: keystone-api
+    namespace: openstack
+    wait_sleep: 10
+    wait_timeout: 600
+    wait: true
+    wait_condition:
+      type: Available
+      status: true
+
 - name: Create Keystone domains
   run_once: true
   vexxhost.atmosphere.identity_domain:
     name: "{{ item.name }}"
-  register: keystone_domains_result
   loop: "{{ keystone_domains }}"
   loop_control:
     label: "{{ item.name }}"
+  # NOTE: This often fails since it takes time for the keystone api ready.
+  retries: 60
+  delay: 5
+  register: keystone_domains_result
+  until: keystone_domains_result is not failed
 
 - name: Create Keystone identity providers
   run_once: true