diff options
Diffstat (limited to 'playbooks/common')
32 files changed, 175 insertions, 124 deletions
diff --git a/playbooks/common/openshift-cluster/filter_plugins b/playbooks/common/openshift-cluster/filter_plugins deleted file mode 120000 index 99a95e4ca..000000000 --- a/playbooks/common/openshift-cluster/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/library b/playbooks/common/openshift-cluster/library deleted file mode 120000 index d0b7393d3..000000000 --- a/playbooks/common/openshift-cluster/library +++ /dev/null @@ -1 +0,0 @@ -../../../library/
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/lookup_plugins b/playbooks/common/openshift-cluster/lookup_plugins deleted file mode 120000 index ac79701db..000000000 --- a/playbooks/common/openshift-cluster/lookup_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../lookup_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/create_service_signer_cert.yml b/playbooks/common/openshift-cluster/upgrades/create_service_signer_cert.yml index 23cf8cf76..6d82fa928 100644 --- a/playbooks/common/openshift-cluster/upgrades/create_service_signer_cert.yml +++ b/playbooks/common/openshift-cluster/upgrades/create_service_signer_cert.yml @@ -2,7 +2,6 @@  - name: Create local temp directory for syncing certs    hosts: localhost    connection: local -  become: no    gather_facts: no    tasks:    - name: Create local temp directory for syncing certs @@ -11,8 +10,15 @@      changed_when: false      when: not (hostvars[groups.oo_first_master.0].service_signer_cert_stat.stat.exists | bool) +  - name: Chmod local temp directory +    local_action: command chmod 777 "{{ local_cert_sync_tmpdir.stdout }}" +    changed_when: false +    when: not (hostvars[groups.oo_first_master.0].service_signer_cert_stat.stat.exists | bool) +  - name: Create service signer certificate    hosts: oo_first_master +  roles: +  - openshift_facts    tasks:    - name: Create remote temp directory for creating certs      command: mktemp -d /tmp/openshift-ansible-XXXXXXX @@ -22,7 +28,7 @@    - name: Create service signer certificate      command: > -      {{ openshift.common.client_binary }} adm ca create-signer-cert +      {{ openshift_client_binary }} adm ca create-signer-cert        --cert="{{ remote_cert_create_tmpdir.stdout }}/"service-signer.crt        --key="{{ remote_cert_create_tmpdir.stdout }}/"service-signer.key        --name="{{ remote_cert_create_tmpdir.stdout }}/"openshift-service-serving-signer @@ -65,7 +71,6 @@  - name: Delete local temp directory    hosts: localhost    connection: local -  become: no    gather_facts: no    tasks:    - name: Delete local temp directory diff --git a/playbooks/common/openshift-cluster/upgrades/docker/docker_upgrade.yml b/playbooks/common/openshift-cluster/upgrades/docker/docker_upgrade.yml index 42cd51bd9..8392e21ee 100644 --- a/playbooks/common/openshift-cluster/upgrades/docker/docker_upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/docker/docker_upgrade.yml @@ -12,14 +12,11 @@    roles:    - openshift_facts    tasks: -  - set_fact: -      repoquery_cmd: "{{ 'dnf repoquery --latest-limit 1 -d 0' if ansible_pkg_mgr == 'dnf' else 'repoquery --plugins' }}" -    - fail:        msg: Cannot upgrade Docker on Atomic operating systems. -    when: openshift.common.is_atomic | bool +    when: openshift_is_atomic | bool -  - include_role: +  - import_role:        name: container_runtime        tasks_from: docker_upgrade_check.yml      when: docker_upgrade is not defined or docker_upgrade | bool @@ -54,13 +51,19 @@    - name: Drain Node for Kubelet upgrade      command: > -      {{ openshift.common.client_binary }} adm drain {{ openshift.node.nodename }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig --force --delete-local-data --ignore-daemonsets +      {{ hostvars[groups.oo_first_master.0]['first_master_client_binary'] }} adm drain {{ openshift.node.nodename | lower }} +      --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      --force --delete-local-data --ignore-daemonsets +      --timeout={{ openshift_upgrade_nodes_drain_timeout | default(0) }}s      delegate_to: "{{ groups.oo_first_master.0 }}"      when: l_docker_upgrade is defined and l_docker_upgrade | bool and inventory_hostname in groups.oo_nodes_to_upgrade      register: l_docker_upgrade_drain_result      until: not (l_docker_upgrade_drain_result is failed) -    retries: 60 -    delay: 60 +    retries: "{{ 1 if ( openshift_upgrade_nodes_drain_timeout | default(0) | int ) == 0 else 0 }}" +    delay: 5 +    failed_when: +    - l_docker_upgrade_drain_result is failed +    - openshift_upgrade_nodes_drain_timeout | default(0) | int == 0    - include_tasks: tasks/upgrade.yml      when: l_docker_upgrade is defined and l_docker_upgrade | bool diff --git a/playbooks/common/openshift-cluster/upgrades/docker/tasks/restart.yml b/playbooks/common/openshift-cluster/upgrades/docker/tasks/restart.yml index 385a141ea..3b47a11e0 100644 --- a/playbooks/common/openshift-cluster/upgrades/docker/tasks/restart.yml +++ b/playbooks/common/openshift-cluster/upgrades/docker/tasks/restart.yml @@ -15,7 +15,7 @@      - "{{ openshift_service_type }}-master-controllers"      - "{{ openshift_service_type }}-node"    failed_when: false -  when: openshift.common.is_containerized | bool +  when: openshift_is_containerized | bool  - name: Wait for master API to come back online    wait_for: diff --git a/playbooks/common/openshift-cluster/upgrades/docker/tasks/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/docker/tasks/upgrade.yml index b5000d3a1..54eeb2ef5 100644 --- a/playbooks/common/openshift-cluster/upgrades/docker/tasks/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/docker/tasks/upgrade.yml @@ -10,7 +10,7 @@      - etcd_container      - openvswitch    failed_when: false -  when: openshift.common.is_containerized | bool +  when: openshift_is_containerized | bool  - name: Check Docker image count    shell: "docker images -aq | wc -l" diff --git a/playbooks/common/openshift-cluster/upgrades/filter_plugins b/playbooks/common/openshift-cluster/upgrades/filter_plugins deleted file mode 120000 index b1213dedb..000000000 --- a/playbooks/common/openshift-cluster/upgrades/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../filter_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/lookup_plugins b/playbooks/common/openshift-cluster/upgrades/lookup_plugins deleted file mode 120000 index aff753026..000000000 --- a/playbooks/common/openshift-cluster/upgrades/lookup_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../lookup_plugins
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/post_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/post_control_plane.yml index 50df8a890..f790fd98d 100644 --- a/playbooks/common/openshift-cluster/upgrades/post_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/post_control_plane.yml @@ -1,7 +1,13 @@  --- -############################################################################### -# Post upgrade - Upgrade default router, default registry and examples -############################################################################### +#################################################################################### +# Post upgrade - Upgrade web console, default router, default registry, and examples +#################################################################################### +- name: Upgrade web console +  hosts: oo_first_master +  roles: +  - role: openshift_web_console +    when: openshift_web_console_install | default(true) | bool +  - name: Upgrade default router and default registry    hosts: oo_first_master    vars: @@ -27,8 +33,8 @@    - set_fact:        haproxy_routers: "{{ all_routers.results.results[0]['items'] | -                           oo_pods_match_component(openshift_deployment_type, 'haproxy-router') | -                           oo_select_keys_from_list(['metadata']) }}" +                           lib_utils_oo_pods_match_component(openshift_deployment_type, 'haproxy-router') | +                           lib_utils_oo_select_keys_from_list(['metadata']) }}"      when:      - all_routers.results.returncode == 0 diff --git a/playbooks/common/openshift-cluster/upgrades/pre/config.yml b/playbooks/common/openshift-cluster/upgrades/pre/config.yml index d5b82d9a0..da63450b8 100644 --- a/playbooks/common/openshift-cluster/upgrades/pre/config.yml +++ b/playbooks/common/openshift-cluster/upgrades/pre/config.yml @@ -1,4 +1,6 @@  --- +# for control-plane upgrade, several variables may be passed in to this play +# why may affect the tasks here and in imported playbooks.  # Pre-upgrade  - import_playbook: ../initialize_nodes_to_upgrade.yml @@ -14,10 +16,10 @@    hosts: "{{ l_upgrade_no_proxy_hosts }}"    tasks:    - set_fact: -      openshift_no_proxy_internal_hostnames: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config'] +      openshift_no_proxy_internal_hostnames: "{{ hostvars | lib_utils_oo_select_keys(groups['oo_nodes_to_config']                                                      | union(groups['oo_masters_to_config'])                                                      | union(groups['oo_etcd_to_config'] | default([]))) -                                                | oo_collect('openshift.common.hostname') | default([]) | join (',') +                                                | lib_utils_oo_collect('openshift.common.hostname') | default([]) | join (',')                                                  }}"      when:      - openshift_http_proxy is defined or openshift_https_proxy is defined @@ -48,6 +50,8 @@      # defined, and overriding the normal behavior of protecting the installed version      openshift_release: "{{ openshift_upgrade_target }}"      openshift_protect_installed_version: False +    # l_openshift_version_set_hosts is passed via upgrade_control_plane.yml +    # l_openshift_version_check_hosts is passed via upgrade_control_plane.yml  # If we're only upgrading nodes, we need to ensure masters are already upgraded  - name: Verify masters are already upgraded @@ -72,6 +76,6 @@  - name: Verify docker upgrade targets    hosts: "{{ l_upgrade_docker_target_hosts }}"    tasks: -  - include_role: +  - import_role:        name: container_runtime        tasks_from: docker_upgrade_check.yml diff --git a/playbooks/common/openshift-cluster/upgrades/pre/verify_cluster.yml b/playbooks/common/openshift-cluster/upgrades/pre/verify_cluster.yml index 3fc18c9b7..693ab2d96 100644 --- a/playbooks/common/openshift-cluster/upgrades/pre/verify_cluster.yml +++ b/playbooks/common/openshift-cluster/upgrades/pre/verify_cluster.yml @@ -5,11 +5,6 @@    hosts: oo_first_master    gather_facts: no    tasks: -  - fail: -      msg: > -        This upgrade is only supported for origin and openshift-enterprise -        deployment types -    when: deployment_type not in ['origin','openshift-enterprise']    # Error out in situations where the user has older versions specified in their    # inventory in any of the openshift_release, openshift_image_tag, and @@ -71,7 +66,7 @@        local_facts:          ha: "{{ groups.oo_masters_to_config | length > 1 }}" -  - when: openshift.common.is_containerized | bool +  - when: openshift_is_containerized | bool      block:      - set_fact:          master_services: diff --git a/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml b/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml index 065a9a8ab..45ddf7eea 100644 --- a/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml +++ b/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml @@ -5,7 +5,7 @@    when: openshift.common.version is not defined  - name: Update oreg_auth docker login credentials if necessary -  include_role: +  import_role:      name: container_runtime      tasks_from: registry_auth.yml    when: oreg_auth_user is defined @@ -15,13 +15,13 @@      docker pull {{ openshift_cli_image }}:{{ openshift_image_tag }}    register: pull_result    changed_when: "'Downloaded newer image' in pull_result.stdout" -  when: openshift.common.is_containerized | bool +  when: openshift_is_containerized | bool -- when: not openshift.common.is_containerized | bool +- when: not openshift_is_containerized | bool    block:    - name: Check latest available OpenShift RPM version      repoquery: -      name: "{{ openshift_service_type }}" +      name: "{{ openshift_service_type }}{{ '-' ~ openshift_release ~ '*' if openshift_release is defined else '' }}"        ignore_excluders: true      register: repoquery_out @@ -49,5 +49,5 @@    fail:      msg: "This upgrade playbook must be run against OpenShift {{ openshift_upgrade_min }} or later"    when: -  - deployment_type == 'origin' +  - openshift_deployment_type == 'origin'    - openshift.common.version is version_compare(openshift_upgrade_min,'<') diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index 44724e979..e89f06f17 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -22,10 +22,12 @@  # See: https://github.com/openshift/origin/pull/14625#issuecomment-308467060  - name: Pre master upgrade - Upgrade all storage    hosts: oo_first_master +  roles: +  - openshift_facts    tasks:    - name: Upgrade all storage      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig        migrate storage --include=* --confirm      register: l_pb_upgrade_control_plane_pre_upgrade_storage      when: openshift_upgrade_pre_storage_migration_enabled | default(true) | bool @@ -49,10 +51,9 @@    vars:      openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"    serial: 1 +  roles: +  - openshift_facts    tasks: -  - include_role: -      name: openshift_facts -    # Run the pre-upgrade hook if defined:    - debug: msg="Running master pre-upgrade hook {{ openshift_master_upgrade_pre_hook }}"      when: openshift_master_upgrade_pre_hook is defined @@ -60,7 +61,7 @@    - include_tasks: "{{ openshift_master_upgrade_pre_hook }}"      when: openshift_master_upgrade_pre_hook is defined -  - include_role: +  - import_role:        name: openshift_master        tasks_from: upgrade.yml @@ -86,7 +87,7 @@    - name: Post master upgrade - Upgrade clusterpolicies storage      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig        migrate storage --include=clusterpolicies --confirm      register: l_pb_upgrade_control_plane_post_upgrade_storage      when: @@ -108,12 +109,11 @@  - name: Gate on master update    hosts: localhost    connection: local -  become: no    tasks:    - set_fact:        master_update_completed: "{{ hostvars -                                 | oo_select_keys(groups.oo_masters_to_config) -                                 | oo_collect('inventory_hostname', {'master_update_complete': true}) }}" +                                 | lib_utils_oo_select_keys(groups.oo_masters_to_config) +                                 | lib_utils_oo_collect('inventory_hostname', {'master_update_complete': true}) }}"    - set_fact:        master_update_failed: "{{ groups.oo_masters_to_config | difference(master_update_completed) | list }}"    - fail: @@ -128,12 +128,13 @@    hosts: oo_masters_to_config    roles:    - { role: openshift_cli } +  - { role: openshift_facts }    vars:      __master_shared_resource_viewer_file: "shared_resource_viewer_role.yaml"    tasks:    - name: Reconcile Cluster Roles      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig        policy reconcile-cluster-roles --additive-only=true --confirm -o name      register: reconcile_cluster_role_result      when: openshift_version is version_compare('3.7','<') @@ -144,7 +145,7 @@    - name: Reconcile Cluster Role Bindings      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig        policy reconcile-cluster-role-bindings        --exclude-groups=system:authenticated        --exclude-groups=system:authenticated:oauth @@ -160,7 +161,7 @@    - name: Reconcile Jenkins Pipeline Role Bindings      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig policy reconcile-cluster-role-bindings system:build-strategy-jenkinspipeline --confirm -o name +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig policy reconcile-cluster-role-bindings system:build-strategy-jenkinspipeline --confirm -o name      run_once: true      register: reconcile_jenkins_role_binding_result      changed_when: @@ -214,7 +215,7 @@    - name: Reconcile Security Context Constraints      command: > -      {{ openshift.common.client_binary }} adm policy --config={{ openshift.common.config_base }}/master/admin.kubeconfig reconcile-sccs --confirm --additive-only=true -o name +      {{ openshift_client_binary }} adm policy --config={{ openshift.common.config_base }}/master/admin.kubeconfig reconcile-sccs --confirm --additive-only=true -o name      register: reconcile_scc_result      changed_when:      - reconcile_scc_result.stdout != '' @@ -223,7 +224,7 @@    - name: Migrate storage post policy reconciliation      command: > -      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      {{ openshift_client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig        migrate storage --include=* --confirm      run_once: true      register: l_pb_upgrade_control_plane_post_upgrade_storage @@ -242,12 +243,11 @@  - name: Gate on reconcile    hosts: localhost    connection: local -  become: no    tasks:    - set_fact:        reconcile_completed: "{{ hostvars -                                 | oo_select_keys(groups.oo_masters_to_config) -                                 | oo_collect('inventory_hostname', {'reconcile_complete': true}) }}" +                                 | lib_utils_oo_select_keys(groups.oo_masters_to_config) +                                 | lib_utils_oo_collect('inventory_hostname', {'reconcile_complete': true}) }}"    - set_fact:        reconcile_failed: "{{ groups.oo_masters_to_config | difference(reconcile_completed) | list }}"    - fail: @@ -262,7 +262,7 @@    - openshift_facts    tasks:    - include_tasks: docker/tasks/upgrade.yml -    when: l_docker_upgrade is defined and l_docker_upgrade | bool and not openshift.common.is_atomic | bool +    when: l_docker_upgrade is defined and l_docker_upgrade | bool and not openshift_is_atomic | bool  - name: Drain and upgrade master nodes    hosts: oo_masters_to_config:&oo_nodes_to_upgrade @@ -291,21 +291,25 @@    - name: Drain Node for Kubelet upgrade      command: > -      {{ hostvars[groups.oo_first_master.0].openshift.common.client_binary }} adm drain {{ openshift.node.nodename | lower }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig --force --delete-local-data --ignore-daemonsets +      {{ hostvars[groups.oo_first_master.0]['first_master_client_binary'] }} adm drain {{ openshift.node.nodename | lower }} +      --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      --force --delete-local-data --ignore-daemonsets +      --timeout={{ openshift_upgrade_nodes_drain_timeout | default(0) }}s      delegate_to: "{{ groups.oo_first_master.0 }}"      register: l_upgrade_control_plane_drain_result      until: not (l_upgrade_control_plane_drain_result is failed) -    retries: 60 -    delay: 60 +    retries: "{{ 1 if ( openshift_upgrade_nodes_drain_timeout | default(0) | int ) == 0 else 0 }}" +    delay: 5 +    failed_when: +    - l_upgrade_control_plane_drain_result is failed +    - openshift_upgrade_nodes_drain_timeout | default(0) | int == 0    roles:    - openshift_facts    post_tasks: -  - include_role: +  - import_role:        name: openshift_node        tasks_from: upgrade.yml -    vars: -      openshift_node_upgrade_in_progress: True    - name: Set node schedulability      oc_adm_manage_node:        node: "{{ openshift.node.nodename | lower }}" diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml index 956ad0d53..850442b3b 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_nodes.yml @@ -4,11 +4,9 @@    roles:    - role: openshift_facts    tasks: -  - include_role: +  - import_role:        name: openshift_node        tasks_from: upgrade_pre.yml -    vars: -      openshift_node_upgrade_in_progress: True  - name: Drain and upgrade nodes    hosts: oo_nodes_to_upgrade:!oo_masters_to_config @@ -35,19 +33,23 @@    - name: Drain Node for Kubelet upgrade      command: > -      {{ hostvars[groups.oo_first_master.0].openshift.common.client_binary }} adm drain {{ openshift.node.nodename | lower }} --config={{ openshift.common.config_base }}/master/admin.kubeconfig --force --delete-local-data --ignore-daemonsets +      {{ hostvars[groups.oo_first_master.0]['first_master_client_binary'] }} adm drain {{ openshift.node.nodename | lower }} +      --config={{ openshift.common.config_base }}/master/admin.kubeconfig +      --force --delete-local-data --ignore-daemonsets +      --timeout={{ openshift_upgrade_nodes_drain_timeout | default(0) }}s      delegate_to: "{{ groups.oo_first_master.0 }}"      register: l_upgrade_nodes_drain_result      until: not (l_upgrade_nodes_drain_result is failed) -    retries: 60 -    delay: 60 +    retries: "{{ 1 if ( openshift_upgrade_nodes_drain_timeout | default(0) | int ) == 0 else 0 }}" +    delay: 5 +    failed_when: +    - l_upgrade_nodes_drain_result is failed +    - openshift_upgrade_nodes_drain_timeout | default(0) | int == 0    post_tasks: -  - include_role: +  - import_role:        name: openshift_node        tasks_from: upgrade.yml -    vars: -      openshift_node_upgrade_in_progress: True    - name: Set node schedulability      oc_adm_manage_node:        node: "{{ openshift.node.nodename | lower }}" @@ -62,7 +64,7 @@  - name: Re-enable excluders    hosts: oo_nodes_to_upgrade:!oo_masters_to_config    tasks: -  - include_role: +  - import_role:        name: openshift_excluder      vars:        r_openshift_excluder_action: enable diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_scale_group.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_scale_group.yml index e8c0f361a..e259b5d09 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_scale_group.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_scale_group.yml @@ -3,7 +3,7 @@    hosts: localhost    tasks:    - name: build upgrade scale groups -    include_role: +    import_role:        name: openshift_aws        tasks_from: upgrade_node_group.yml @@ -43,24 +43,24 @@    tasks:    - name: Drain Node for Kubelet upgrade      command: > -      {{ hostvars[groups.oo_first_master.0].openshift.common.client_binary }} adm drain {{ openshift.node.nodename | lower }} +      {{ hostvars[groups.oo_first_master.0]['first_master_client_binary'] }} adm drain {{ openshift.node.nodename | lower }}        --config={{ openshift.common.config_base }}/master/admin.kubeconfig        --force --delete-local-data --ignore-daemonsets        --timeout={{ openshift_upgrade_nodes_drain_timeout | default(0) }}s      delegate_to: "{{ groups.oo_first_master.0 }}"      register: l_upgrade_nodes_drain_result      until: not (l_upgrade_nodes_drain_result is failed) -    retries: "{{ 1 if openshift_upgrade_nodes_drain_timeout | default(0) == '0' else 0  | int }}" +    retries: "{{ 1 if ( openshift_upgrade_nodes_drain_timeout | default(0) | int ) == 0 else 0 }}"      delay: 5      failed_when:      - l_upgrade_nodes_drain_result is failed -    - openshift_upgrade_nodes_drain_timeout | default(0) == '0' +    - openshift_upgrade_nodes_drain_timeout | default(0) | int == 0  # Alright, let's clean up!  - name: clean up the old scale group    hosts: localhost    tasks:    - name: clean up scale group -    include_role: +    import_role:        name: openshift_aws        tasks_from: remove_scale_group.yml diff --git a/playbooks/common/openshift-cluster/upgrades/v3_6/filter_plugins b/playbooks/common/openshift-cluster/upgrades/v3_6/filter_plugins deleted file mode 120000 index 7de3c1dd7..000000000 --- a/playbooks/common/openshift-cluster/upgrades/v3_6/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../../filter_plugins/
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade.yml index a5ad3801d..d520c6aee 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade.yml @@ -13,7 +13,7 @@    tasks:    - set_fact:        openshift_upgrade_target: '3.6' -      openshift_upgrade_min: "{{ '1.5' if deployment_type == 'origin' else '3.5' }}" +      openshift_upgrade_min: "{{ '1.5' if openshift_deployment_type == 'origin' else '3.5' }}"  - import_playbook: ../pre/config.yml    vars: diff --git a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_control_plane.yml index 1498db4c5..eb5f07ae0 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_control_plane.yml @@ -14,16 +14,21 @@  - import_playbook: ../init.yml    vars:      l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_non_node_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"  - name: Configure the upgrade target for the common upgrade tasks    hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config    tasks:    - set_fact:        openshift_upgrade_target: '3.6' -      openshift_upgrade_min: "{{ '1.5' if deployment_type == 'origin' else '3.5' }}" +      openshift_upgrade_min: "{{ '1.5' if openshift_deployment_type == 'origin' else '3.5' }}"  - import_playbook: ../pre/config.yml +  # These vars a meant to exclude oo_nodes from plays that would otherwise include +  # them by default.    vars: +    l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master" +    l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"      l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"      l_upgrade_no_proxy_hosts: "oo_masters_to_config"      l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" diff --git a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_nodes.yml b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_nodes.yml index 6958652d8..4febe76ee 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_nodes.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_nodes.yml @@ -15,7 +15,7 @@    tasks:    - set_fact:        openshift_upgrade_target: '3.6' -      openshift_upgrade_min: "{{ '1.5' if deployment_type == 'origin' else '3.5' }}" +      openshift_upgrade_min: "{{ '1.5' if openshift_deployment_type == 'origin' else '3.5' }}"  - import_playbook: ../pre/config.yml    vars: diff --git a/playbooks/common/openshift-cluster/upgrades/v3_7/filter_plugins b/playbooks/common/openshift-cluster/upgrades/v3_7/filter_plugins deleted file mode 120000 index 7de3c1dd7..000000000 --- a/playbooks/common/openshift-cluster/upgrades/v3_7/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../../filter_plugins/
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_control_plane.yml index 1750148d4..8d42e4c91 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_control_plane.yml @@ -14,6 +14,7 @@  - import_playbook: ../init.yml    vars:      l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_non_node_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"  - name: Configure the upgrade target for the common upgrade tasks    hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config @@ -23,7 +24,11 @@        openshift_upgrade_min: '3.6'  - import_playbook: ../pre/config.yml +  # These vars a meant to exclude oo_nodes from plays that would otherwise include +  # them by default.    vars: +    l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master" +    l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"      l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"      l_upgrade_no_proxy_hosts: "oo_masters_to_config"      l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" diff --git a/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml b/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml index c8c87a9c3..9c7688981 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml @@ -7,6 +7,7 @@    hosts: oo_first_master    roles:    - { role: lib_openshift } +  - { role: openshift_facts }    tasks:    - name: Check for invalid namespaces and SDN errors @@ -14,7 +15,7 @@    # DO NOT DISABLE THIS, YOUR UPGRADE WILL FAIL IF YOU DO SO    - name: Confirm OpenShift authorization objects are in sync      command: > -      {{ openshift.common.client_binary }} adm migrate authorization +      {{ openshift_client_binary }} adm migrate authorization      when:      - openshift_currently_installed_version is version_compare('3.7','<')      - openshift_upgrade_pre_authorization_migration_enabled | default(true) | bool diff --git a/playbooks/common/openshift-cluster/upgrades/v3_8/filter_plugins b/playbooks/common/openshift-cluster/upgrades/v3_8/filter_plugins deleted file mode 120000 index 7de3c1dd7..000000000 --- a/playbooks/common/openshift-cluster/upgrades/v3_8/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../../filter_plugins/
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade.yml index 0f74e0137..a9bf354cc 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade.yml @@ -35,8 +35,6 @@  # Pre-upgrade completed  - import_playbook: ../upgrade_control_plane.yml -  vars: -    master_config_hook: "v3_7/master_config_upgrade.yml"  # All controllers must be stopped at the same time then restarted  - name: Cycle all controller services to force new leader election mode diff --git a/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml index 08bfd239f..51da45311 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml @@ -14,6 +14,8 @@  - import_playbook: ../init.yml    vars:      l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_non_node_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +  when: not skip_version_info | default(false)  - name: Configure the upgrade target for the common upgrade tasks    hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config @@ -23,7 +25,11 @@        openshift_upgrade_min: '3.7'  - import_playbook: ../pre/config.yml +  # These vars a meant to exclude oo_nodes from plays that would otherwise include +  # them by default.    vars: +    l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master" +    l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"      l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"      l_upgrade_no_proxy_hosts: "oo_masters_to_config"      l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" @@ -42,8 +48,6 @@  # Pre-upgrade completed  - import_playbook: ../upgrade_control_plane.yml -  vars: -    master_config_hook: "v3_7/master_config_upgrade.yml"  # All controllers must be stopped at the same time then restarted  - name: Cycle all controller services to force new leader election mode diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/filter_plugins b/playbooks/common/openshift-cluster/upgrades/v3_9/filter_plugins deleted file mode 120000 index 7de3c1dd7..000000000 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/filter_plugins +++ /dev/null @@ -1 +0,0 @@ -../../../../../filter_plugins/
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/master_config_upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/master_config_upgrade.yml index 1d4d1919c..ed97d539c 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/master_config_upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/master_config_upgrade.yml @@ -1,20 +1 @@  --- -- modify_yaml: -    dest: "{{ openshift.common.config_base}}/master/master-config.yaml" -    yaml_key: 'controllerConfig.election.lockName' -    yaml_value: 'openshift-master-controllers' - -- modify_yaml: -    dest: "{{ openshift.common.config_base}}/master/master-config.yaml" -    yaml_key: 'controllerConfig.serviceServingCert.signer.certFile' -    yaml_value: service-signer.crt - -- modify_yaml: -    dest: "{{ openshift.common.config_base}}/master/master-config.yaml" -    yaml_key: 'controllerConfig.serviceServingCert.signer.keyFile' -    yaml_value: service-signer.key - -- modify_yaml: -    dest: "{{ openshift.common.config_base }}/master/master-config.yaml" -    yaml_key: servingInfo.clientCA -    yaml_value: ca.crt diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade.yml index 0aea5069d..20e0c165e 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade.yml @@ -10,6 +10,7 @@    - set_fact:        openshift_upgrade_target: '3.9'        openshift_upgrade_min: '3.7' +      openshift_release: '3.9'  - import_playbook: ../pre/config.yml    vars: @@ -31,8 +32,6 @@  # Pre-upgrade completed  - import_playbook: ../upgrade_control_plane.yml -  vars: -    master_config_hook: "v3_7/master_config_upgrade.yml"  # All controllers must be stopped at the same time then restarted  - name: Cycle all controller services to force new leader election mode @@ -41,13 +40,13 @@    roles:    - role: openshift_facts    tasks: -  - name: Stop {{ openshift.common.service_type }}-master-controllers +  - name: Stop {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: stopped -  - name: Start {{ openshift.common.service_type }}-master-controllers +  - name: Start {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: started  - import_playbook: ../upgrade_nodes.yml diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml index 05aa737c6..384eeed4c 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml @@ -14,37 +14,84 @@  - import_playbook: ../init.yml    vars:      l_upgrade_no_switch_firewall_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_non_node_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" -- name: Configure the upgrade target for the common upgrade tasks +## Check to see if they're running 3.7 and if so upgrade them to 3.8 on control plan +## If they've specified pkg_version or image_tag preserve that for later use +- name: Configure the upgrade target for the common upgrade tasks 3.8    hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config    tasks:    - set_fact: -      openshift_upgrade_target: '3.9' +      openshift_upgrade_target: '3.8'        openshift_upgrade_min: '3.7' +      openshift_release: '3.8' +      _requested_pkg_version: "{{openshift_pkg_version if openshift_pkg_version is defined else omit }}" +      _requested_image_tag: "{{openshift_image_tag if openshift_image_tag is defined else omit }}" +    when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')  - import_playbook: ../pre/config.yml +  # These vars a meant to exclude oo_nodes from plays that would otherwise include +  # them by default.    vars: +    l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master" +    l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master"      l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"      l_upgrade_no_proxy_hosts: "oo_masters_to_config"      l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config"      l_upgrade_verify_targets_hosts: "oo_masters_to_config"      l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config"      l_upgrade_excluder_hosts: "oo_masters_to_config" +  when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<') -- import_playbook: validator.yml - -- name: Flag pre-upgrade checks complete for hosts without errors +- name: Flag pre-upgrade checks complete for hosts without errors 3.8    hosts: oo_masters_to_config:oo_etcd_to_config    tasks:    - set_fact:        pre_upgrade_complete: True +    when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<')  # Pre-upgrade completed +- import_playbook: ../upgrade_control_plane.yml +  vars: +    openshift_release: '3.8' +  when: hostvars[groups.oo_first_master.0].openshift_currently_installed_version | version_compare('3.8','<') + +## 3.8 upgrade complete we should now be able to upgrade to 3.9 + +- name: Configure the upgrade target for the common upgrade tasks 3.9 +  hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config +  tasks: +  - meta: clear_facts +  - set_fact: +      openshift_upgrade_target: '3.9' +      openshift_upgrade_min: '3.8' +      openshift_release: '3.9' +      openshift_pkg_version: "{{ _requested_pkg_version | default ('-3.9*') }}" +      openshift_image_tag: "{{ _requested_image_tag | default('v3.9') }}" + +- import_playbook: ../pre/config.yml +  # These vars a meant to exclude oo_nodes from plays that would otherwise include +  # them by default. +  vars: +    l_openshift_version_set_hosts: "oo_etcd_to_config:oo_masters_to_config:!oo_first_master" +    l_openshift_version_check_hosts: "oo_masters_to_config:!oo_first_master" +    l_upgrade_repo_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_no_proxy_hosts: "oo_masters_to_config" +    l_upgrade_health_check_hosts: "oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config" +    l_upgrade_verify_targets_hosts: "oo_masters_to_config" +    l_upgrade_docker_target_hosts: "oo_masters_to_config:oo_etcd_to_config" +    l_upgrade_excluder_hosts: "oo_masters_to_config" + +- name: Flag pre-upgrade checks complete for hosts without errors +  hosts: oo_masters_to_config:oo_etcd_to_config +  tasks: +  - set_fact: +      pre_upgrade_complete: True  - import_playbook: ../upgrade_control_plane.yml    vars: -    master_config_hook: "v3_7/master_config_upgrade.yml" +    openshift_release: '3.9'  # All controllers must be stopped at the same time then restarted  - name: Cycle all controller services to force new leader election mode @@ -53,13 +100,13 @@    roles:    - role: openshift_facts    tasks: -  - name: Stop {{ openshift.common.service_type }}-master-controllers +  - name: Stop {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: stopped -  - name: Start {{ openshift.common.service_type }}-master-controllers +  - name: Start {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: started  - import_playbook: ../post_control_plane.yml diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_nodes.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_nodes.yml index 1d1b255c1..859b1d88b 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_nodes.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_nodes.yml @@ -12,6 +12,7 @@    - set_fact:        openshift_upgrade_target: '3.9'        openshift_upgrade_min: '3.7' +      openshift_release: '3.9'  - import_playbook: ../pre/config.yml    vars: diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/validator.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/validator.yml index 4bd2d87b1..d8540abfb 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/validator.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/validator.yml @@ -1,5 +1,5 @@  --- -- name: Verify 3.9 specific upgrade checks +- name: Verify 3.8 specific upgrade checks    hosts: oo_first_master    roles:    - { role: lib_openshift }  | 
