diff options
43 files changed, 378 insertions, 178 deletions
| diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index 8ff47aac6..ae7183bcb 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.7.0-0.173.0 ./ +3.7.0-0.177.0 ./ diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 7e15f9b8e..ea272bdb2 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -10,7 +10,7 @@  Name:           openshift-ansible  Version:        3.7.0 -Release:        0.173.0%{?dist} +Release:        0.177.0%{?dist}  Summary:        Openshift and Atomic Enterprise Ansible  License:        ASL 2.0  URL:            https://github.com/openshift/openshift-ansible @@ -280,6 +280,43 @@ Atomic OpenShift Utilities includes  %changelog +* Tue Oct 24 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.7.0-0.177.0 +- Check if the master service is non-ha or not (jchaloup@redhat.com) +- Correct host group for controller restart (rteague@redhat.com) +- Set the proper external etcd ip address when migrating embeded etcd +  (jchaloup@redhat.com) +- Switch to stateful set in prometheus (zgalor@redhat.com) +- cli: use the correct name for the master system container +  (gscrivan@redhat.com) +- cli: do not pull again the image when using Docker (gscrivan@redhat.com) +- verstion_gte seems unreliable on containerized installs (sdodson@redhat.com) +- Retry reconcile in case of error and give up eventually (simo@redhat.com) +- Updating ocp es proxy image to use openshift_logging_proxy_image_prefix if +  specified (ewolinet@redhat.com) +- Generate all internal hostnames of no_proxy (ghuang@redhat.com) +- Add nfs variables documentation to README file (zgalor@redhat.com) +- Avoid undefined variable in master sysconfig template (hansmi@vshn.ch) +- Ensure proper variable templating for skopeo auth credentials +  (mgugino@redhat.com) + +* Mon Oct 23 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.7.0-0.176.0 +- Update defaults (fabian@fabianism.us) +- Use service-ca.crt instead of master ca.crt (fabian@fabianism.us) +- use master cert (fabian@fabianism.us) +- Bug 1496426 - add asb-client secret to openshift-ansible-service-broker +  namespace (fabian@fabianism.us) +- docker: Move enterprise registry from pkg to main (smilner@redhat.com) +- systemcontainers: Verify atomic.conf proxy is always configured +  (smilner@redhat.com) +- Add variable to control whether NetworkManager hook is installed +  (hansmi@vshn.ch) + +* Mon Oct 23 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.7.0-0.175.0 +-  + +* Sun Oct 22 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.7.0-0.174.0 +-  +  * Sun Oct 22 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.7.0-0.173.0  -  diff --git a/playbooks/common/openshift-cluster/initialize_facts.yml b/playbooks/common/openshift-cluster/initialize_facts.yml index be2f8b5f4..0f563adb7 100644 --- a/playbooks/common/openshift-cluster/initialize_facts.yml +++ b/playbooks/common/openshift-cluster/initialize_facts.yml @@ -145,7 +145,19 @@          https_proxy: "{{ openshift_https_proxy | default(None) }}"          no_proxy: "{{ openshift_no_proxy | default(None) }}"          generate_no_proxy_hosts: "{{ openshift_generate_no_proxy_hosts | default(True) }}" -        no_proxy_internal_hostnames: "{{ openshift_no_proxy_internal_hostnames | default(None) }}" + +  - name: Set fact of no_proxy_internal_hostnames +    openshift_facts: +      role: common +      local_facts: +        no_proxy_internal_hostnames: "{{ hostvars | 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 (',') +                                         }}" +    when: +    - openshift_http_proxy is defined or openshift_https_proxy is defined +    - openshift_generate_no_proxy_hosts | default(True) | bool    - name: initialize_facts set_fact repoquery command      set_fact: diff --git a/playbooks/common/openshift-cluster/upgrades/pre/verify_control_plane_running.yml b/playbooks/common/openshift-cluster/upgrades/pre/verify_control_plane_running.yml index 45022cd61..6a5bc24f7 100644 --- a/playbooks/common/openshift-cluster/upgrades/pre/verify_control_plane_running.yml +++ b/playbooks/common/openshift-cluster/upgrades/pre/verify_control_plane_running.yml @@ -9,16 +9,29 @@        local_facts:          ha: "{{ groups.oo_masters_to_config | length > 1 }}" -  - name: Ensure HA Master is running -    service: -      name: "{{ openshift.common.service_type }}-master-api" -      state: started -      enabled: yes -    when: openshift.common.is_containerized | bool +  - when: openshift.common.is_containerized | bool +    block: +    - set_fact: +        master_services: +        - "{{ openshift.common.service_type }}-master" -  - name: Ensure HA Master is running -    service: -      name: "{{ openshift.common.service_type }}-master-controllers" -      state: started -      enabled: yes -    when: openshift.common.is_containerized | bool +    # In case of the non-ha to ha upgrade. +    - name: Check if the {{ openshift.common.service_type }}-master-api.service exists +      command: > +        systemctl list-units {{ openshift.common.service_type }}-master-api.service --no-legend +      register: master_api_service_status + +    - set_fact: +        master_services: +        - "{{ openshift.common.service_type }}-master-api" +        - "{{ openshift.common.service_type }}-master-controllers" +      when: +      - master_api_service_status.stdout_lines | length > 0 +      - (openshift.common.service_type + '-master-api.service') in master_api_service_status.stdout_lines[0] + +    - name: Ensure Master is running +      service: +        name: "{{ item }}" +        state: started +        enabled: yes +      with_items: "{{ 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 142ce5f3d..13fa37b09 100644 --- a/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml +++ b/playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml @@ -4,6 +4,12 @@      msg: Verify OpenShift is already installed    when: openshift.common.version is not defined +- name: Update oreg_auth docker login credentials if necessary +  include_role: +    name: docker +    tasks_from: registry_auth.yml +  when: oreg_auth_user is defined +  - name: Verify containers are available for upgrade    command: >      docker pull {{ openshift.common.cli_image }}:{{ openshift_image_tag }} @@ -37,7 +43,7 @@      fail:        msg: "OpenShift {{ avail_openshift_version }} is available, but {{ openshift_upgrade_target }} or greater is required"      when: -    - openshift_pkg_version | default('0.0', True) | version_compare(openshift_release, '<') +    - (openshift_pkg_version | default('-0.0', True)).split('-')[1] | version_compare(openshift_release, '<')  - name: Fail when openshift version does not meet minium requirement for Origin upgrade    fail: diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index c37a5f9ab..a5e2f7940 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -90,6 +90,9 @@    - include_vars: ../../../../roles/openshift_master/vars/main.yml +  - name: Update journald config +    include: ../../../../roles/openshift_master/tasks/journald.yml +    - name: Remove any legacy systemd units and update systemd units      include: ../../../../roles/openshift_master/tasks/systemd_units.yml @@ -199,7 +202,7 @@        {{ openshift.common.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: not openshift.common.version_gte_3_7 | bool +    when: openshift_version | version_compare('3.7','<')      changed_when:      - reconcile_cluster_role_result.stdout != ''      - reconcile_cluster_role_result.rc == 0 @@ -214,7 +217,7 @@        --exclude-groups=system:unauthenticated        --exclude-users=system:anonymous        --additive-only=true --confirm -o name -    when: not openshift.common.version_gte_3_7 | bool +    when: openshift_version | version_compare('3.7','<')      register: reconcile_bindings_result      changed_when:      - reconcile_bindings_result.stdout != '' @@ -229,9 +232,11 @@      changed_when:      - reconcile_jenkins_role_binding_result.stdout != ''      - reconcile_jenkins_role_binding_result.rc == 0 -    when: (not openshift.common.version_gte_3_7 | bool) and (openshift.common.version_gte_3_4_or_1_4 | bool) +    when: +    - openshift_version | version_compare('3.7','<') +    - openshift_version | version_compare('3.4','>=') -  - when: (openshift.common.version_gte_3_6 | bool) and (not openshift.common.version_gte_3_7 | bool) +  - when: openshift_upgrade_target | version_compare('3.7','<')      block:      - name: Retrieve shared-resource-viewer        oc_obj: @@ -250,7 +255,6 @@        - "'annotations' in objout['results']['results'][0]['metadata']"        - "'openshift.io/reconcile-protect' in objout['results']['results'][0]['metadata']['annotations']"        - "objout['results']['results'][0]['metadata']['annotations']['openshift.io/reconcile-protect'] == 'true'" -      - copy:          src: "{{ item }}"          dest: "/tmp/{{ item }}" @@ -268,6 +272,12 @@          - "/tmp/{{ __master_shared_resource_viewer_file }}"          delete_after: true        when: __shared_resource_viewer_protected is not defined +      register: result +      retries: 3 +      delay: 5 +      until: result.rc == 0 +      ignore_errors: true +    - name: Reconcile Security Context Constraints      command: > diff --git a/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade.yml index bf3b94682..81f6dc8a4 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_7/upgrade.yml @@ -125,7 +125,7 @@  # All controllers must be stopped at the same time then restarted  - name: Cycle all controller services to force new leader election mode -  hosts: oo_etcd_to_config +  hosts: oo_masters_to_config    gather_facts: no    tasks:    - name: Stop {{ openshift.common.service_type }}-master-controllers diff --git a/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml b/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml index f76fc68d1..8e4f99c91 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_7/validator.yml @@ -15,7 +15,7 @@    - name: Confirm OpenShift authorization objects are in sync      command: >        {{ openshift.common.client_binary }} adm migrate authorization -    when: not openshift.common.version_gte_3_7 | bool +    when: openshift_version | version_compare('3.7','<')      changed_when: false      register: l_oc_result      until: l_oc_result.rc == 0 diff --git a/playbooks/common/openshift-etcd/embedded2external.yml b/playbooks/common/openshift-etcd/embedded2external.yml index 9264f3c32..b16b78c4f 100644 --- a/playbooks/common/openshift-etcd/embedded2external.yml +++ b/playbooks/common/openshift-etcd/embedded2external.yml @@ -158,7 +158,7 @@        tasks_from: configure_external_etcd      vars:        etcd_peer_url_scheme: "https" -      etcd_ip: "{{ openshift.common.ip }}" +      etcd_ip: "{{ hostvars[groups.oo_etcd_to_config.0].openshift.common.ip }}"        etcd_peer_port: 2379    # 9. start the master diff --git a/roles/ansible_service_broker/defaults/main.yml b/roles/ansible_service_broker/defaults/main.yml index fa982d533..dc05b03b5 100644 --- a/roles/ansible_service_broker/defaults/main.yml +++ b/roles/ansible_service_broker/defaults/main.yml @@ -13,7 +13,4 @@ ansible_service_broker_launch_apb_on_bind: false  ansible_service_broker_image_pull_policy: IfNotPresent  ansible_service_broker_sandbox_role: edit -ansible_service_broker_auto_escalate: true -ansible_service_broker_registry_tag: latest -ansible_service_broker_registry_whitelist: -  - '.*-apb$' +ansible_service_broker_auto_escalate: false diff --git a/roles/ansible_service_broker/tasks/install.yml b/roles/ansible_service_broker/tasks/install.yml index 9a91927b8..66c3d9cc4 100644 --- a/roles/ansible_service_broker/tasks/install.yml +++ b/roles/ansible_service_broker/tasks/install.yml @@ -22,23 +22,14 @@      ansible_service_broker_registry_user: "{{ ansible_service_broker_registry_user | default(__ansible_service_broker_registry_user) }}"      ansible_service_broker_registry_password: "{{ ansible_service_broker_registry_password | default(__ansible_service_broker_registry_password) }}"      ansible_service_broker_registry_organization: "{{ ansible_service_broker_registry_organization | default(__ansible_service_broker_registry_organization) }}" - -    ansible_service_broker_certs_dir: "{{ openshift.common.config_base }}/service-catalog" +    ansible_service_broker_registry_tag: "{{ ansible_service_broker_registry_tag | default(__ansible_service_broker_registry_tag) }}" +    ansible_service_broker_registry_whitelist: "{{ ansible_service_broker_registry_whitelist | default(__ansible_service_broker_registry_whitelist) }}"  - name: set ansible-service-broker image facts using set prefix and tag    set_fact:      ansible_service_broker_image: "{{ ansible_service_broker_image_prefix }}ansible-service-broker:{{ ansible_service_broker_image_tag }}"      ansible_service_broker_etcd_image: "{{ ansible_service_broker_etcd_image_prefix }}etcd:{{ ansible_service_broker_etcd_image_tag }}" -- set_fact: -    openshift_master_config_dir: "{{ openshift.common.config_base }}/master" -  when: openshift_master_config_dir is undefined - -- slurp: -    src: "{{ openshift_master_config_dir }}/service-signer.crt" -  register: catalog_ca - -  - include: validate_facts.yml @@ -83,13 +74,12 @@      state: present      name: asb-access      rules: -      - nonResourceURLs: ["/ansible-service-broker", "ansible-service-broker/*"] +      - nonResourceURLs: ["/ansible-service-broker", "/ansible-service-broker/*"]          verbs: ["get", "post", "put", "patch", "delete"]  - name: Bind admin cluster-role to asb serviceaccount    oc_adm_policy_user:      state: present -    namespace: openshift-ansible-service-broker      resource_kind: cluster-role      resource_name: admin      user: "system:serviceaccount:openshift-ansible-service-broker:asb" @@ -97,7 +87,6 @@  - name: Bind auth cluster role to asb service account    oc_adm_policy_user:      state: present -    namespace: openshift-ansible-service-broker      resource_kind: cluster-role      resource_name: asb-auth      user: "system:serviceaccount:openshift-ansible-service-broker:asb" @@ -105,7 +94,6 @@  - name: Bind asb-access role to asb-client service account    oc_adm_policy_user:      state: present -    namespace: openshift-ansible-service-broker      resource_kind: cluster-role      resource_name: asb-access      user: "system:serviceaccount:openshift-ansible-service-broker:asb-client" @@ -113,6 +101,7 @@  - name: create asb-client token secret    oc_obj:      name: asb-client +    namespace: openshift-ansible-service-broker      state: present      kind: Secret      content: @@ -122,10 +111,20 @@          kind: Secret          metadata:            name: asb-client +          namespace: openshift-ansible-service-broker            annotations:              kubernetes.io/service-account.name: asb-client          type: kubernetes.io/service-account-token +- oc_secret: +    state: list +    namespace: openshift-ansible-service-broker +    name: asb-client +  register: asb_client_secret + +- set_fact: +    service_ca_crt: asb_client_secret.results.results.0.data['service-ca.crt'] +  # Using oc_obj because oc_service doesn't seem to allow annotations  # TODO: Extend oc_service to allow annotations  - name: create ansible-service-broker service @@ -141,6 +140,7 @@          kind: Service          metadata:            name: asb +          namespace: openshift-ansible-service-broker            labels:              app: openshift-ansible-service-broker              service: asb @@ -354,11 +354,11 @@          metadata:            name: ansible-service-broker          spec: -          url: http://asb.openshift-ansible-service-broker.svc:1338/ansible-service-broker +          url: https://asb.openshift-ansible-service-broker.svc:1338/ansible-service-broker            authInfo:              bearer:                secretRef:                  name: asb-client                  namespace: openshift-ansible-service-broker                  kind: Secret -          caBundle: "{{ catalog_ca.content }}" +          caBundle: "{{ service_ca_crt }}" diff --git a/roles/ansible_service_broker/vars/default_images.yml b/roles/ansible_service_broker/vars/default_images.yml index 3e9639adf..8438e993f 100644 --- a/roles/ansible_service_broker/vars/default_images.yml +++ b/roles/ansible_service_broker/vars/default_images.yml @@ -13,3 +13,5 @@ __ansible_service_broker_registry_url: null  __ansible_service_broker_registry_user: null  __ansible_service_broker_registry_password: null  __ansible_service_broker_registry_organization: null +__ansible_service_broker_registry_tag: latest +__ansible_service_broker_registry_whitelist: [] diff --git a/roles/ansible_service_broker/vars/openshift-enterprise.yml b/roles/ansible_service_broker/vars/openshift-enterprise.yml index 9c576cb76..fc58b4fd8 100644 --- a/roles/ansible_service_broker/vars/openshift-enterprise.yml +++ b/roles/ansible_service_broker/vars/openshift-enterprise.yml @@ -1,7 +1,7 @@  ---  __ansible_service_broker_image_prefix: registry.access.redhat.com/openshift3/ose- -__ansible_service_broker_image_tag: v3.6 +__ansible_service_broker_image_tag: v3.7  __ansible_service_broker_etcd_image_prefix: rhel7/  __ansible_service_broker_etcd_image_tag: latest @@ -14,3 +14,6 @@ __ansible_service_broker_registry_url: "https://registry.access.redhat.com"  __ansible_service_broker_registry_user: null  __ansible_service_broker_registry_password: null  __ansible_service_broker_registry_organization: null +__ansible_service_broker_registry_tag: v3.7 +__ansible_service_broker_registry_whitelist: +  - '.*-apb$' diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index f73f90686..5ea73568a 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -10,6 +10,15 @@      l_use_crio: "{{ openshift_use_crio | default(False) }}"      l_use_crio_only: "{{ openshift_use_crio_only | default(False) }}" +- name: Add enterprise registry, if necessary +  set_fact: +    l2_docker_additional_registries: "{{ l2_docker_additional_registries + [openshift_docker_ent_reg] }}" +  when: +    - openshift.common.deployment_type == 'openshift-enterprise' +    - openshift_docker_ent_reg != '' +    - openshift_docker_ent_reg not in l2_docker_additional_registries +    - not l_use_crio_only +  - name: Use Package Docker if Requested    include: package_docker.yml    when: diff --git a/roles/docker/tasks/package_docker.yml b/roles/docker/tasks/package_docker.yml index 7ccab37a5..b16413f72 100644 --- a/roles/docker/tasks/package_docker.yml +++ b/roles/docker/tasks/package_docker.yml @@ -52,14 +52,6 @@      - restart docker    when: not (os_firewall_use_firewalld | default(False)) | bool -- name: Add enterprise registry, if necessary -  set_fact: -    l2_docker_additional_registries: "{{ l2_docker_additional_registries + [openshift_docker_ent_reg] }}" -  when: -  - openshift.common.deployment_type == 'openshift-enterprise' -  - openshift_docker_ent_reg != '' -  - openshift_docker_ent_reg not in l2_docker_additional_registries -  - stat: path=/etc/sysconfig/docker    register: docker_check @@ -161,16 +153,6 @@  - set_fact:      docker_service_status_changed: "{{ (r_docker_package_docker_start_result | changed) and (r_docker_already_running_result.stdout != 'ActiveState=active' ) }}" -- name: Check for credentials file for registry auth -  stat: -    path: "{{ docker_cli_auth_config_path }}/config.json" -  when: oreg_auth_user is defined -  register: docker_cli_auth_credentials_stat - -- name: Create credentials for docker cli registry auth -  command: "docker --config={{ docker_cli_auth_config_path }} login -u {{ oreg_auth_user }} -p {{ oreg_auth_password }} {{ oreg_host }}" -  when: -  - oreg_auth_user is defined -  - (not docker_cli_auth_credentials_stat.stat.exists or oreg_auth_credentials_replace) | bool +- include: registry_auth.yml  - meta: flush_handlers diff --git a/roles/docker/tasks/registry_auth.yml b/roles/docker/tasks/registry_auth.yml new file mode 100644 index 000000000..65ed60efa --- /dev/null +++ b/roles/docker/tasks/registry_auth.yml @@ -0,0 +1,12 @@ +--- +- name: Check for credentials file for registry auth +  stat: +    path: "{{ docker_cli_auth_config_path }}/config.json" +  when: oreg_auth_user is defined +  register: docker_cli_auth_credentials_stat + +- name: Create credentials for docker cli registry auth +  command: "docker --config={{ docker_cli_auth_config_path }} login -u {{ oreg_auth_user }} -p {{ oreg_auth_password }} {{ oreg_host }}" +  when: +  - oreg_auth_user is defined +  - (not docker_cli_auth_credentials_stat.stat.exists or oreg_auth_credentials_replace) | bool diff --git a/roles/docker/tasks/systemcontainer_crio.yml b/roles/docker/tasks/systemcontainer_crio.yml index a79600930..13bbd359e 100644 --- a/roles/docker/tasks/systemcontainer_crio.yml +++ b/roles/docker/tasks/systemcontainer_crio.yml @@ -82,36 +82,10 @@          enabled: yes          state: restarted - -- block: - -    - name: Add http_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?http_proxy[:=]{1}" -        line: "http_proxy: {{ openshift.common.http_proxy | default('') }}" -      when: -        - openshift.common.http_proxy is defined -        - openshift.common.http_proxy != '' - -    - name: Add https_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?https_proxy[:=]{1}" -        line: "https_proxy: {{ openshift.common.https_proxy | default('') }}" -      when: -        - openshift.common.https_proxy is defined -        - openshift.common.https_proxy != '' - -    - name: Add no_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?no_proxy[:=]{1}" -        line: "no_proxy: {{ openshift.common.no_proxy | default('') }}" -      when: -        - openshift.common.no_proxy is defined -        - openshift.common.no_proxy != '' - +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy  - block: diff --git a/roles/docker/tasks/systemcontainer_docker.yml b/roles/docker/tasks/systemcontainer_docker.yml index 15c6a55db..726e8ada7 100644 --- a/roles/docker/tasks/systemcontainer_docker.yml +++ b/roles/docker/tasks/systemcontainer_docker.yml @@ -68,38 +68,10 @@    retries: 3    delay: 30 - -# Set http_proxy, https_proxy, and no_proxy in /etc/atomic.conf -# regexp: the line starts with or without #, followed by the string -#         http_proxy, then either : or = -- block: - -    - name: Add http_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?http_proxy[:=]{1}" -        line: "http_proxy: {{ openshift.common.http_proxy | default('') }}" -      when: -        - openshift.common.http_proxy is defined -        - openshift.common.http_proxy != '' - -    - name: Add https_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?https_proxy[:=]{1}" -        line: "https_proxy: {{ openshift.common.https_proxy | default('') }}" -      when: -        - openshift.common.https_proxy is defined -        - openshift.common.https_proxy != '' - -    - name: Add no_proxy to /etc/atomic.conf -      lineinfile: -        dest: /etc/atomic.conf -        regexp: "^#?no_proxy[:=]{1}" -        line: "no_proxy: {{ openshift.common.no_proxy | default('') }}" -      when: -        - openshift.common.no_proxy is defined -        - openshift.common.no_proxy != '' +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy  - block: diff --git a/roles/etcd/tasks/system_container.yml b/roles/etcd/tasks/system_container.yml index 024479fb4..9a6951920 100644 --- a/roles/etcd/tasks/system_container.yml +++ b/roles/etcd/tasks/system_container.yml @@ -2,6 +2,11 @@  - set_fact:      l_etcd_src_data_dir: "{{ '/var/lib/origin/openshift.local.etcd' if r_etcd_common_embedded_etcd | bool else '/var/lib/etcd/' }}" +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy +  - name: Pull etcd system container    command: atomic pull --storage=ostree {{ openshift.etcd.etcd_image }}    register: pull_result diff --git a/roles/openshift_atomic/README.md b/roles/openshift_atomic/README.md new file mode 100644 index 000000000..8c10c9991 --- /dev/null +++ b/roles/openshift_atomic/README.md @@ -0,0 +1,28 @@ +OpenShift Atomic +================ + +This role houses atomic specific tasks. + +Requirements +------------ + +Role Variables +-------------- + +Dependencies +------------ + +Example Playbook +---------------- + +``` +- name: Ensure atomic proxies are defined +  hosts: localhost +  roles: +  - role: openshift_atomic +``` + +License +------- + +Apache License Version 2.0 diff --git a/roles/openshift_atomic/meta/main.yml b/roles/openshift_atomic/meta/main.yml new file mode 100644 index 000000000..ea129f514 --- /dev/null +++ b/roles/openshift_atomic/meta/main.yml @@ -0,0 +1,13 @@ +--- +galaxy_info: +  author: OpenShift +  description: Atomic related tasks +  company: Red Hat, Inc +  license: ASL 2.0 +  min_ansible_version: 2.2 +  platforms: +  - name: EL +    versions: +    - 7 +dependencies: +- role: lib_openshift diff --git a/roles/openshift_atomic/tasks/proxy.yml b/roles/openshift_atomic/tasks/proxy.yml new file mode 100644 index 000000000..dde099984 --- /dev/null +++ b/roles/openshift_atomic/tasks/proxy.yml @@ -0,0 +1,32 @@ +--- +# Set http_proxy, https_proxy, and no_proxy in /etc/atomic.conf +# regexp: the line starts with or without #, followed by the string +#         http_proxy, then either : or = +- block: + +    - name: Add http_proxy to /etc/atomic.conf +      lineinfile: +        dest: /etc/atomic.conf +        regexp: "^#?http_proxy[:=]{1}" +        line: "http_proxy: {{ openshift.common.http_proxy | default('') }}" +      when: +        - openshift.common.http_proxy is defined +        - openshift.common.http_proxy != '' + +    - name: Add https_proxy to /etc/atomic.conf +      lineinfile: +        dest: /etc/atomic.conf +        regexp: "^#?https_proxy[:=]{1}" +        line: "https_proxy: {{ openshift.common.https_proxy | default('') }}" +      when: +        - openshift.common.https_proxy is defined +        - openshift.common.https_proxy != '' + +    - name: Add no_proxy to /etc/atomic.conf +      lineinfile: +        dest: /etc/atomic.conf +        regexp: "^#?no_proxy[:=]{1}" +        line: "no_proxy: {{ openshift.common.no_proxy | default('') }}" +      when: +        - openshift.common.no_proxy is defined +        - openshift.common.no_proxy != '' diff --git a/roles/openshift_cli/tasks/main.yml b/roles/openshift_cli/tasks/main.yml index 9e61805f9..14d8a3325 100644 --- a/roles/openshift_cli/tasks/main.yml +++ b/roles/openshift_cli/tasks/main.yml @@ -1,6 +1,9 @@  ---  - set_fact: -    l_use_crio: "{{ openshift_use_crio | default(false) }}" +    l_use_crio_only: "{{ openshift_use_crio_only | default(false) }}" +    l_is_system_container_image: "{{ openshift_use_master_system_container | default(openshift_use_system_containers | default(false)) | bool }}" +- set_fact: +    l_use_cli_atomic_image: "{{ l_use_crio_only or l_is_system_container_image }}"  - name: Install clients    package: name={{ openshift.common.service_type }}-clients state=present @@ -20,23 +23,23 @@        backend: "docker"    when:    - openshift.common.is_containerized | bool -  - not l_use_crio +  - not l_use_cli_atomic_image | bool  - block:    - name: Pull CLI Image      command: > -      atomic pull --storage ostree {{ openshift.common.system_images_registry }}/{{ openshift.common.cli_image }}:{{ openshift_image_tag }} +      atomic pull --storage ostree {{ 'docker:' if openshift.common.system_images_registry == 'docker' else openshift.common.system_images_registry + '/' }}{{ openshift.common.cli_image }}:{{ openshift_image_tag }}      register: pull_result      changed_when: "'Pulling layer' in pull_result.stdout"    - name: Copy client binaries/symlinks out of CLI image for use on the host      openshift_container_binary_sync: -      image: "{{ openshift.common.system_images_registry }}/{{ openshift.common.cli_image }}" +      image: "{{ '' if openshift.common.system_images_registry == 'docker' else openshift.common.system_images_registry + '/' }}{{ openshift.common.cli_image }}"        tag: "{{ openshift_image_tag }}"        backend: "atomic"    when:    - openshift.common.is_containerized | bool -  - l_use_crio +  - l_use_cli_atomic_image | bool  - name: Reload facts to pick up installed OpenShift version    openshift_facts: diff --git a/roles/openshift_health_checker/action_plugins/openshift_health_check.py b/roles/openshift_health_checker/action_plugins/openshift_health_check.py index 326176273..3ee3b132c 100644 --- a/roles/openshift_health_checker/action_plugins/openshift_health_check.py +++ b/roles/openshift_health_checker/action_plugins/openshift_health_check.py @@ -101,7 +101,8 @@ class ActionModule(ActionBase):                  execute_module=self._execute_module,                  tmp=tmp,                  task_vars=task_vars, -                want_full_results=want_full_results +                want_full_results=want_full_results, +                templar=self._templar              )          return known_checks diff --git a/roles/openshift_health_checker/openshift_checks/__init__.py b/roles/openshift_health_checker/openshift_checks/__init__.py index ce05b44a4..b7b16e0ea 100644 --- a/roles/openshift_health_checker/openshift_checks/__init__.py +++ b/roles/openshift_health_checker/openshift_checks/__init__.py @@ -65,12 +65,15 @@ class OpenShiftCheck(object):      If the check can gather logs, tarballs, etc., do so when True; but no need to spend      the time if they're not wanted (won't be written to output directory).      """ - -    def __init__(self, execute_module=None, task_vars=None, tmp=None, want_full_results=False): +    # pylint: disable=too-many-arguments +    def __init__(self, execute_module=None, task_vars=None, tmp=None, want_full_results=False, +                 templar=None):          # store a method for executing ansible modules from the check          self._execute_module = execute_module          # the task variables and tmpdir passed into the health checker task          self.task_vars = task_vars or {} +        # We may need to template some task_vars +        self._templar = templar          self.tmp = tmp          # a boolean for disabling the gathering of results (files, computations) that won't          # actually be recorded/used diff --git a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py index 7c8ac78fe..5beb20503 100644 --- a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py +++ b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py @@ -61,10 +61,15 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):          # for the oreg_url registry there may be credentials specified          components = self.get_var("oreg_url", default="").split('/')          self.registries["oreg"] = "" if len(components) < 3 else components[0] + +        # Retrieve and template registry credentials, if provided          self.skopeo_command_creds = ""          oreg_auth_user = self.get_var('oreg_auth_user', default='')          oreg_auth_password = self.get_var('oreg_auth_password', default='')          if oreg_auth_user != '' and oreg_auth_password != '': +            if self._templar is not None: +                oreg_auth_user = self._templar.template(oreg_auth_user) +                oreg_auth_password = self._templar.template(oreg_auth_password)              self.skopeo_command_creds = "--creds={}:{}".format(quote(oreg_auth_user), quote(oreg_auth_password))          # record whether we could reach a registry or not (and remember results) diff --git a/roles/openshift_logging_elasticsearch/vars/openshift-enterprise.yml b/roles/openshift_logging_elasticsearch/vars/openshift-enterprise.yml index c87d48e27..2fd960bb5 100644 --- a/roles/openshift_logging_elasticsearch/vars/openshift-enterprise.yml +++ b/roles/openshift_logging_elasticsearch/vars/openshift-enterprise.yml @@ -1,3 +1,3 @@  --- -__openshift_logging_elasticsearch_proxy_image_prefix: "registry.access.redhat.com/openshift3/" +__openshift_logging_elasticsearch_proxy_image_prefix: "{{ openshift_logging_image_prefix | default('registry.access.redhat.com/openshift3/') }}"  __openshift_logging_elasticsearch_proxy_image_version: "v3.7" diff --git a/roles/openshift_master/tasks/journald.yml b/roles/openshift_master/tasks/journald.yml new file mode 100644 index 000000000..f79955e95 --- /dev/null +++ b/roles/openshift_master/tasks/journald.yml @@ -0,0 +1,22 @@ +--- +- name: Checking for journald.conf +  stat: path=/etc/systemd/journald.conf +  register: journald_conf_file + +- name: Update journald setup +  replace: +    dest: /etc/systemd/journald.conf +    regexp: '^(\#| )?{{ item.var }}=\s*.*?$' +    replace: ' {{ item.var }}={{ item.val }}' +    backup: yes +  with_items: "{{ journald_vars_to_replace | default([]) }}" +  when: journald_conf_file.stat.exists +  register: journald_update + +# I need to restart journald immediatelly, otherwise it gets into way during +# further steps in ansible +- name: Restart journald +  systemd: +    name: systemd-journald +    state: restarted +  when: journald_update | changed diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml index 824a5886e..d0bc79c0c 100644 --- a/roles/openshift_master/tasks/main.yml +++ b/roles/openshift_master/tasks/main.yml @@ -177,31 +177,12 @@      local_facts:        no_proxy_etcd_host_ips: "{{ openshift_no_proxy_etcd_host_ips }}" +- name: Update journald config +  include: journald.yml +  - name: Install the systemd units    include: systemd_units.yml -- name: Checking for journald.conf -  stat: path=/etc/systemd/journald.conf -  register: journald_conf_file - -- name: Update journald setup -  replace: -    dest: /etc/systemd/journald.conf -    regexp: '^(\#| )?{{ item.var }}=\s*.*?$' -    replace: ' {{ item.var }}={{ item.val }}' -    backup: yes -  with_items: "{{ journald_vars_to_replace | default([]) }}" -  when: journald_conf_file.stat.exists -  register: journald_update - -# I need to restart journald immediatelly, otherwise it gets into way during -# further steps in ansible -- name: Restart journald -  systemd: -    name: systemd-journald -    state: restarted -  when: journald_update | changed -  - name: Install Master system container    include: system_container.yml    when: diff --git a/roles/openshift_master/tasks/system_container.yml b/roles/openshift_master/tasks/system_container.yml index 91332acfb..843352532 100644 --- a/roles/openshift_master/tasks/system_container.yml +++ b/roles/openshift_master/tasks/system_container.yml @@ -1,4 +1,9 @@  --- +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy +  - name: Pre-pull master system container image    command: >      atomic pull --storage=ostree {{ 'docker:' if openshift.common.system_images_registry == 'docker' else openshift.common.system_images_registry + '/' }}{{ openshift.master.master_system_image }}:{{ openshift_image_tag }} diff --git a/roles/openshift_master/templates/atomic-openshift-master.j2 b/roles/openshift_master/templates/atomic-openshift-master.j2 index 7ec26ceb7..3f7a528a9 100644 --- a/roles/openshift_master/templates/atomic-openshift-master.j2 +++ b/roles/openshift_master/templates/atomic-openshift-master.j2 @@ -21,7 +21,7 @@ AWS_SECRET_ACCESS_KEY={{ openshift_cloudprovider_aws_secret_key }}  {% endif %}  {% if 'api_env_vars' in openshift.master or 'controllers_env_vars' in openshift.master -%} -{% for key, value in openshift.master.api_env_vars.items() | default([]) | union(openshift.master.controllers_env_vars.items() | default([])) -%} +{% for key, value in (openshift.master.api_env_vars | default({})).items() | union((openshift.master.controllers_env_vars | default({})).items()) -%}  {{ key }}={{ value }}  {% endfor -%}  {% endif -%} diff --git a/roles/openshift_master_facts/filter_plugins/openshift_master.py b/roles/openshift_master_facts/filter_plugins/openshift_master.py index f7f3ac2b1..a4f410296 100644 --- a/roles/openshift_master_facts/filter_plugins/openshift_master.py +++ b/roles/openshift_master_facts/filter_plugins/openshift_master.py @@ -363,7 +363,6 @@ class OpenIDIdentityProvider(IdentityProviderOauthBase):      def validate(self):          ''' validate this idp instance ''' -        IdentityProviderOauthBase.validate(self)          if not isinstance(self.provider['claims'], dict):              raise errors.AnsibleFilterError("|failed claims for provider {0} "                                              "must be a dictionary".format(self.__class__.__name__)) diff --git a/roles/openshift_node/tasks/node_system_container.yml b/roles/openshift_node/tasks/node_system_container.yml index 20d7a9539..164a79b39 100644 --- a/roles/openshift_node/tasks/node_system_container.yml +++ b/roles/openshift_node/tasks/node_system_container.yml @@ -1,4 +1,9 @@  --- +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy +  - name: Pre-pull node system container image    command: >      atomic pull --storage=ostree {{ 'docker:' if openshift.common.system_images_registry == 'docker' else openshift.common.system_images_registry + '/' }}{{ openshift.node.node_system_image }}:{{ openshift_image_tag }} diff --git a/roles/openshift_node/tasks/openvswitch_system_container.yml b/roles/openshift_node/tasks/openvswitch_system_container.yml index e09063aa5..0f73ce454 100644 --- a/roles/openshift_node/tasks/openvswitch_system_container.yml +++ b/roles/openshift_node/tasks/openvswitch_system_container.yml @@ -10,6 +10,11 @@      l_service_name: "{{ openshift.docker.service_name }}"    when: not l_use_crio +- name: Ensure proxies are in the atomic.conf +  include_role: +    name: openshift_atomic +    tasks_from: proxy +  - name: Pre-pull OpenVSwitch system container image    command: >      atomic pull --storage=ostree {{ 'docker:' if openshift.common.system_images_registry == 'docker' else openshift.common.system_images_registry + '/' }}{{ openshift.node.ovs_system_image }}:{{ openshift_image_tag }} diff --git a/roles/openshift_node_dnsmasq/README.md b/roles/openshift_node_dnsmasq/README.md new file mode 100644 index 000000000..4596190d7 --- /dev/null +++ b/roles/openshift_node_dnsmasq/README.md @@ -0,0 +1,27 @@ +OpenShift Node DNS resolver +=========================== + +Configure dnsmasq to act as a DNS resolver for an OpenShift node. + +Requirements +------------ + +Role Variables +-------------- + +From this role: + +| Name                                                | Default value | Description                                                                       | +|-----------------------------------------------------|---------------|-----------------------------------------------------------------------------------| +| openshift_node_dnsmasq_install_network_manager_hook | true          | Install NetworkManager hook updating /etc/resolv.conf with local dnsmasq instance | + +Dependencies +------------ + +* openshift_common +* openshift_node_facts + +License +------- + +Apache License Version 2.0 diff --git a/roles/openshift_node_dnsmasq/defaults/main.yml b/roles/openshift_node_dnsmasq/defaults/main.yml index ed97d539c..eae832fcf 100644 --- a/roles/openshift_node_dnsmasq/defaults/main.yml +++ b/roles/openshift_node_dnsmasq/defaults/main.yml @@ -1 +1,2 @@  --- +openshift_node_dnsmasq_install_network_manager_hook: true diff --git a/roles/openshift_node_dnsmasq/tasks/network-manager.yml b/roles/openshift_node_dnsmasq/tasks/network-manager.yml index dddcfc9da..e5a92a630 100644 --- a/roles/openshift_node_dnsmasq/tasks/network-manager.yml +++ b/roles/openshift_node_dnsmasq/tasks/network-manager.yml @@ -5,5 +5,6 @@      dest: /etc/NetworkManager/dispatcher.d/      mode: 0755    notify: restart NetworkManager +  when: openshift_node_dnsmasq_install_network_manager_hook | default(true) | bool  - meta: flush_handlers diff --git a/roles/openshift_prometheus/README.md b/roles/openshift_prometheus/README.md index c5a44bffb..07ea0299d 100644 --- a/roles/openshift_prometheus/README.md +++ b/roles/openshift_prometheus/README.md @@ -17,14 +17,12 @@ For default values, see [`defaults/main.yaml`](defaults/main.yaml).  - `openshift_prometheus_namespace`: project (i.e. namespace) where the components will be    deployed. -- `openshift_prometheus_replicas`: The number of replicas for prometheus deployment. -  - `openshift_prometheus_node_selector`: Selector for the nodes prometheus will be deployed on.  - `openshift_prometheus_image_<COMPONENT>`: specify image for the component  -## Storage related variables -Each prometheus component (prometheus, alertmanager, alert-buffer, oauth-proxy) can set pv claim by setting corresponding role variable: +## PVC related variables +Each prometheus component (prometheus, alertmanager, alertbuffer) can set pv claim by setting corresponding role variable:  ```  openshift_prometheus_<COMPONENT>_storage_type: <VALUE>  openshift_prometheus_<COMPONENT>_pvc_(name|size|access_modes|pv_selector): <VALUE> @@ -37,6 +35,29 @@ openshift_prometheus_alertbuffer_pvc_size: 10G  openshift_prometheus_pvc_access_modes: [ReadWriteOnce]  ``` +## NFS PV Storage variables +Each prometheus component (prometheus, alertmanager, alertbuffer) can set nfs pv by setting corresponding variable: +``` +openshift_prometheus_<COMPONENT>_storage_kind=<VALUE> +openshift_prometheus_<COMPONENT>_storage_(access_modes|host|labels)=<VALUE> +openshift_prometheus_<COMPONENT>_storage_volume_(name|size)=<VALUE> +openshift_prometheus_<COMPONENT>_storage_nfs_(directory|options)=<VALUE> +``` +e.g +``` +openshift_prometheus_storage_kind=nfs +openshift_prometheus_storage_access_modes=['ReadWriteOnce'] +openshift_prometheus_storage_host=nfs.example.com #for external host +openshift_prometheus_storage_nfs_directory=/exports +openshift_prometheus_storage_alertmanager_nfs_options='*(rw,root_squash)' +openshift_prometheus_storage_volume_name=prometheus +openshift_prometheus_storage_alertbuffer_volume_size=10Gi +openshift_prometheus_storage_labels={'storage': 'prometheus'} +``` + +NOTE: Setting `openshift_prometheus_<COMPONENT>_storage_labels` overrides `openshift_prometheus_<COMPONENT>_pvc_pv_selector` + +  ## Additional Alert Rules file variable  An external file with alert rules can be added by setting path to additional rules variable:   ``` diff --git a/roles/openshift_prometheus/defaults/main.yaml b/roles/openshift_prometheus/defaults/main.yaml index c08bec4cb..f6ff7ce22 100644 --- a/roles/openshift_prometheus/defaults/main.yaml +++ b/roles/openshift_prometheus/defaults/main.yaml @@ -4,14 +4,13 @@ openshift_prometheus_state: present  openshift_prometheus_namespace: prometheus -openshift_prometheus_replicas: 1  openshift_prometheus_node_selector: {"region":"infra"}  # images  openshift_prometheus_image_proxy: "openshift/oauth-proxy:v1.0.0" -openshift_prometheus_image_prometheus: "openshift/prometheus:v2.0.0-dev" +openshift_prometheus_image_prometheus: "openshift/prometheus:v2.0.0-dev.3"  openshift_prometheus_image_alertmanager: "openshift/prometheus-alertmanager:v0.9.1" -openshift_prometheus_image_alertbuffer: "openshift/prometheus-alert-buffer:v0.0.1" +openshift_prometheus_image_alertbuffer: "openshift/prometheus-alert-buffer:v0.0.2"  # additional prometheus rules file  openshift_prometheus_additional_rules_file: null diff --git a/roles/openshift_prometheus/tasks/install_prometheus.yaml b/roles/openshift_prometheus/tasks/install_prometheus.yaml index cb75eedca..67141a866 100644 --- a/roles/openshift_prometheus/tasks/install_prometheus.yaml +++ b/roles/openshift_prometheus/tasks/install_prometheus.yaml @@ -145,21 +145,21 @@      volume_capacity: "{{ openshift_prometheus_alertbuffer_pvc_size }}"      selector: "{{ openshift_prometheus_alertbuffer_pvc_pv_selector }}" -# create prometheus deployment -- name: Set prometheus deployment template +# create prometheus stateful set +- name: Set prometheus template    template: -    src: prometheus_deployment.j2 +    src: prometheus.j2      dest: "{{ tempdir }}/templates/prometheus.yaml"    vars:      namespace: "{{ openshift_prometheus_namespace }}" -    prom_replicas: "{{ openshift_prometheus_replicas }}" +#    prom_replicas: "{{ openshift_prometheus_replicas }}" -- name: Set prometheus deployment +- name: Set prometheus stateful set    oc_obj:      state: "{{ state }}"      name: "prometheus"      namespace: "{{ openshift_prometheus_namespace }}" -    kind: deployment +    kind: statefulset      files:        - "{{ tempdir }}/templates/prometheus.yaml"      delete_after: true diff --git a/roles/openshift_prometheus/templates/prometheus_deployment.j2 b/roles/openshift_prometheus/templates/prometheus.j2 index 66eab6df4..81f043491 100644 --- a/roles/openshift_prometheus/templates/prometheus_deployment.j2 +++ b/roles/openshift_prometheus/templates/prometheus.j2 @@ -1,12 +1,14 @@ -apiVersion: extensions/v1beta1 -kind: Deployment +apiVersion: apps/v1beta1 +kind: StatefulSet  metadata:    name: prometheus    namespace: {{ namespace }}    labels:      app: prometheus  spec: -  replicas: {{ prom_replicas|default(1) }} +  updateStrategy: +    type: RollingUpdate +  podManagementPolicy: Parallel    selector:      provider: openshift      matchLabels: @@ -60,6 +62,8 @@ spec:          - -tls-key=/etc/tls/private/tls.key          - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token          - -cookie-secret-file=/etc/proxy/secrets/session_secret +        - -openshift-ca=/etc/pki/tls/cert.pem +        - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt          - -skip-auth-regex=^/metrics          volumeMounts:          - mountPath: /etc/tls/private @@ -72,6 +76,7 @@ spec:        - name: prometheus          args:          - --storage.tsdb.retention=6h +        - --storage.tsdb.min-block-duration=2m          - --config.file=/etc/prometheus/prometheus.yml          - --web.listen-address=localhost:9090          image: "{{ openshift_prometheus_image_prometheus }}" @@ -133,6 +138,8 @@ spec:          - -tls-key=/etc/tls/private/tls.key          - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token          - -cookie-secret-file=/etc/proxy/secrets/session_secret +        - -openshift-ca=/etc/pki/tls/cert.pem +        - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt          volumeMounts:          - mountPath: /etc/tls/private            name: alerts-tls diff --git a/roles/openshift_sanitize_inventory/tasks/unsupported.yml b/roles/openshift_sanitize_inventory/tasks/unsupported.yml index 39bf1780a..b70ab90a1 100644 --- a/roles/openshift_sanitize_inventory/tasks/unsupported.yml +++ b/roles/openshift_sanitize_inventory/tasks/unsupported.yml @@ -11,6 +11,14 @@        will not function. This also means that NetworkManager must be installed        enabled and responsible for management of the primary interface. +- name: Ensure that openshift_node_dnsmasq_install_network_manager_hook is true +  when: +  - not openshift_node_dnsmasq_install_network_manager_hook | default(true) | bool +  fail: +    msg: |- +      The NetworkManager hook is considered a critical part of the DNS +      infrastructure. +  - set_fact:      __using_dynamic: True    when: diff --git a/roles/openshift_service_catalog/templates/sc_role_patching.j2 b/roles/openshift_service_catalog/templates/sc_role_patching.j2 index 69b062b3f..4629d5bb3 100644 --- a/roles/openshift_service_catalog/templates/sc_role_patching.j2 +++ b/roles/openshift_service_catalog/templates/sc_role_patching.j2 @@ -3,8 +3,8 @@    - "servicecatalog.k8s.io"    attributeRestrictions: null    resources: -  - instances -  - bindings +  - serviceinstances +  - servicebindings    verbs:    - create    - update | 
