c12s-kubespray/tests/cloud_playbooks/create-gce.yml

81 lines
2.7 KiB
YAML
Raw Normal View History

2016-02-10 10:51:39 +00:00
---
- hosts: localhost
become: false
2016-02-10 10:51:39 +00:00
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
2016-02-10 10:51:39 +00:00
tasks:
2017-10-20 07:26:42 +00:00
- name: include vars for test {{ ci_job_name }}
include_vars: "../files/{{ ci_job_name }}.yml"
2016-02-10 10:51:39 +00:00
- 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
{%- elif mode == 'aio' -%}
k8s-{{test_name}}-1
{%- else -%}
k8s-{{test_name}}-1,k8s-{{test_name}}-2
{%- endif -%}
2016-02-10 10:51:39 +00:00
- name: Create gce instances
gce:
instance_names: "{{instance_names}}"
2016-02-10 10:51:39 +00:00
machine_type: "{{ cloud_machine_type }}"
image: "{{ cloud_image | default(omit) }}"
image_family: "{{ cloud_image_family | default(omit) }}"
preemptible: "{{ preemptible }}"
2016-02-10 10:51:39 +00:00
service_account_email: "{{ gce_service_account_email }}"
2016-12-13 22:01:37 +00:00
pem_file: "{{ gce_pem_file | default(omit)}}"
credentials_file: "{{gce_credentials_file | default(omit)}}"
2016-02-10 10:51:39 +00:00
project_id: "{{ gce_project_id }}"
zone: "{{cloud_region}}"
metadata: '{"test_id": "{{test_id}}", "network": "{{kube_network_plugin}}", "startup-script": "{{startup_script|default("")}}"}'
2016-02-10 10:51:39 +00:00
tags: "build-{{test_name}},{{kube_network_plugin}}"
ip_forward: yes
service_account_permissions: ['compute-rw']
2016-02-10 10:51:39 +00:00
register: gce
- name: Add instances to host group
add_host: hostname={{item.public_ip}} groupname="waitfor_hosts"
with_items: '{{gce.instance_data}}'
2016-02-10 10:51:39 +00:00
- 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: Delete group_vars directory
file:
path: "{{ inventory_path|dirname }}/group_vars"
state: absent
recurse: yes
when: delete_group_vars
- 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=60 timeout=240 state=started