diff options
Diffstat (limited to 'playbooks/gce')
| -rw-r--r-- | playbooks/gce/openshift-cluster/config.yml | 34 | ||||
| -rw-r--r-- | playbooks/gce/openshift-cluster/launch.yml | 20 | ||||
| l--------- | playbooks/gce/openshift-cluster/lookup_plugins | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-cluster/tasks/launch_instances.yml | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-cluster/terminate.yml | 15 | ||||
| -rw-r--r-- | playbooks/gce/openshift-cluster/update.yml | 4 | ||||
| -rw-r--r-- | playbooks/gce/openshift-master/config.yml | 18 | ||||
| l--------- | playbooks/gce/openshift-master/filter_plugins | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-master/launch.yml | 51 | ||||
| l--------- | playbooks/gce/openshift-master/roles | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-master/terminate.yml | 35 | ||||
| -rw-r--r-- | playbooks/gce/openshift-node/config.yml | 25 | ||||
| l--------- | playbooks/gce/openshift-node/filter_plugins | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-node/launch.yml | 51 | ||||
| l--------- | playbooks/gce/openshift-node/roles | 1 | ||||
| -rw-r--r-- | playbooks/gce/openshift-node/terminate.yml | 35 | 
16 files changed, 46 insertions, 248 deletions
diff --git a/playbooks/gce/openshift-cluster/config.yml b/playbooks/gce/openshift-cluster/config.yml index 8c320dbd2..219ebe6a0 100644 --- a/playbooks/gce/openshift-cluster/config.yml +++ b/playbooks/gce/openshift-cluster/config.yml @@ -1,38 +1,24 @@  ---  # TODO: fix firewall related bug with GCE and origin, since GCE is overriding  # /etc/sysconfig/iptables -- name: Populate oo_masters_to_config host group -  hosts: localhost + +- hosts: localhost    gather_facts: no    vars_files:    - vars.yml    tasks: -  - name: Evaluate oo_masters_to_config -    add_host: -      name: "{{ item }}" -      groups: oo_masters_to_config -      ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}" -      ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" -    with_items: groups["tag_env-host-type-{{ cluster_id }}-openshift-master"] | default([]) -  - name: Evaluate oo_nodes_to_config -    add_host: -      name: "{{ item }}" -      groups: oo_nodes_to_config -      ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}" -      ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" -    with_items: groups["tag_env-host-type-{{ cluster_id }}-openshift-node"] | default([]) -  - name: Evaluate oo_first_master -    add_host: -      name: "{{ groups['tag_env-host-type-' ~ cluster_id ~ '-openshift-master'][0] }}" -      groups: oo_first_master -      ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}" -      ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" -    when: "'tag_env-host-type-{{ cluster_id }}-openshift-master' in groups" +  - set_fact: +      g_ssh_user_tmp: "{{ deployment_vars[deployment_type].ssh_user }}" +      g_sudo_tmp: "{{ deployment_vars[deployment_type].sudo }}"  - include: ../../common/openshift-cluster/config.yml    vars: +    g_etcd_group: "{{ 'tag_env-host-type-' ~ cluster_id ~ '-openshift-etcd' }}" +    g_masters_group: "{{ 'tag_env-host-type-' ~ cluster_id ~ '-openshift-master' }}" +    g_nodes_group: "{{ 'tag_env-host-type-' ~ cluster_id ~ '-openshift-node' }}" +    g_ssh_user: "{{ hostvars.localhost.g_ssh_user_tmp }}" +    g_sudo: "{{ hostvars.localhost.g_sudo_tmp }}"      openshift_cluster_id: "{{ cluster_id }}"      openshift_debug_level: 4      openshift_deployment_type: "{{ deployment_type }}" -    openshift_first_master: "{{ groups.oo_first_master.0 }}"      openshift_hostname: "{{ gce_private_ip }}" diff --git a/playbooks/gce/openshift-cluster/launch.yml b/playbooks/gce/openshift-cluster/launch.yml index 35737f03d..7a3b80da0 100644 --- a/playbooks/gce/openshift-cluster/launch.yml +++ b/playbooks/gce/openshift-cluster/launch.yml @@ -15,17 +15,33 @@        instances: "{{ master_names }}"        cluster: "{{ cluster_id }}"        type: "{{ k8s_type }}" +      g_sub_host_type: "default"    - include: ../../common/openshift-cluster/set_node_launch_facts_tasks.yml +    vars: +      type: "compute" +      count: "{{ num_nodes }}"    - include: tasks/launch_instances.yml      vars:        instances: "{{ node_names }}"        cluster: "{{ cluster_id }}"        type: "{{ k8s_type }}" +      g_sub_host_type: "{{ sub_host_type }}" + +  - include: ../../common/openshift-cluster/set_node_launch_facts_tasks.yml +    vars: +      type: "infra" +      count: "{{ num_infra }}" +  - include: tasks/launch_instances.yml +    vars: +      instances: "{{ infra_names }}" +      cluster: "{{ cluster_id }}" +      type: "{{ k8s_type }}" +      g_sub_host_type: "{{ sub_host_type }}"    - set_fact: -      a_master: "{{ master_names[0] }}" -  - add_host: name={{ a_master }} groups=service_master +      a_infra: "{{ infra_names[0] }}" +  - add_host: name={{ a_infra }} groups=service_master  - include: update.yml diff --git a/playbooks/gce/openshift-cluster/lookup_plugins b/playbooks/gce/openshift-cluster/lookup_plugins new file mode 120000 index 000000000..ac79701db --- /dev/null +++ b/playbooks/gce/openshift-cluster/lookup_plugins @@ -0,0 +1 @@ +../../../lookup_plugins
\ No newline at end of file diff --git a/playbooks/gce/openshift-cluster/tasks/launch_instances.yml b/playbooks/gce/openshift-cluster/tasks/launch_instances.yml index 9a9848f05..6307ecc27 100644 --- a/playbooks/gce/openshift-cluster/tasks/launch_instances.yml +++ b/playbooks/gce/openshift-cluster/tasks/launch_instances.yml @@ -14,6 +14,7 @@        - created-by-{{ lookup('env', 'LOGNAME') |default(cluster, true) }}        - env-{{ cluster }}        - host-type-{{ type }} +      - sub-host-type-{{ sub_host_type }}        - env-host-type-{{ cluster }}-openshift-{{ type }}    register: gce diff --git a/playbooks/gce/openshift-cluster/terminate.yml b/playbooks/gce/openshift-cluster/terminate.yml index abe6a4c95..098b0df73 100644 --- a/playbooks/gce/openshift-cluster/terminate.yml +++ b/playbooks/gce/openshift-cluster/terminate.yml @@ -8,7 +8,7 @@    - set_fact: scratch_group=tag_env-host-type-{{ cluster_id }}-openshift-node    - add_host:        name: "{{ item }}" -      groups: oo_nodes_to_terminate +      groups: oo_hosts_to_terminate, oo_nodes_to_terminate        ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}"        ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}"      with_items: groups[scratch_group] | default([]) | difference(['localhost']) | difference(groups.status_terminated) @@ -16,11 +16,22 @@    - set_fact: scratch_group=tag_env-host-type-{{ cluster_id }}-openshift-master    - add_host:        name: "{{ item }}" -      groups: oo_masters_to_terminate +      groups: oo_hosts_to_terminate, oo_masters_to_terminate        ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}"        ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}"      with_items: groups[scratch_group] | default([]) | difference(['localhost']) | difference(groups.status_terminated) +- name: Unsubscribe VMs +  hosts: oo_hosts_to_terminate +  vars_files: +  - vars.yml +  roles: +  - role: rhel_unsubscribe +    when: deployment_type == "enterprise" and +          ansible_distribution == "RedHat" and +          lookup('oo_option', 'rhel_skip_subscription') | default(rhsub_skip, True) | +            default('no', True) | lower in ['no', 'false'] +  - include: ../openshift-node/terminate.yml    vars:      gce_service_account_email: "{{ lookup('env', 'gce_service_account_email_address') }}" diff --git a/playbooks/gce/openshift-cluster/update.yml b/playbooks/gce/openshift-cluster/update.yml index 9ebf39a13..8096aa654 100644 --- a/playbooks/gce/openshift-cluster/update.yml +++ b/playbooks/gce/openshift-cluster/update.yml @@ -11,7 +11,9 @@        groups: oo_hosts_to_update        ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user | default(ansible_ssh_user, true) }}"        ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" -    with_items: groups["tag_env-host-type-{{ cluster_id }}-openshift-master"] | union(groups["tag_env-host-type-{{ cluster_id }}-openshift-node"]) | default([]) +    with_items: (groups["tag_env-host-type-{{ cluster_id }}-openshift-master"] | default([])) +                | union(groups["tag_env-host-type-{{ cluster_id }}-openshift-node"] | default([])) +                | union(groups["tag_env-host-type-{{ cluster_id }}-openshift-etcd"] | default([]))  - include: ../../common/openshift-cluster/update_repos_and_packages.yml diff --git a/playbooks/gce/openshift-master/config.yml b/playbooks/gce/openshift-master/config.yml deleted file mode 100644 index af6000bc8..000000000 --- a/playbooks/gce/openshift-master/config.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Populate oo_masters_to_config host group -  hosts: localhost -  gather_facts: no -  tasks: -  - name: Evaluate oo_masters_to_config -    add_host: -      name: "{{ item }}" -      groups: oo_masters_to_config -      ansible_ssh_user: root -    with_items: oo_host_group_exp | default([]) - -- include: ../../common/openshift-master/config.yml -  vars: -    openshift_cluster_id: "{{ cluster_id }}" -    openshift_debug_level: 4 -    openshift_deployment_type: "{{ deployment_type }}" -    openshift_hostname: "{{ gce_private_ip }}" diff --git a/playbooks/gce/openshift-master/filter_plugins b/playbooks/gce/openshift-master/filter_plugins deleted file mode 120000 index 99a95e4ca..000000000 --- a/playbooks/gce/openshift-master/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/gce/openshift-master/launch.yml b/playbooks/gce/openshift-master/launch.yml deleted file mode 100644 index ef10b6cf0..000000000 --- a/playbooks/gce/openshift-master/launch.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -# TODO: when we are ready to go to ansible 1.9+ support only, we can update to -# the gce task to use the disk_auto_delete parameter to avoid having to delete -# the disk as a separate step on termination - -- name: Launch instance(s) -  hosts: localhost -  connection: local -  gather_facts: no - -# TODO: modify image based on deployment_type -  vars: -    inst_names: "{{ oo_new_inst_names }}" -    machine_type: n1-standard-1 -    image: libra-rhel7 - -  tasks: -    - name: Launch instances -      gce: -        instance_names: "{{ inst_names }}" -        machine_type: "{{ machine_type }}" -        image: "{{ image }}" -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        tags: "{{ oo_new_inst_tags }}" -      register: gce - -    - name: Add new instances public IPs to oo_masters_to_config -      add_host: -        hostname: "{{ item.name }}" -        ansible_ssh_host: "{{ item.public_ip }}" -        groupname: oo_masters_to_config -        gce_private_ip: "{{ item.private_ip }}" -      with_items: gce.instance_data - -    - name: Wait for ssh -      wait_for: port=22 host={{ item.public_ip }} -      with_items: gce.instance_data - -    - name: Wait for root user setup -      command: "ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null root@{{ item.public_ip }} echo root user is setup" -      register: result -      until: result.rc == 0 -      retries: 20 -      delay: 10 -      with_items: gce.instance_data - - -# Apply the configs, separate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/openshift-master/roles b/playbooks/gce/openshift-master/roles deleted file mode 120000 index 20c4c58cf..000000000 --- a/playbooks/gce/openshift-master/roles +++ /dev/null @@ -1 +0,0 @@ -../../../roles
\ No newline at end of file diff --git a/playbooks/gce/openshift-master/terminate.yml b/playbooks/gce/openshift-master/terminate.yml deleted file mode 100644 index 452ac5199..000000000 --- a/playbooks/gce/openshift-master/terminate.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -- name: Populate oo_masters_to_terminate host group if needed -  hosts: localhost -  gather_facts: no -  tasks: -    - name: Evaluate oo_masters_to_terminate -      add_host: name={{ item }} groups=oo_masters_to_terminate -      with_items: oo_host_group_exp | default([]) - -- name: Terminate master instances -  hosts: localhost -  connection: local -  gather_facts: no -  tasks: -    - name: Terminate master instances -      gce: -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        state: 'absent' -        instance_names: "{{ groups['oo_masters_to_terminate'] }}" -        disks: "{{ groups['oo_masters_to_terminate'] }}" -      register: gce -      when: "'oo_masters_to_terminate' in groups" - -    - name: Remove disks of instances -      gce_pd: -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        name: "{{ item }}" -        zone: "{{ gce.zone }}" -        state: absent -      with_items: gce.instance_names -      when: "'oo_masters_to_terminate' in groups" diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml deleted file mode 100644 index 54b0da2ca..000000000 --- a/playbooks/gce/openshift-node/config.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -- name: Populate oo_nodes_to_config and oo_first_master host groups -  hosts: localhost -  gather_facts: no -  tasks: -  - name: Evaluate oo_nodes_to_config -    add_host: -      name: "{{ item }}" -      groups: oo_nodes_to_config -      ansible_ssh_user: root -    with_items: oo_host_group_exp | default([]) -  - name: Evaluate oo_first_master -    add_host: -      name: "{{ groups['tag_env-host-type-' ~ cluster_id ~ '-openshift-master'][0] }}" -      groups: oo_first_master -      ansible_ssh_user: root - - -- include: ../../common/openshift-node/config.yml -  vars: -    openshift_cluster_id: "{{ cluster_id }}" -    openshift_debug_level: 4 -    openshift_deployment_type: "{{ deployment_type }}" -    openshift_first_master: "{{ groups.oo_first_master.0 }}" -    openshift_hostname: "{{ gce_private_ip }}" diff --git a/playbooks/gce/openshift-node/filter_plugins b/playbooks/gce/openshift-node/filter_plugins deleted file mode 120000 index 99a95e4ca..000000000 --- a/playbooks/gce/openshift-node/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/gce/openshift-node/launch.yml b/playbooks/gce/openshift-node/launch.yml deleted file mode 100644 index 086ba58bc..000000000 --- a/playbooks/gce/openshift-node/launch.yml +++ /dev/null @@ -1,51 +0,0 @@ ---- -# TODO: when we are ready to go to ansible 1.9+ support only, we can update to -# the gce task to use the disk_auto_delete parameter to avoid having to delete -# the disk as a separate step on termination - -- name: Launch instance(s) -  hosts: localhost -  connection: local -  gather_facts: no - -# TODO: modify image based on deployment_type -  vars: -    inst_names: "{{ oo_new_inst_names }}" -    machine_type: n1-standard-1 -    image: libra-rhel7 - -  tasks: -    - name: Launch instances -      gce: -        instance_names: "{{ inst_names }}" -        machine_type: "{{ machine_type }}" -        image: "{{ image }}" -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        tags: "{{ oo_new_inst_tags }}" -      register: gce - -    - name: Add new instances public IPs to oo_nodes_to_config -      add_host: -        hostname: "{{ item.name }}" -        ansible_ssh_host: "{{ item.public_ip }}" -        groupname: oo_nodes_to_config -        gce_private_ip: "{{ item.private_ip }}" -      with_items: gce.instance_data - -    - name: Wait for ssh -      wait_for: port=22 host={{ item.public_ip }} -      with_items: gce.instance_data - -    - name: Wait for root user setup -      command: "ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null root@{{ item.public_ip }} echo root user is setup" -      register: result -      until: result.rc == 0 -      retries: 20 -      delay: 10 -      with_items: gce.instance_data - - -# Apply the configs, separate so that just the configs can be run by themselves -- include: config.yml diff --git a/playbooks/gce/openshift-node/roles b/playbooks/gce/openshift-node/roles deleted file mode 120000 index 20c4c58cf..000000000 --- a/playbooks/gce/openshift-node/roles +++ /dev/null @@ -1 +0,0 @@ -../../../roles
\ No newline at end of file diff --git a/playbooks/gce/openshift-node/terminate.yml b/playbooks/gce/openshift-node/terminate.yml deleted file mode 100644 index 357e0c295..000000000 --- a/playbooks/gce/openshift-node/terminate.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -- name: Populate oo_nodes_to_terminate host group if needed -  hosts: localhost -  gather_facts: no -  tasks: -    - name: Evaluate oo_nodes_to_terminate -      add_host: name={{ item }} groups=oo_nodes_to_terminate -      with_items: oo_host_group_exp | default([]) - -- name: Terminate node instances -  hosts: localhost -  connection: local -  gather_facts: no -  tasks: -    - name: Terminate node instances -      gce: -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        state: 'absent' -        instance_names: "{{ groups['oo_nodes_to_terminate'] }}" -        disks: "{{ groups['oo_nodes_to_terminate'] }}" -      register: gce -      when: "'oo_nodes_to_terminate' in groups" - -    - name: Remove disks of instances -      gce_pd: -        service_account_email: "{{ gce_service_account_email }}" -        pem_file: "{{ gce_pem_file }}" -        project_id: "{{ gce_project_id }}" -        name: "{{ item }}" -        zone: "{{ gce.zone }}" -        state: absent -      with_items: gce.instance_names -      when: "'oo_nodes_to_terminate' in groups"  | 
