summaryrefslogtreecommitdiffstats
path: root/roles/openshift_aws/tasks/launch_config.yml
blob: 65c5a6cc0b0e273f6b15eada3b6de774423b32e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
---
- fail:
    msg: "Ensure that an AMI value is defined for openshift_aws_ami or openshift_aws_launch_config_custom_image."
  when:
  - openshift_aws_ami is undefined

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

# Create the scale group config
- name: Create the node scale group launch config
  ec2_lc:
    name: "{{ openshift_aws_launch_config_name }}"
    region: "{{ openshift_aws_region }}"
    image_id: "{{ openshift_aws_ami }}"
    instance_type: "{{ openshift_aws_node_group_config[openshift_aws_node_group_type].instance_type }}"
    security_groups: "{{ ec2sgs.security_groups | map(attribute='group_id')| list }}"
    user_data: |-
      #cloud-config
      {%  if openshift_aws_node_group_type != 'master' %}
      write_files:
      - path: /root/csr_kubeconfig
        owner: root:root
        permissions: '0640'
        content: {{ openshift_aws_launch_config_bootstrap_token | default('') | to_yaml }}
      - path: /root/openshift_settings
        owner: root:root
        permissions: '0640'
        content:
          openshift_type: "{{ openshift_aws_node_group_type }}"
      runcmd:
      - [ systemctl, enable, atomic-openshift-node]
      - [ systemctl, start, atomic-openshift-node]
      {% endif %}
    key_name: "{{ openshift_aws_ssh_key_name }}"
    ebs_optimized: False
    volumes: "{{ openshift_aws_node_group_config[openshift_aws_node_group_type].volumes }}"
    assign_public_ip: True