2016-02-10 18:51:39 +08:00
|
|
|
---
|
|
|
|
- hosts: localhost
|
2016-10-28 20:56:48 +08:00
|
|
|
become: false
|
2016-02-10 18:51:39 +08:00
|
|
|
gather_facts: no
|
|
|
|
vars:
|
2016-12-27 20:16:34 +08:00
|
|
|
cloud_machine_type: g1-small
|
2016-12-15 00:00:38 +08:00
|
|
|
mode: default
|
2016-02-10 18:51:39 +08:00
|
|
|
|
|
|
|
tasks:
|
|
|
|
- name: replace_test_id
|
|
|
|
set_fact:
|
|
|
|
test_name: "{{test_id |regex_replace('\\.', '-')}}"
|
|
|
|
|
2016-12-15 00:00:38 +08:00
|
|
|
- set_fact:
|
|
|
|
instance_names: >-
|
2017-02-13 19:13:28 +08:00
|
|
|
{%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale'] -%}
|
2016-12-15 00:00:38 +08:00
|
|
|
k8s-{{test_name}}-1,k8s-{{test_name}}-2,k8s-{{test_name}}-3
|
|
|
|
{%- else -%}
|
|
|
|
k8s-{{test_name}}-1,k8s-{{test_name}}-2
|
|
|
|
{%- endif -%}
|
|
|
|
|
2016-02-10 18:51:39 +08:00
|
|
|
- name: Create gce instances
|
|
|
|
gce:
|
2016-12-15 00:00:38 +08:00
|
|
|
instance_names: "{{instance_names}}"
|
2016-02-10 18:51:39 +08:00
|
|
|
machine_type: "{{ cloud_machine_type }}"
|
|
|
|
image: "{{ cloud_image }}"
|
2017-01-06 00:08:57 +08:00
|
|
|
preemptible: no
|
2016-02-10 18:51:39 +08:00
|
|
|
service_account_email: "{{ gce_service_account_email }}"
|
2016-12-14 06:01:37 +08:00
|
|
|
pem_file: "{{ gce_pem_file | default(omit)}}"
|
|
|
|
credentials_file: "{{gce_credentials_file | default(omit)}}"
|
2016-02-10 18:51:39 +08:00
|
|
|
project_id: "{{ gce_project_id }}"
|
|
|
|
zone: "{{cloud_region}}"
|
2017-06-27 02:24:52 +08:00
|
|
|
metadata: '{"test_id": "{{test_id}}", "network": "{{kube_network_plugin}}", "startup-script": "{{startup_script}}"}'
|
2016-02-10 18:51:39 +08:00
|
|
|
tags: "build-{{test_name}},{{kube_network_plugin}}"
|
|
|
|
register: gce
|
|
|
|
|
2017-09-10 04:41:31 +08:00
|
|
|
- name: Add instances to host group
|
|
|
|
add_host: hostname={{item.name}} ansible_host={{item.public_ip}} groupname="waitfor_hosts"
|
|
|
|
with_items: '{{gce.instance_data}}'
|
|
|
|
|
2016-02-10 18:51:39 +08:00
|
|
|
- name: Template the inventory
|
|
|
|
template:
|
|
|
|
src: ../templates/inventory-gce.j2
|
|
|
|
dest: "{{ inventory_path }}"
|
|
|
|
|
2017-02-13 19:13:28 +08:00
|
|
|
- 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']
|
|
|
|
|
2017-09-10 04:41:31 +08:00
|
|
|
|
|
|
|
- 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
|