---
- name: set openshift_node_bootstrap to True when building AMI
  set_fact:
    openshift_node_bootstrap: True

- name: query vpc
  ec2_vpc_net_facts:
    region: "{{ openshift_aws_region }}"
    filters:
      'tag:Name': "{{ openshift_aws_vpc_name }}"
  register: vpcout

- name: fetch the default subnet id
  ec2_vpc_subnet_facts:
    region: "{{ openshift_aws_region }}"
    filters:
      "tag:Name": "{{ openshift_aws_subnet_name }}"
      vpc-id: "{{ vpcout.vpcs[0].id }}"
  register: subnetout

- name: create instance for ami creation
  ec2:
    assign_public_ip: yes
    region: "{{ openshift_aws_region }}"
    key_name: "{{ openshift_aws_ssh_key_name }}"
    group: "{{ openshift_aws_build_ami_group }}"
    instance_type: m4.xlarge
    vpc_subnet_id: "{{ openshift_aws_subnet_id | default(subnetout.subnets[0].id) }}"
    image: "{{ openshift_aws_base_ami }}"
    volumes:
    - device_name: /dev/sdb
      volume_type: gp2
      volume_size: 100
      delete_on_termination: true
    wait: yes
    exact_count: 1
    count_tag:
      Name: "{{ openshift_aws_base_ami_name }}"
    instance_tags:
      Name: "{{ openshift_aws_base_ami_name }}"

- name: fetch newly created instances
  ec2_remote_facts:
    region: "{{ openshift_aws_region }}"
    filters:
      "tag:Name": "{{ openshift_aws_base_ami_name }}"
      instance-state-name: running
  register: instancesout
  retries: 20
  delay: 3
  until: instancesout.instances|length > 0

- name: wait for ssh to become available
  wait_for:
    port: 22
    host: "{{ instancesout.instances[0].public_ip_address }}"
    timeout: 300
    search_regex: OpenSSH

- name: add host to nodes
  add_host:
    groups: nodes
    name: "{{ instancesout.instances[0].public_dns_name }}"
