diff --git a/tests/cloud_playbooks/create-gce.yml b/tests/cloud_playbooks/create-gce.yml
index 1a82c50d7f32e0ce13dbc25fa95ca72c25792749..afa7577198b939b4b14c8f87ac54adeb7facee54 100644
--- a/tests/cloud_playbooks/create-gce.yml
+++ b/tests/cloud_playbooks/create-gce.yml
@@ -34,6 +34,10 @@
         tags: "build-{{test_name}},{{kube_network_plugin}}"
       register: gce
 
+    - name: Add instances to host group
+      add_host: hostname={{item.name}} ansible_host={{item.public_ip}} groupname="waitfor_hosts"
+      with_items: '{{gce.instance_data}}'
+
     - name: Template the inventory
       template:
         src: ../templates/inventory-gce.j2
@@ -51,6 +55,10 @@
         dest: "{{ inventory_path|dirname }}/group_vars/fake_hosts.yml"
       when: mode in ['scale', 'separate-scale', 'ha-scale']
 
-    - name: Wait for SSH to come up
-      wait_for: host={{item.public_ip}} port=22 delay=30 timeout=180 state=started
-      with_items: "{{gce.instance_data}}"
+
+- name: Wait for instances
+  hosts: "waitfor_hosts"
+  gather_facts: false
+  tasks:
+    - name: Wait for SSH to come up.
+      local_action: wait_for host={{inventory_hostname}} port=22 delay=5 timeout=240 state=started
diff --git a/tests/testcases/010_check-apiserver.yml b/tests/testcases/010_check-apiserver.yml
index 82c8b23d46894242d2706f3423dafdc9aa68a666..5b053fd4b80c7632c2e8c00c35c4f2877c46a2ba 100644
--- a/tests/testcases/010_check-apiserver.yml
+++ b/tests/testcases/010_check-apiserver.yml
@@ -6,6 +6,6 @@
     uri:
       url: "https://{{ access_ip | default(ansible_default_ipv4.address) }}:{{ kube_apiserver_port }}/api/v1"
       user: kube
-      password: "{{ lookup('password', '../../credentials/kube_user length=15') }}"
+      password: "{{ lookup('password', '../../credentials/kube_user length=15 chars=ascii_letters,digits') }}"
       validate_certs: no
       status_code: 200