diff options
Diffstat (limited to 'playbooks/aws/openshift-cluster')
| -rw-r--r-- | playbooks/aws/openshift-cluster/build_ami.yml | 8 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/build_node_group.yml | 31 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision.yml | 49 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/provision_nodes.yml | 19 | ||||
| -rw-r--r-- | playbooks/aws/openshift-cluster/vars.yml | 11 | 
5 files changed, 76 insertions, 42 deletions
| diff --git a/playbooks/aws/openshift-cluster/build_ami.yml b/playbooks/aws/openshift-cluster/build_ami.yml index d27874200..998cf4340 100644 --- a/playbooks/aws/openshift-cluster/build_ami.yml +++ b/playbooks/aws/openshift-cluster/build_ami.yml @@ -24,6 +24,14 @@        r_openshift_aws_ssh_keys_users: "{{ provision.instance_users }}"        r_openshift_aws_ssh_keys_region: "{{ provision.region }}" +  - name: Create compute sgs +    include_role: +      name: openshift_aws_sg +    vars: +      r_openshift_aws_sg_clusterid: "{{ provision.clusterid }}" +      r_openshift_aws_sg_region: "{{ provision.region }}" +      r_openshift_aws_sg_type: compute +    - name: fetch the default subnet id      ec2_vpc_subnet_facts:        region: "{{ provision.region }}" diff --git a/playbooks/aws/openshift-cluster/build_node_group.yml b/playbooks/aws/openshift-cluster/build_node_group.yml index 3ef492238..5b0330e46 100644 --- a/playbooks/aws/openshift-cluster/build_node_group.yml +++ b/playbooks/aws/openshift-cluster/build_node_group.yml @@ -1,47 +1,48 @@  ---  - name: fetch recently created AMI    ec2_ami_find: -    region: "{{ provision.region }}" +    region: "{{ openshift_region }}"      sort: creationDate      sort_order: descending -    name: "{{ provision.build.ami_name }}*" -    ami_tags: "{{ provision.build.openshift_ami_tags }}" +    name: "{{ openshift_ami_name }}*" +    ami_tags: "{{ openshift_ami_tags }}"      #no_result_action: fail    register: amiout +  when: not openshift_use_custom_ami  - block:    - name: "Create {{ openshift_build_node_type }} sgs"      include_role:        name: openshift_aws_sg      vars: -      r_openshift_aws_sg_clusterid: "{{ provision.clusterid }}" -      r_openshift_aws_sg_region: "{{ provision.region }}" +      r_openshift_aws_sg_clusterid: "{{ openshift_clusterid }}" +      r_openshift_aws_sg_region: "{{ openshift_region }}"        r_openshift_aws_sg_type: "{{ openshift_build_node_type }}"    - name: "generate a launch config name for {{ openshift_build_node_type }}"      set_fact: -      launch_config_name: "{{ provision.clusterid }}-{{ openshift_build_node_type }}-{{ ansible_date_time.epoch }}" +      launch_config_name: "{{ openshift_clusterid }}-{{ openshift_build_node_type }}-{{ ansible_date_time.epoch }}"    - name: create "{{ openshift_build_node_type }} launch config"      include_role:        name: openshift_aws_launch_config      vars:        r_openshift_aws_launch_config_name: "{{ launch_config_name }}" -      r_openshift_aws_launch_config_clusterid: "{{ provision.clusterid }}" -      r_openshift_aws_launch_config_region: "{{ provision.region }}" -      r_openshift_aws_launch_config: "{{ provision.node_group_config }}" +      r_openshift_aws_launch_config_clusterid: "{{ openshift_clusterid }}" +      r_openshift_aws_launch_config_region: "{{ openshift_region }}" +      r_openshift_aws_launch_config: "{{ openshift_node_group_config }}"        r_openshift_aws_launch_config_type: "{{ openshift_build_node_type }}" -      r_openshift_aws_launch_config_custom_image: "{{ '' if 'results' not in amiout else amiout.results[0].ami_id }}" +      r_openshift_aws_launch_config_custom_image: "{{ '' if 'results' not in amiout and amiout.results|length > 0 else amiout.results[0].ami_id }}"        r_openshift_aws_launch_config_bootstrap_token: "{{ (local_bootstrap['content'] |b64decode) if local_bootstrap is defined else '' }}"    - name: "create {{ openshift_build_node_type }} node groups"      include_role:        name: openshift_aws_node_group      vars: -      r_openshift_aws_node_group_name: "{{ provision.clusterid }} openshift {{ openshift_build_node_type }}" +      r_openshift_aws_node_group_name: "{{ openshift_clusterid }} openshift {{ openshift_build_node_type }}"        r_openshift_aws_node_group_lc_name: "{{ launch_config_name }}" -      r_openshift_aws_node_group_clusterid: "{{ provision.clusterid }}" -      r_openshift_aws_node_group_region: "{{ provision.region }}" -      r_openshift_aws_node_group_config: "{{ provision.node_group_config }}" +      r_openshift_aws_node_group_clusterid: "{{ openshift_clusterid }}" +      r_openshift_aws_node_group_region: "{{ openshift_region }}" +      r_openshift_aws_node_group_config: "{{ openshift_node_group_config }}"        r_openshift_aws_node_group_type: "{{ openshift_build_node_type }}" -      r_openshift_aws_node_group_subnet_name: "{{ provision.vpc.subnets[provision.region][0].az }}" +      r_openshift_aws_node_group_subnet_name: "{{ openshift_subnet_name }}" diff --git a/playbooks/aws/openshift-cluster/provision.yml b/playbooks/aws/openshift-cluster/provision.yml index dfbf61cc7..88ab0ecb1 100644 --- a/playbooks/aws/openshift-cluster/provision.yml +++ b/playbooks/aws/openshift-cluster/provision.yml @@ -16,6 +16,27 @@        r_openshift_aws_vpc_tags: "{{ provision.vpc.tags }}"        r_openshift_aws_vpc_name: "{{ provision.vpc.name | default(provision.clusterid) }}" +  - name: bring iam_cert23 into scope +    include_role: +      name: lib_utils + +  - name: upload certificates to AWS IAM +    iam_cert23: +      state: present +      name: "{{ provision.clusterid }}-master-external" +      cert: "{{ provision.iam_cert_ca.cert_path }}" +      key: "{{ provision.iam_cert_ca.key_path }}" +      cert_chain: "{{ provision.iam_cert_ca.chain_path | default(omit) }}" +    register: elb_cert_chain +    failed_when: +    - "'failed' in elb_cert_chain" +    - elb_cert_chain.failed +    - "'msg' in elb_cert_chain" +    - "'already exists' not in elb_cert_chain.msg" +    when: provision.iam_cert_ca is defined + +  - debug: var=elb_cert_chain +    - name: create aws ssh keypair      include_role:        name: openshift_aws_ssh_keys @@ -36,6 +57,13 @@      include: build_node_group.yml      vars:        openshift_build_node_type: master +      openshift_clusterid: "{{ provision.clusterid }}" +      openshift_region: "{{ provision.region }}" +      openshift_use_custom_ami: "{{ provision.use_custom_ami }}" +      openshift_ami_name: "{{ provision.build.ami_name }}" +      openshift_ami_tags: "{{ provision.build.ami_tags }}" +      openshift_node_group_config: "{{ provision.node_group_config }}" +      openshift_subnet_name: "{{ provision.vpc.subnets[provision.region][0].az }}"    - name: fetch new master instances      ec2_remote_facts: @@ -49,27 +77,6 @@      delay: 3      until: instancesout.instances|length > 0 -  - name: bring iam_cert23 into scope -    include_role: -      name: lib_utils - -  - name: upload certificates to AWS IAM -    iam_cert23: -      state: present -      name: "{{ provision.clusterid }}-master-external" -      cert: "{{ provision.iam_cert_ca.cert_path }}" -      key: "{{ provision.iam_cert_ca.key_path }}" -      cert_chain: "{{ provision.iam_cert_ca.chain_path | default(omit) }}" -    register: elb_cert_chain -    failed_when: -    - "'failed' in elb_cert_chain" -    - elb_cert_chain.failed -    - "'msg' in elb_cert_chain" -    - "'already exists' not in elb_cert_chain.msg" -    when: provision.iam_cert_ca is defined - -  - debug: var=elb_cert_chain -    - name: create our master external and internal load balancers      include_role:        name: openshift_aws_elb diff --git a/playbooks/aws/openshift-cluster/provision_nodes.yml b/playbooks/aws/openshift-cluster/provision_nodes.yml index 5428fb307..87629e354 100644 --- a/playbooks/aws/openshift-cluster/provision_nodes.yml +++ b/playbooks/aws/openshift-cluster/provision_nodes.yml @@ -36,12 +36,27 @@          infra: "infra-{{ ansible_date_time.epoch }}"          compute: "compute-{{ ansible_date_time.epoch }}" -  - name: include build node group +  - name: include build node group for infra      include: build_node_group.yml      vars:        openshift_build_node_type: infra +      openshift_clusterid: "{{ provision.clusterid }}" +      openshift_region: "{{ provision.region }}" +      openshift_use_custom_ami: "{{ proviion.use_custom_ami }}" +      openshift_ami_name: "{{ provision.build.ami_name }}" +      openshift_ami_tags: "{{ provision.build.openshift_ami_tags }}" +      openshift_node_group_config: "{{ provision.node_group_config }}" +      openshift_subnet_name: "{{ provision.vpc.subnets[provision.region][0].az }}" -  - name: include build node group + +  - name: include build node group for compute      include: build_node_group.yml      vars:        openshift_build_node_type: compute +      openshift_clusterid: "{{ provision.clusterid }}" +      openshift_region: "{{ provision.region }}" +      openshift_use_custom_ami: "{{ proviion.use_custom_ami }}" +      openshift_ami_name: "{{ provision.build.ami_name }}" +      openshift_ami_tags: "{{ provision.build.openshift_ami_tags }}" +      openshift_node_group_config: "{{ provision.node_group_config }}" +      openshift_subnet_name: "{{ provision.vpc.subnets[provision.region][0].az }}" diff --git a/playbooks/aws/openshift-cluster/vars.yml b/playbooks/aws/openshift-cluster/vars.yml index 47da03cb7..1d91593e2 100644 --- a/playbooks/aws/openshift-cluster/vars.yml +++ b/playbooks/aws/openshift-cluster/vars.yml @@ -14,7 +14,7 @@ provision:      # when creating an encrypted AMI please specify use_encryption      use_encryption: False -    openshift_ami_tags: +    ami_tags:        bootstrap: "true"        openshift-created: "true"        clusterid: "{{ clusterid }}" @@ -22,6 +22,9 @@ provision:    # Use s3 backed registry storage    openshift_registry_s3: True +  # whether to use custome ami for each node type +  use_custom_ami: False +    # if using custom certificates these are required for the ELB    iam_cert_ca:      name: "{{ clusterid }}_openshift" @@ -45,7 +48,7 @@ provision:      # master specific cluster node settings      master:        instance_type: m4.xlarge -      ami: ami-cdeec8b6  # if using an encrypted AMI this will be replaced +      ami: ami-cdeec8b6  # if using an encrypted or custom AMI this will be replaced        volumes:        - device_name: /dev/sdb          volume_size: 100 @@ -65,7 +68,7 @@ provision:      # compute specific cluster node settings      compute:        instance_type: m4.xlarge -      ami: ami-cdeec8b6 +      ami: ami-cdeec8b6  # if using an encrypted or custom AMI this will be replaced        volumes:        - device_name: /dev/sdb          volume_size: 100 @@ -84,7 +87,7 @@ provision:      # infra specific cluster node settings      infra:        instance_type: m4.xlarge -      ami: ami-cdeec8b6 +      ami: ami-cdeec8b6  # if using an encrypted or custom AMI this will be replaced        volumes:        - device_name: /dev/sdb          volume_size: 100 | 
