--- - hosts: localhost become: false gather_facts: no vars: cloud_machine_type: g1-small mode: default tasks: - name: replace_test_id set_fact: test_name: "{{test_id |regex_replace('\\.', '-')}}" - set_fact: instance_names: >- {%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale'] -%} k8s-{{test_name}}-1,k8s-{{test_name}}-2,k8s-{{test_name}}-3 {%- else -%} k8s-{{test_name}}-1,k8s-{{test_name}}-2 {%- endif -%} - name: Create gce instances gce: instance_names: "{{instance_names}}" machine_type: "{{ cloud_machine_type }}" image: "{{ cloud_image }}" preemptible: no service_account_email: "{{ gce_service_account_email }}" pem_file: "{{ gce_pem_file | default(omit)}}" credentials_file: "{{gce_credentials_file | default(omit)}}" project_id: "{{ gce_project_id }}" zone: "{{cloud_region}}" metadata: '{"test_id": "{{test_id}}", "network": "{{kube_network_plugin}}"}' tags: "build-{{test_name}},{{kube_network_plugin}}" register: gce - name: Template the inventory template: src: ../templates/inventory-gce.j2 dest: "{{ inventory_path }}" - name: Make group_vars directory file: path: "{{ inventory_path|dirname }}/group_vars" state: directory when: mode in ['scale', 'separate-scale', 'ha-scale'] - name: Template fake hosts group vars template: src: ../templates/fake_hosts.yml.j2 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=10 timeout=180 state=started with_items: "{{gce.instance_data}}"