diff options
Diffstat (limited to 'playbooks/common')
8 files changed, 41 insertions, 164 deletions
diff --git a/playbooks/common/openshift-cluster/additional_config.yml b/playbooks/common/openshift-cluster/additional_config.yml index a34322754..e9fb3de96 100644 --- a/playbooks/common/openshift-cluster/additional_config.yml +++ b/playbooks/common/openshift-cluster/additional_config.yml @@ -19,8 +19,6 @@    - role: openshift_examples      registry_url: "{{ openshift.master.registry_url }}"      when: openshift.common.install_examples | bool -  - role: openshift_cluster_metrics -    when: openshift.common.use_cluster_metrics | bool    - role: openshift_manageiq      when: openshift.common.use_manageiq | bool    - role: cockpit diff --git a/playbooks/common/openshift-cluster/evaluate_groups.yml b/playbooks/common/openshift-cluster/evaluate_groups.yml index c5273b08f..3fb42a7fa 100644 --- a/playbooks/common/openshift-cluster/evaluate_groups.yml +++ b/playbooks/common/openshift-cluster/evaluate_groups.yml @@ -35,7 +35,7 @@        groups: oo_all_hosts        ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"        ansible_become: "{{ g_sudo | default(omit) }}" -    with_items: g_all_hosts | default([]) +    with_items: "{{ g_all_hosts | default([]) }}"    - name: Evaluate oo_masters      add_host: diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/nuke_images.sh b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/nuke_images.sh new file mode 120000 index 000000000..49a51bba9 --- /dev/null +++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/nuke_images.sh @@ -0,0 +1 @@ +../files/nuke_images.sh
\ No newline at end of file diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml index 7a8dfdf91..a32123952 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml @@ -87,7 +87,7 @@      # Request openshift_release 3.2 and let the openshift_version role handle converting this      # to a more specific version, respecting openshift_image_tag and openshift_pkg_version if      # defined, and overriding the normal behavior of protecting the installed version -    openshift_release: "3.2" +    openshift_release: "{{ '1.2' if deployment_type == 'origin' else '3.2' }}"      openshift_protect_installed_version: False      # Docker role (a dependency) should be told not to do anything to installed version      # of docker, we handle this separately during upgrade. (the inventory may have a @@ -163,6 +163,8 @@    - name: Verify containers are available for upgrade      command: >        docker pull {{ openshift.common.cli_image }}:{{ openshift_image_tag }} +    register: pull_result +    changed_when: "'Downloaded newer image' in pull_result.stdout"      when: openshift.common.is_containerized | bool    - name: Check latest available OpenShift RPM version @@ -176,8 +178,12 @@    - name: Verify OpenShift 3.2 RPMs are available for upgrade      fail:        msg: "OpenShift {{ avail_openshift_version.stdout }} is available, but 3.2 or greater is required" -    when: not openshift.common.is_containerized | bool and not avail_openshift_version | skipped and avail_openshift_version.stdout | default('0.0', True) | version_compare('3.2', '<') +    when: deployment_type != 'origin' and not openshift.common.is_containerized | bool and not avail_openshift_version | skipped and avail_openshift_version.stdout | default('0.0', True) | version_compare(openshift_release, '<') +  - name: Verify Origin 1.2 RPMs are available for upgrade +    fail: +      msg: "OpenShift {{ avail_openshift_version.stdout }} is available, but 1.2 or greater is required" +    when: deployment_type == 'origin' and not openshift.common.is_containerized | bool and not avail_openshift_version | skipped and avail_openshift_version.stdout | default('0.0', True) | version_compare(openshift_release, '<')    # TODO: Are these two grep checks necessary anymore?    # Note: the version number is hardcoded here in hopes of catching potential diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml index 0ea315d0a..59cedc839 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml @@ -84,10 +84,10 @@    # Only check if docker upgrade is required if docker_upgrade is not    # already set to False.    - include: ../docker/upgrade_check.yml -    when: docker_upgrade is not defined or docker_upgrade | bool +    when: docker_upgrade is not defined or docker_upgrade | bool and not openshift.common.is_atomic | bool    - include: ../docker/upgrade.yml -    when: l_docker_upgrade is defined and l_docker_upgrade | bool +    when: l_docker_upgrade is defined and l_docker_upgrade | bool and not openshift.common.is_atomic | bool    - include: rpm_upgrade.yml      vars: diff --git a/playbooks/common/openshift-cluster/verify_ansible_version.yml b/playbooks/common/openshift-cluster/verify_ansible_version.yml new file mode 100644 index 000000000..2a143b065 --- /dev/null +++ b/playbooks/common/openshift-cluster/verify_ansible_version.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost +  connection: local +  become: no +  gather_facts: no +  tasks: +  - name: Verify Ansible version is greater than or equal to 2.1.0.0 +    fail: +      msg: "Unsupported ansible version: {{ ansible_version.full }} found" +    when: not ansible_version.full | version_compare('2.1.0.0', 'ge') diff --git a/playbooks/common/openshift-master/config.yml b/playbooks/common/openshift-master/config.yml index bb8fb77b6..2f12b08c9 100644 --- a/playbooks/common/openshift-master/config.yml +++ b/playbooks/common/openshift-master/config.yml @@ -156,79 +156,6 @@      - master.etcd-ca.crt      when: etcd_client_certs_missing is defined and etcd_client_certs_missing -- name: Determine if master certificates need to be generated -  hosts: oo_first_master:oo_masters_to_config -  tasks: -  - set_fact: -      openshift_master_certs_no_etcd: -      - admin.crt -      - master.kubelet-client.crt -      - "{{ 'master.proxy-client.crt' if openshift.common.version_gte_3_1_or_1_1 else omit }}" -      - master.server.crt -      - openshift-master.crt -      - openshift-registry.crt -      - openshift-router.crt -      - etcd.server.crt -      openshift_master_certs_etcd: -      - master.etcd-client.crt - -  - set_fact: -      openshift_master_certs: "{{ (openshift_master_certs_no_etcd | union(openshift_master_certs_etcd)) if (groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config) else openshift_master_certs_no_etcd }}" - -  - name: Check status of master certificates -    stat: -      path: "{{ openshift.common.config_base }}/master/{{ item }}" -    with_items: "{{ openshift_master_certs }}" -    register: g_master_cert_stat_result -  - set_fact: -      master_certs_missing: "{{ False in (g_master_cert_stat_result.results -                                | oo_collect(attribute='stat.exists') -                                | list ) }}" -      master_cert_subdir: master-{{ openshift.common.hostname }} -      master_cert_config_dir: "{{ openshift.common.config_base }}/master" - -- name: Configure master certificates -  hosts: oo_first_master -  vars: -    master_generated_certs_dir: "{{ openshift.common.config_base }}/generated-configs" -    masters_needing_certs: "{{ hostvars -                               | oo_select_keys(groups['oo_masters_to_config'] | difference(groups['oo_first_master'])) -                               | oo_filter_list(filter_attr='master_certs_missing') }}" -    master_hostnames: "{{ hostvars -                               | oo_select_keys(groups['oo_masters_to_config']) -                               | oo_collect('openshift.common.all_hostnames') -                               | oo_flatten | unique }}" -    sync_tmpdir: "{{ hostvars.localhost.g_master_mktemp.stdout }}" -  roles: -  - openshift_master_certificates -  post_tasks: -  - name: Remove generated etcd client certs when using external etcd -    file: -      path: "{{ master_generated_certs_dir }}/{{ item.0.master_cert_subdir }}/{{ item.1 }}" -      state: absent -    when: groups.oo_etcd_to_config is defined and groups.oo_etcd_to_config -    with_nested: -    - "{{ masters_needing_certs | default([]) }}" -    - - master.etcd-client.crt -      - master.etcd-client.key - -  - name: Create a tarball of the master certs -    command: > -      tar -czvf {{ master_generated_certs_dir }}/{{ item.master_cert_subdir }}.tgz -        -C {{ master_generated_certs_dir }}/{{ item.master_cert_subdir }} . -    args: -      creates: "{{ master_generated_certs_dir }}/{{ item.master_cert_subdir }}.tgz" -    with_items: "{{ masters_needing_certs | default([]) }}" - -  - name: Retrieve the master cert tarball from the master -    fetch: -      src: "{{ master_generated_certs_dir }}/{{ item.master_cert_subdir }}.tgz" -      dest: "{{ sync_tmpdir }}/" -      flat: yes -      fail_on_missing: yes -      validate_checksum: yes -    with_items: "{{ masters_needing_certs | default([]) }}" -  - name: Check for cached session secrets    hosts: oo_first_master    roles: @@ -243,7 +170,7 @@  - name: Generate master session secrets    hosts: oo_first_master    vars: -    g_session_secrets_present: "{{ (openshift.master.session_auth_secrets | default([]) and openshift.master.session_encryption_secrets | default([])) | length > 0 }}" +    g_session_secrets_present: "{{ (openshift.master.session_auth_secrets | default([])) | length > 0 and (openshift.master.session_encryption_secrets | default([])) | length > 0 }}"      g_session_auth_secrets: "{{ [ 24 | oo_generate_secret ] }}"      g_session_encryption_secrets: "{{ [ 24 | oo_generate_secret ] }}"    roles: @@ -263,7 +190,7 @@    vars:      internal_hostnames: "{{ hostvars[groups.oo_first_master.0].openshift.common.internal_hostnames }}"      named_certificates: "{{ hostvars[groups.oo_first_master.0].openshift_master_named_certificates | default([]) }}" -    named_certificates_dir: "{{ hostvars[groups.oo_first_master.0].master_cert_config_dir }}/named_certificates/" +    named_certificates_dir: "{{ hostvars[groups.oo_first_master.0].openshift.common.config_base }}/master/named_certificates/"    tasks:    - set_fact:        parsed_named_certificates: "{{ named_certificates | oo_parse_named_certificates(named_certificates_dir, internal_hostnames) }}" @@ -272,7 +199,7 @@  - name: Deploy named certificates    hosts: oo_masters_to_config    vars: -    named_certs_dir: "{{ master_cert_config_dir }}/named_certificates/" +    named_certs_dir: "{{ openshift.common.config_base }}/master/named_certificates/"      named_certs_specified: "{{ openshift_master_named_certificates is defined }}"      overwrite_named_certs: "{{ openshift_master_overwrite_named_certificates | default(false) }}"    roles: @@ -297,17 +224,16 @@      when: named_certs_specified | bool    - name: Land named certificates      copy: src="{{ item.certfile }}" dest="{{ named_certs_dir }}" -    with_items: openshift_master_named_certificates +    with_items: "{{ openshift_master_named_certificates }}"      when: named_certs_specified | bool    - name: Land named certificate keys      copy: src="{{ item.keyfile }}" dest="{{ named_certs_dir }}" mode=0600 -    with_items: openshift_master_named_certificates +    with_items: "{{ openshift_master_named_certificates }}"      when: named_certs_specified | bool  - name: Configure masters    hosts: oo_masters_to_config    any_errors_fatal: true -  serial: 1    vars:      sync_tmpdir: "{{ hostvars.localhost.g_master_mktemp.stdout }}"      openshift_master_ha: "{{ openshift.master.ha }}" @@ -321,19 +247,17 @@                                                  }}"      when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and              openshift_generate_no_proxy_hosts | default(True) | bool }}" -  pre_tasks: -  - name: Ensure certificate directory exists -    file: -      path: "{{ openshift.common.config_base }}/master" -      state: directory -    when: master_certs_missing | bool and 'oo_first_master' not in group_names -  - name: Unarchive the tarball on the master -    unarchive: -      src: "{{ sync_tmpdir }}/{{ master_cert_subdir }}.tgz" -      dest: "{{ master_cert_config_dir }}" -    when: master_certs_missing | bool and 'oo_first_master' not in group_names    roles: -  - openshift_master +  - role: openshift_master +    openshift_ca_host: "{{ groups.oo_first_master.0 }}" +    openshift_master_etcd_hosts: "{{ hostvars +                                     | oo_select_keys(groups['oo_etcd_to_config'] | default([])) +                                     | oo_collect('openshift.common.hostname') +                                     | default(none, true) }}" +    openshift_master_hostnames: "{{ hostvars +                                    | oo_select_keys(groups['oo_masters_to_config'] | default([])) +                                    | oo_collect('openshift.common.all_hostnames') +                                    | oo_flatten | unique }}"    - role: nickhammond.logrotate    - role: nuage_master      when: openshift.common.use_nuage | bool diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml index 80659dc52..a8c49d37b 100644 --- a/playbooks/common/openshift-node/config.yml +++ b/playbooks/common/openshift-node/config.yml @@ -19,23 +19,6 @@          labels: "{{ openshift_node_labels | default(None) }}"          annotations: "{{ openshift_node_annotations | default(None) }}"          schedulable: "{{ openshift_schedulable | default(openshift_scheduleable) | default(None) }}" -  - name: Check status of node certificates -    stat: -      path: "{{ openshift.common.config_base }}/node/{{ item }}" -    with_items: -    - "system:node:{{ openshift.common.hostname }}.crt" -    - "system:node:{{ openshift.common.hostname }}.key" -    - "system:node:{{ openshift.common.hostname }}.kubeconfig" -    - ca.crt -    - server.key -    - server.crt -    register: stat_result -  - set_fact: -      certs_missing: "{{ stat_result.results | oo_collect(attribute='stat.exists') -                         | list | intersect([false])}}" -      node_subdir: node-{{ openshift.common.hostname }} -      config_dir: "{{ openshift.common.config_base }}/generated-configs/node-{{ openshift.common.hostname }}" -      node_cert_dir: "{{ openshift.common.config_base }}/node"  - name: Create temp directory for syncing certs    hosts: localhost @@ -48,53 +31,6 @@      register: mktemp      changed_when: False -- name: Create node certificates -  hosts: oo_first_master -  vars: -    nodes_needing_certs: "{{ hostvars -                             | oo_select_keys(groups['oo_nodes_to_config'] -                                              | default([])) -                             | oo_filter_list(filter_attr='certs_missing') }}" -    sync_tmpdir: "{{ hostvars.localhost.mktemp.stdout }}" -  roles: -  - openshift_node_certificates -  post_tasks: -  - name: Create a tarball of the node config directories -    command: > -      tar -czvf {{ item.config_dir }}.tgz -        --transform 's|system:{{ item.node_subdir }}|node|' -        -C {{ item.config_dir }} . -    args: -      creates: "{{ item.config_dir }}.tgz" -    with_items: "{{ nodes_needing_certs | default([]) }}" - -  - name: Retrieve the node config tarballs from the master -    fetch: -      src: "{{ item.config_dir }}.tgz" -      dest: "{{ sync_tmpdir }}/" -      flat: yes -      fail_on_missing: yes -      validate_checksum: yes -    with_items: "{{ nodes_needing_certs | default([]) }}" - -- name: Deploy node certificates -  hosts: oo_nodes_to_config -  vars: -    sync_tmpdir: "{{ hostvars.localhost.mktemp.stdout }}" -  tasks: -  - name: Ensure certificate directory exists -    file: -      path: "{{ node_cert_dir }}" -      state: directory -  # TODO: notify restart node -  # possibly test service started time against certificate/config file -  # timestamps in node to trigger notify -  - name: Unarchive the tarball on the node -    unarchive: -      src: "{{ sync_tmpdir }}/{{ node_subdir }}.tgz" -      dest: "{{ node_cert_dir }}" -    when: certs_missing -  - name: Evaluate node groups    hosts: localhost    become: no @@ -124,7 +60,8 @@      when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and              openshift_generate_no_proxy_hosts | default(True) | bool }}"    roles: -  - openshift_node +  - role: openshift_node +    openshift_ca_host: "{{ groups.oo_first_master.0 }}"  - name: Configure node instances    hosts: oo_nodes_to_config:!oo_containerized_master_nodes @@ -140,7 +77,8 @@      when: "{{ (openshift_http_proxy is defined or openshift_https_proxy is defined) and              openshift_generate_no_proxy_hosts | default(True) | bool }}"    roles: -  - openshift_node +  - role: openshift_node +    openshift_ca_host: "{{ groups.oo_first_master.0 }}"  - name: Gather and set facts for flannel certificatess    hosts: oo_nodes_to_config  | 
