--- - hosts: localhost become: false gather_facts: no vars: cloud_machine_type: g1-small mode: default preemptible: no ci_job_name: "{{ lookup('env', 'CI_JOB_NAME') }}" delete_group_vars: no tasks: - name: include vars for test {{ ci_job_name }} include_vars: "../files/{{ ci_job_name }}.yml" - name: replace_test_id set_fact: test_name: "{{ test_id | regex_replace('\\.', '-') }}" - name: set instance names set_fact: # noqa: jinja[spacing] instance_names: >- {%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale'] -%} k8s-{{ test_name }}-1,k8s-{{ test_name }}-2,k8s-{{ test_name }}-3 {%- elif mode == 'aio' -%} k8s-{{ test_name }}-1 {%- else -%} k8s-{{ test_name }}-1,k8s-{{ test_name }}-2 {%- endif -%} - name: Create gce instances google.cloud.gcp_compute_instance: # noqa args[module] - Probably doesn't work instance_names: "{{ instance_names }}" machine_type: "{{ cloud_machine_type }}" image: "{{ cloud_image | default(omit) }}" image_family: "{{ cloud_image_family | default(omit) }}" preemptible: "{{ preemptible }}" 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 }}", "startup-script": "{{ startup_script | default("") }}"}' tags: "build-{{ test_name }},{{ kube_network_plugin }}" ip_forward: yes service_account_permissions: ['compute-rw'] register: gce - name: Add instances to host group add_host: hostname: "{{ item.public_ip }}" groupname: "waitfor_hosts" with_items: '{{ gce.instance_data }}' - name: Template the inventory # noqa no-relative-paths - CI inventory templates are not in role_path template: src: ../templates/inventory-gce.j2 dest: "{{ inventory_path }}" mode: 0644 - name: Make group_vars directory file: path: "{{ inventory_path | dirname }}/group_vars" state: directory mode: 0755 when: mode in ['scale', 'separate-scale', 'ha-scale'] - name: Template fake hosts group vars # noqa no-relative-paths - CI templates are not in role_path template: src: ../templates/fake_hosts.yml.j2 dest: "{{ inventory_path | dirname }}/group_vars/fake_hosts.yml" mode: 0644 when: mode in ['scale', 'separate-scale', 'ha-scale'] - name: Delete group_vars directory file: path: "{{ inventory_path | dirname }}/group_vars" state: absent recurse: yes when: delete_group_vars