diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/openshift_aws/README.md | 2 | ||||
| -rw-r--r-- | roles/openshift_aws/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/openshift_aws/tasks/master_facts.yml | 22 | ||||
| -rw-r--r-- | roles/openshift_aws/tasks/provision.yml | 8 | ||||
| -rw-r--r-- | roles/openshift_aws/tasks/provision_instance.yml (renamed from roles/openshift_aws/tasks/build_ami.yml) | 41 | ||||
| -rw-r--r-- | roles/openshift_aws/tasks/setup_master_group.yml | 35 | 
6 files changed, 85 insertions, 24 deletions
| diff --git a/roles/openshift_aws/README.md b/roles/openshift_aws/README.md index 696efbea5..ff96081fe 100644 --- a/roles/openshift_aws/README.md +++ b/roles/openshift_aws/README.md @@ -23,7 +23,6 @@ From this role:  | openshift_aws_ami_copy_wait                       | False  | openshift_aws_users                               | []  | openshift_aws_launch_config_name                  | {{ openshift_aws_clusterid }}-{{ openshift_aws_node_group_type }} -| openshift_aws_create_vpc                          | False  | openshift_aws_node_group_type                     | master  | openshift_aws_elb_cert_arn                        | ''  | openshift_aws_kubernetes_cluster_status           | owned @@ -72,7 +71,6 @@ Example Playbook    vars:      openshift_aws_clusterid: test      openshift_aws_region: us-east-1 -    openshift_aws_create_vpc: true  ```  License diff --git a/roles/openshift_aws/defaults/main.yml b/roles/openshift_aws/defaults/main.yml index 94c0f4472..ea09857b0 100644 --- a/roles/openshift_aws/defaults/main.yml +++ b/roles/openshift_aws/defaults/main.yml @@ -1,5 +1,4 @@  --- -openshift_aws_create_vpc: True  openshift_aws_create_s3: True  openshift_aws_create_iam_cert: True  openshift_aws_create_security_groups: True diff --git a/roles/openshift_aws/tasks/master_facts.yml b/roles/openshift_aws/tasks/master_facts.yml new file mode 100644 index 000000000..737cfc7a6 --- /dev/null +++ b/roles/openshift_aws/tasks/master_facts.yml @@ -0,0 +1,22 @@ +--- +- name: fetch elbs +  ec2_elb_facts: +    region: "{{ openshift_aws_region }}" +    names: +    - "{{ item }}" +  with_items: +  - "{{ openshift_aws_elb_name }}-external" +  - "{{ openshift_aws_elb_name }}-internal" +  delegate_to: localhost +  register: elbs + +- debug: var=elbs + +- name: set fact +  set_fact: +    openshift_master_cluster_hostname: "{{ elbs.results[1].elbs[0].dns_name }}" +    osm_custom_cors_origins: +    - "{{ elbs.results[1].elbs[0].dns_name }}" +    - "console.{{ openshift_aws_clusterid | default('default') }}.openshift.com" +    - "api.{{ openshift_aws_clusterid | default('default') }}.openshift.com" +  with_items: "{{ groups['masters'] }}" diff --git a/roles/openshift_aws/tasks/provision.yml b/roles/openshift_aws/tasks/provision.yml index a2920b744..a8518d43a 100644 --- a/roles/openshift_aws/tasks/provision.yml +++ b/roles/openshift_aws/tasks/provision.yml @@ -1,16 +1,8 @@  --- -- when: openshift_aws_create_vpc | bool -  name: create default vpc -  include: vpc.yml -  - when: openshift_aws_create_iam_cert | bool    name: create the iam_cert for elb certificate    include: iam_cert.yml -- when: openshift_aws_users | length > 0 -  name: create aws ssh keypair -  include: ssh_keys.yml -  - when: openshift_aws_create_s3 | bool    name: create s3 bucket for registry    include: s3.yml diff --git a/roles/openshift_aws/tasks/build_ami.yml b/roles/openshift_aws/tasks/provision_instance.yml index 48555e5da..1384bae59 100644 --- a/roles/openshift_aws/tasks/build_ami.yml +++ b/roles/openshift_aws/tasks/provision_instance.yml @@ -1,16 +1,4 @@  --- -- when: openshift_aws_create_vpc | bool -  name: create a vpc -  include: vpc.yml - -- when: openshift_aws_users | length  > 0 -  name: create aws ssh keypair -  include: ssh_keys.yml - -- when: openshift_aws_create_security_groups | bool -  name: Create compute security_groups -  include: security_group.yml -  - name: query vpc    ec2_vpc_net_facts:      region: "{{ openshift_aws_region }}" @@ -33,7 +21,7 @@      key_name: "{{ openshift_aws_ssh_key_name }}"      group: "{{ openshift_aws_build_ami_group }}"      instance_type: m4.xlarge -    vpc_subnet_id: "{{ subnetout.subnets[0].id }}" +    vpc_subnet_id: "{{ openshift_aws_subnet_id | default(subnetout.subnets[0].id) }}"      image: "{{ openshift_aws_base_ami }}"      volumes:      - device_name: /dev/sdb @@ -46,3 +34,30 @@        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: Pause 10 seconds to ensure ssh actually accepts logins +  pause: +    seconds: 20 + +- name: add host to nodes +  add_host: +    groups: nodes +    name: "{{ instancesout.instances[0].public_dns_name }}" diff --git a/roles/openshift_aws/tasks/setup_master_group.yml b/roles/openshift_aws/tasks/setup_master_group.yml new file mode 100644 index 000000000..166f3b938 --- /dev/null +++ b/roles/openshift_aws/tasks/setup_master_group.yml @@ -0,0 +1,35 @@ +--- +- name: Alert user to variables needed - clusterid +  debug: +    msg: "openshift_aws_clusterid={{ openshift_aws_clusterid }}" + +- name: Alert user to variables needed - region +  debug: +    msg: "openshift_aws_region={{ openshift_aws_region }}" + +- name: fetch newly created instances +  ec2_remote_facts: +    region: "{{ openshift_aws_region }}" +    filters: +      "tag:clusterid": "{{ openshift_aws_clusterid }}" +      "tag:host-type": master +      instance-state-name: running +  register: instancesout +  retries: 20 +  delay: 3 +  until: instancesout.instances|length > 0 + +- name: add new master to masters group +  add_host: +    groups: "masters,etcd,nodes" +    name: "{{ item.public_dns_name }}" +    hostname: "{{ openshift_aws_clusterid }}-master-{{ item.id[:-5] }}" +  with_items: "{{ instancesout.instances }}" + +- name: wait for ssh to become available +  wait_for: +    port: 22 +    host: "{{ item.public_dns_name }}" +    timeout: 300 +    search_regex: OpenSSH +  with_items: "{{ instancesout.instances }}" | 
