1
0
mirror of https://github.com/openshift/openshift-ansible-contrib.git synced 2026-02-05 09:45:58 +01:00
Files
2017-06-13 14:15:30 -04:00

99 lines
3.2 KiB
YAML

---
- hosts: localhost
vars:
federation_id: "{{ lookup('env', 'FEDERATION_ID') }}"
gce_cluster_count: "{{ lookup('env', 'GCE_CLUSTER_COUNT') | default(3, true) }}"
gce_creds_file: "{{ lookup('env', 'GCE_CREDS_FILE') }}"
gce_service_account: "{{ lookup('env', 'GCE_SERVICE_ACCOUNT') }}"
gce_project_id: "{{ lookup('env', 'GCE_PROJECT_ID') }}"
gce_regions: "{{ lookup('env', 'GCE_REGIONS') | default('us-east1,us-east4,us-west1', true) }}"
gce_regions_zones:
us-east1:
- us-east1-b
- us-east1-c
- us-east1-d
us-east4:
- us-east4-a
- us-east4-b
- us-east4-c
us-central1:
- us-central1-a
- us-central1-b
- us-central1-c
- us-central1-f
us-west1:
- us-west1-a
- us-west1-b
- us-west1-c
europe-west1:
- europe-west1-b
- europe-west1-c
- europe-west1-d
asia-east1:
- asia-east1-a
- asia-east1-b
- asia-east1-c
asia-northeast1:
- asia-northeast1-a
- asia-northeast1-b
- asia-northeast1-c
asia-southeast1:
- asia-southeast1-a
- asia-southeast1-b
tasks:
- debug: var=federation_id
- debug: var=gce_cluster_count
- debug: var=gce_creds_file
- debug: var=gce_service_account
- debug: var=gce_project_id
- debug: var=gce_regions
- assert:
that:
- federation_id != ''
- gce_cluster_count > 0 # this will need to be updated when other cloud providers are supported
- gce_creds_file != ''
- gce_service_account != ''
- gce_project_id != ''
- gce_regions.split(',') | difference(gce_regions_zones.keys()) | length == 0
- name: Create firewall config for federation clusters
gce_net:
name: default
credentials_file: "{{ gce_creds_file }}"
service_account_email: "{{ gce_service_account }}"
project_id: "{{ gce_project_id }}"
fwname: "{{ federation_id }}"
allowed: 'tcp:22,10250,8443,30000-32767;udp:4789,30000-32767;icmp'
src_range: ['0.0.0.0/0']
target_tags: "{{ federation_id }}"
state: present
- name: Create GCE cluster hosts
gce:
name: "{{ federation_id }}-gce-cluster{{ item }}"
credentials_file: "{{ gce_creds_file }}"
service_account_email: "{{ gce_service_account }}"
project_id: "{{ gce_project_id }}"
service_account_permissions:
- storage-ro
- compute-rw
- monitoring
- logging-write
- 'https://www.googleapis.com/auth/ndev.clouddns.readwrite'
image: centos-7
state: present
zone: "{{ gce_regions_zones[(gce_regions.split(','))[(item | int % (gce_regions.split(',') | length)) - 1]] | random }}"
tags: "{{ federation_id }},{{ federation_id }}-gce-cluster{{ item }}"
with_sequence: count={{ gce_cluster_count }}
register: gce
- name: Wait for SSH for instances
wait_for:
delay: 1
host: "{{ item.instance_data.0.public_ip }}"
port: 22
state: started
timeout: 30
with_items: "{{ gce.results }}"