diff options
Diffstat (limited to 'playbooks')
10 files changed, 98 insertions, 62 deletions
diff --git a/playbooks/byo/openshift-cluster/cluster_hosts.yml b/playbooks/byo/openshift-cluster/cluster_hosts.yml index 9d086b7b6..0db7ccf89 100644 --- a/playbooks/byo/openshift-cluster/cluster_hosts.yml +++ b/playbooks/byo/openshift-cluster/cluster_hosts.yml @@ -20,4 +20,5 @@ g_glusterfs_registry_hosts: "{{ groups.glusterfs_registry | default(g_glusterfs_  g_all_hosts: "{{ g_master_hosts | union(g_node_hosts) | union(g_etcd_hosts)                   | union(g_lb_hosts) | union(g_nfs_hosts)                   | union(g_new_node_hosts)| union(g_new_master_hosts) +                 | union(g_glusterfs_hosts) | union(g_glusterfs_registry_hosts)                   | default([]) }}" diff --git a/playbooks/common/openshift-checks/health.yml b/playbooks/common/openshift-checks/health.yml index c7766ff04..7e83b4aa6 100644 --- a/playbooks/common/openshift-checks/health.yml +++ b/playbooks/common/openshift-checks/health.yml @@ -1,16 +1,13 @@  --- -# openshift_health_checker depends on openshift_version which now requires group eval.  - include: ../openshift-cluster/evaluate_groups.yml -  tags: -  - always  - name: Run OpenShift health checks    hosts: OSEv3    roles:    - openshift_health_checker    vars: -  - r_openshift_health_checker_playbook_context: "health" +  - r_openshift_health_checker_playbook_context: health    post_tasks: -  - action: openshift_health_check  # https://github.com/ansible/ansible/issues/20513 +  - action: openshift_health_check      args:        checks: ['@health'] diff --git a/playbooks/common/openshift-checks/pre-install.yml b/playbooks/common/openshift-checks/pre-install.yml index 7ca9f7e8b..afd4f95e0 100644 --- a/playbooks/common/openshift-checks/pre-install.yml +++ b/playbooks/common/openshift-checks/pre-install.yml @@ -1,16 +1,13 @@  --- -# openshift_health_checker depends on openshift_version which now requires group eval.  - include: ../openshift-cluster/evaluate_groups.yml -  tags: -  - always  - hosts: OSEv3    name: run OpenShift pre-install checks    roles:    - openshift_health_checker    vars: -  - r_openshift_health_checker_playbook_context: "pre-install" +  - r_openshift_health_checker_playbook_context: pre-install    post_tasks: -  - action: openshift_health_check  # https://github.com/ansible/ansible/issues/20513 +  - action: openshift_health_check      args:        checks: ['@preflight'] diff --git a/playbooks/common/openshift-cluster/config.yml b/playbooks/common/openshift-cluster/config.yml index 867e6b3d6..7136f1c1f 100644 --- a/playbooks/common/openshift-cluster/config.yml +++ b/playbooks/common/openshift-cluster/config.yml @@ -10,7 +10,7 @@    roles:    - openshift_health_checker    vars: -  - r_openshift_health_checker_playbook_context: "install" +  - r_openshift_health_checker_playbook_context: install    post_tasks:    - action: openshift_health_check      args: diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index 695dc3140..6a0471948 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -157,7 +157,7 @@      - l_pb_upgrade_control_plane_post_upgrade_storage.rc != 0      - openshift_upgrade_post_storage_migration_fatal | default(false,true) | bool      run_once: true -    delegate_to: oo_first_master +    delegate_to: "{{ groups.oo_first_master.0 }}"    - set_fact:        master_update_complete: True diff --git a/playbooks/common/openshift-etcd/migrate.yml b/playbooks/common/openshift-etcd/migrate.yml index c655449fa..3e7a48669 100644 --- a/playbooks/common/openshift-etcd/migrate.yml +++ b/playbooks/common/openshift-etcd/migrate.yml @@ -17,6 +17,26 @@    tags:    - always +- name: Prepare masters for etcd data migration +  hosts: oo_masters_to_config +  tasks: +  - set_fact: +      master_services: +      - "{{ openshift.common.service_type + '-master' }}" +  - set_fact: +      master_services: +      - "{{ openshift.common.service_type + '-master-controllers' }}" +      - "{{ openshift.common.service_type + '-master-api' }}" +    when: +    - (openshift_master_cluster_method is defined and openshift_master_cluster_method == "native") or openshift.common.is_master_system_container | bool +  - debug: +      msg: "master service name: {{ master_services }}" +  - name: Stop masters +    service: +      name: "{{ item }}" +      state: stopped +    with_items: "{{ master_services }}" +  - name: Backup v2 data    hosts: oo_etcd_to_migrate    gather_facts: no @@ -47,26 +67,6 @@      when:      - etcd_backup_failed | length > 0 -- name: Prepare masters for etcd data migration -  hosts: oo_masters_to_config -  tasks: -  - set_fact: -      master_services: -      - "{{ openshift.common.service_type + '-master' }}" -  - set_fact: -      master_services: -      - "{{ openshift.common.service_type + '-master-controllers' }}" -      - "{{ openshift.common.service_type + '-master-api' }}" -    when: -    - (openshift_master_cluster_method is defined and openshift_master_cluster_method == "native") or openshift.common.is_master_system_container | bool -  - debug: -      msg: "master service name: {{ master_services }}" -  - name: Stop masters -    service: -      name: "{{ item }}" -      state: stopped -    with_items: "{{ master_services }}" -  - name: Migrate etcd data from v2 to v3    hosts: oo_etcd_to_migrate    gather_facts: no diff --git a/playbooks/common/openshift-loadbalancer/config.yml b/playbooks/common/openshift-loadbalancer/config.yml index c414913bf..2dacc1218 100644 --- a/playbooks/common/openshift-loadbalancer/config.yml +++ b/playbooks/common/openshift-loadbalancer/config.yml @@ -12,5 +12,6 @@                                                                                 openshift_use_nuage | default(false),                                                                                 nuage_mon_rest_server_port | default(none)))                                            + openshift_loadbalancer_additional_backends | default([]) }}" +    openshift_image_tag: "{{ hostvars[groups.oo_first_master.0].openshift_image_tag }}"    roles:    - role: openshift_loadbalancer diff --git a/playbooks/common/openshift-master/config.yml b/playbooks/common/openshift-master/config.yml index 7d3a371e3..b30450def 100644 --- a/playbooks/common/openshift-master/config.yml +++ b/playbooks/common/openshift-master/config.yml @@ -5,6 +5,19 @@      t_oo_option_master_debug_level: "{{ lookup('oo_option', 'openshift_master_debug_level') }}"    pre_tasks: +  # Per https://bugzilla.redhat.com/show_bug.cgi?id=1469336 +  # +  # When scaling up a cluster upgraded from OCP <= 3.5, ensure that +  # OPENSHIFT_DEFAULT_REGISTRY is present as defined on the existing +  # masters, or absent if such is the case. +  - name: Detect if this host is a new master in a scale up +    set_fact: +      g_openshift_master_is_scaleup: "{{ openshift.common.hostname in ( groups['new_masters'] | default([]) ) }}" + +  - name: Scaleup Detection +    debug: +      var: g_openshift_master_is_scaleup +    - name: Check for RPM generated config marker file .config_managed      stat:        path: /etc/origin/.config_managed @@ -69,7 +82,7 @@          ha: "{{ openshift_master_ha | default(groups.oo_masters | length > 1) }}"          master_count: "{{ openshift_master_count | default(groups.oo_masters | length) }}" -- name: Inspect state of first master session secrets and config +- name: Inspect state of first master config settings    hosts: oo_first_master    roles:    - role: openshift_facts @@ -98,6 +111,42 @@      set_fact:        l_etcd3_enabled: "{{ etcd3_grep.rc == 0 | bool }}" +  - name: Check if atomic-openshift-master sysconfig exists yet +    stat: +      path: /etc/sysconfig/atomic-openshift-master +    register: l_aom_exists + +  - name: Preserve OPENSHIFT_DEFAULT_REGISTRY master parameter if present +    command: awk '/^OPENSHIFT_DEFAULT_REGISTRY/' /etc/sysconfig/atomic-openshift-master +    register: l_default_registry_defined +    when: l_aom_exists.stat.exists | bool + +  - name: Check if atomic-openshift-master-api sysconfig exists yet +    stat: +      path: /etc/sysconfig/atomic-openshift-master-api +    register: l_aom_api_exists + +  - name: Preserve OPENSHIFT_DEFAULT_REGISTRY master-api parameter if present +    command: awk '/^OPENSHIFT_DEFAULT_REGISTRY/' /etc/sysconfig/atomic-openshift-master-api +    register: l_default_registry_defined_api +    when: l_aom_api_exists.stat.exists | bool + +  - name: Check if atomic-openshift-master-controllers sysconfig exists yet +    stat: +      path: /etc/sysconfig/atomic-openshift-master-controllers +    register: l_aom_controllers_exists + +  - name: Preserve OPENSHIFT_DEFAULT_REGISTRY master-controllers parameter if present +    command: awk '/^OPENSHIFT_DEFAULT_REGISTRY/' /etc/sysconfig/atomic-openshift-master-controllers +    register: l_default_registry_defined_controllers +    when: l_aom_controllers_exists.stat.exists | bool + +  - name: Update facts with OPENSHIFT_DEFAULT_REGISTRY value +    set_fact: +      l_default_registry_value: "{{ l_default_registry_defined.stdout | default('') }}" +      l_default_registry_value_api: "{{ l_default_registry_defined_api.stdout | default('') }}" +      l_default_registry_value_controllers: "{{ l_default_registry_defined_controllers.stdout | default('') }}" +  - name: Generate master session secrets    hosts: oo_first_master    vars: @@ -127,6 +176,9 @@                                                      | union(groups['oo_etcd_to_config'] | default([])))                                                  | oo_collect('openshift.common.hostname') | default([]) | join (',')                                                  }}" +    openshift_no_proxy_etcd_host_ips: "{{ hostvars | oo_select_keys(groups['oo_etcd_to_config'] | default([])) +                                                | oo_collect('openshift.common.ip') | default([]) | join(',') +                                                }}"    roles:    - role: openshift_master      openshift_ca_host: "{{ groups.oo_first_master.0 }}" @@ -142,6 +194,10 @@      etcd_cert_prefix: "master.etcd-"      r_openshift_master_clean_install: "{{ hostvars[groups.oo_first_master.0].l_clean_install }}"      r_openshift_master_etcd3_storage: "{{ hostvars[groups.oo_first_master.0].l_etcd3_enabled }}" +    openshift_master_is_scaleup_host: "{{ g_openshift_master_is_scaleup | default(false) }}" +    openshift_master_default_registry_value: "{{ hostvars[groups.oo_first_master.0].l_default_registry_value }}" +    openshift_master_default_registry_value_api: "{{ hostvars[groups.oo_first_master.0].l_default_registry_value_api }}" +    openshift_master_default_registry_value_controllers: "{{ hostvars[groups.oo_first_master.0].l_default_registry_value_controllers }}"    - role: nuage_master      when: openshift.common.use_nuage | bool    - role: calico_master diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml index acebabc91..ef7d54f9f 100644 --- a/playbooks/common/openshift-node/config.yml +++ b/playbooks/common/openshift-node/config.yml @@ -1,25 +1,4 @@  --- -- name: Gather and set facts for node hosts -  hosts: oo_nodes_to_config -  vars: -    t_oo_option_node_debug_level: "{{ lookup('oo_option', 'openshift_node_debug_level') }}" -  pre_tasks: -  - set_fact: -      openshift_node_debug_level: "{{ t_oo_option_node_debug_level }}" -    when: openshift_node_debug_level is not defined and t_oo_option_node_debug_level != "" -  roles: -  - openshift_facts -  tasks: -  # Since the master is generating the node certificates before they are -  # configured, we need to make sure to set the node properties beforehand if -  # we do not want the defaults -  - openshift_facts: -      role: node -      local_facts: -        labels: "{{ openshift_node_labels | default(None) }}" -        annotations: "{{ openshift_node_annotations | default(None) }}" -        schedulable: "{{ openshift_schedulable | default(openshift_scheduleable) | default(None) }}" -  - name: Evaluate node groups    hosts: localhost    become: no @@ -32,7 +11,11 @@        ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"        ansible_become: "{{ g_sudo | default(omit) }}"      with_items: "{{ groups.oo_nodes_to_config | default([]) }}" -    when: hostvars[item].openshift is defined and hostvars[item].openshift.common is defined and hostvars[item].openshift.common.is_containerized | bool and (item in groups.oo_nodes_to_config and item in groups.oo_masters_to_config) +    when: +    - hostvars[item].openshift is defined +    - hostvars[item].openshift.common is defined +    - hostvars[item].openshift.common.is_containerized | bool +    - (item in groups.oo_nodes_to_config and item in groups.oo_masters_to_config)      changed_when: False  - name: Configure containerized nodes @@ -47,8 +30,7 @@                                                      | union(groups['oo_etcd_to_config'] | default([])))                                                  | oo_collect('openshift.common.hostname') | default([]) | join (',')                                                  }}" -    when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and -            openshift_generate_no_proxy_hosts | default(True) | bool }}" +    roles:    - role: openshift_node      openshift_ca_host: "{{ groups.oo_first_master.0 }}" @@ -64,8 +46,6 @@                                                      | union(groups['oo_etcd_to_config'] | default([])))                                                  | oo_collect('openshift.common.hostname') | default([]) | join (',')                                                  }}" -    when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and -            openshift_generate_no_proxy_hosts | default(True) | bool }}"    roles:    - role: openshift_node      openshift_ca_host: "{{ groups.oo_first_master.0 }}" diff --git a/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml b/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml index ccd29be29..4df86effa 100644 --- a/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml +++ b/playbooks/libvirt/openshift-cluster/tasks/launch_instances.yml @@ -49,11 +49,15 @@      - '{{ instances }}'      - [ user-data, meta-data ] +- name: Check for genisoimage +  command: which genisoimage +  register: which_genisoimage +  - name: Create the cloud-init config drive -  command: 'genisoimage -output {{ libvirt_storage_pool_path }}/{{ item }}_cloud-init.iso -volid cidata -joliet -rock user-data meta-data' +  command: "{{ 'genisoimage' if which_genisoimage.rc == 0 else 'mkisofs' }} -output {{ libvirt_storage_pool_path }}/{{ item }}_cloud-init.iso -volid cidata -joliet -rock user-data meta-data"    args: -    chdir: '{{ libvirt_storage_pool_path }}/{{ item }}_configdrive/' -    creates: '{{ libvirt_storage_pool_path }}/{{ item }}_cloud-init.iso' +    chdir: "{{ libvirt_storage_pool_path }}/{{ item }}_configdrive/" +    creates: "{{ libvirt_storage_pool_path }}/{{ item }}_cloud-init.iso"    with_items: '{{ instances }}'  - name: Refresh the libvirt storage pool for openshift  | 
