---
- name: fail when params are not set
  fail:
    msg: Please specify the role parameters.
  when:
  - r_openshift_aws_launch_config_cluseterid is undefined
  - r_openshift_aws_launch_config_type is undefined
  - r_openshift_aws_launch_config_region is undefined
  - r_openshift_aws_launch_config is undefined

- name: fetch the security groups for launch config
  ec2_group_facts:
    filters:
      group-name:
      - "{{ r_openshift_aws_launch_config_clusterid }}"  # default sg
      - "{{ r_openshift_aws_launch_config_clusterid }}_{{ r_openshift_aws_launch_config_type }}"  # node type sg
      - "{{ r_openshift_aws_launch_config_clusterid }}_{{ r_openshift_aws_launch_config_type }}_k8s"  # node type sg k8s
    region: "{{ r_openshift_aws_launch_config_region }}"
  register: ec2sgs

# Create the scale group config
- name: Create the node scale group config
  ec2_lc:
    name: "{{ r_openshift_aws_launch_config_name }}"
    region: "{{ r_openshift_aws_launch_config_region }}"
    image_id: "{{ r_openshift_aws_launch_config_custom_image if 'ami-' in r_openshift_aws_launch_config_custom_image else r_openshift_aws_launch_config[r_openshift_aws_launch_config_type].ami }}"
    instance_type: "{{ r_openshift_aws_launch_config[r_openshift_aws_launch_config_type].instance_type }}"
    security_groups: "{{ ec2sgs.security_groups | map(attribute='group_id')| list }}"
    user_data: |-
      #cloud-config
      {%  if r_openshift_aws_launch_config_type != 'master' %}
      write_files:
      - path: /root/csr_kubeconfig
        owner: root:root
        permissions: '0640'
        content: {{ r_openshift_aws_launch_config_bootstrap_token | default('') | to_yaml }}
      - path: /root/openshift_settings
        owner: root:root
        permissions: '0640'
        content:
          openshift_type: "{{ r_openshift_aws_launch_config_type }}"
      runcmd:
      - [ systemctl, enable, atomic-openshift-node]
      - [ systemctl, start, atomic-openshift-node]
      {% endif %}
    key_name: "{{ r_openshift_aws_launch_config.ssh_key_name }}"
    ebs_optimized: False
    volumes: "{{ r_openshift_aws_launch_config[r_openshift_aws_launch_config_type].volumes }}"
    assign_public_ip: True
  register: test
