diff options
Diffstat (limited to 'roles')
31 files changed, 191 insertions, 172 deletions
diff --git a/roles/haproxy/tasks/main.yml b/roles/haproxy/tasks/main.yml deleted file mode 100644 index 837fa67db..000000000 --- a/roles/haproxy/tasks/main.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -- name: Install haproxy -  action: "{{ ansible_pkg_mgr }} name=haproxy state=present" -  when: not openshift.common.is_containerized | bool - -- name: Configure systemd service directory for haproxy -  file: -    path: /etc/systemd/system/haproxy.service.d -    state: directory -  when: haproxy_limit_nofile is defined - -- name: Configure the nofile limits for haproxy -  ini_file: -    dest: /etc/systemd/system/haproxy.service.d/limits.conf -    section: Service -    option: LimitNOFILE -    value: "{{ haproxy_limit_nofile }}" -  when: haproxy_limit_nofile is defined -  notify: restart haproxy -  register: nofile_limit_result - -- name: Reload systemd if needed -  command: systemctl daemon-reload -  when: nofile_limit_result | changed - -- name: Configure haproxy -  template: -    src: haproxy.cfg.j2 -    dest: /etc/haproxy/haproxy.cfg -    owner: root -    group: root -    mode: 0644 -  notify: restart haproxy - -- name: Enable and start haproxy -  service: -    name: haproxy -    state: started -    enabled: yes -  register: start_result - -- set_fact: -    haproxy_start_result_changed: "{{ start_result | changed }}" diff --git a/roles/openshift_ansible_inventory/README.md b/roles/openshift_ansible_inventory/README.md deleted file mode 100644 index b62287c12..000000000 --- a/roles/openshift_ansible_inventory/README.md +++ /dev/null @@ -1,41 +0,0 @@ -OpenShift Ansible Inventory -========= - -Install and configure openshift-ansible-inventory. - -Requirements ------------- - -None - -Role Variables --------------- - -oo_inventory_group -oo_inventory_user -oo_inventory_accounts -oo_inventory_cache_max_age - -Dependencies ------------- - -None - -Example Playbook ----------------- - -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: - -    - hosts: servers -      roles: -         - { role: username.rolename, x: 42 } - -License -------- - -ASL 2.0 - -Author Information ------------------- - -OpenShift operations, Red Hat, Inc diff --git a/roles/openshift_ansible_inventory/defaults/main.yml b/roles/openshift_ansible_inventory/defaults/main.yml deleted file mode 100644 index f53c00c80..000000000 --- a/roles/openshift_ansible_inventory/defaults/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -oo_inventory_group: root -oo_inventory_owner: root -oo_inventory_cache_max_age: 1800 diff --git a/roles/openshift_ansible_inventory/handlers/main.yml b/roles/openshift_ansible_inventory/handlers/main.yml deleted file mode 100644 index e2db43477..000000000 --- a/roles/openshift_ansible_inventory/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for openshift_ansible_inventory diff --git a/roles/openshift_ansible_inventory/meta/main.yml b/roles/openshift_ansible_inventory/meta/main.yml deleted file mode 100644 index 7f7387e80..000000000 --- a/roles/openshift_ansible_inventory/meta/main.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -galaxy_info: -  author: OpenShift -  description:  Install and configure openshift-ansible-inventory -  company: Red Hat, Inc -  license: ASL 2.0 -  min_ansible_version: 1.2 -dependencies: [] diff --git a/roles/openshift_ansible_inventory/tasks/main.yml b/roles/openshift_ansible_inventory/tasks/main.yml deleted file mode 100644 index 05c7a5f93..000000000 --- a/roles/openshift_ansible_inventory/tasks/main.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -- action: "{{ ansible_pkg_mgr }} name={{ item}} state=present" -  with_items: -  - openshift-ansible-inventory -  - openshift-ansible-inventory-aws -  - openshift-ansible-inventory-gce -  when: not openshift.common.is_containerized | bool - -- name: -  copy: -    content: "{{ oo_inventory_accounts | to_nice_yaml }}" -    dest: /etc/ansible/multi_inventory.yaml -    group: "{{ oo_inventory_group }}" -    owner: "{{ oo_inventory_owner }}" -    mode: "0640" - -- file: -    state: directory -    dest: /etc/ansible/inventory -    owner: root -    group: libra_ops -    mode: 0750 - -- file: -    state: link -    src: /usr/share/ansible/inventory/multi_inventory.py -    dest: /etc/ansible/inventory/multi_inventory.py -    owner: root -    group: libra_ops - -# This cron uses the above location to call its job -- name: Cron to keep cache fresh -  cron: -    name: 'multi_inventory' -    minute: '*/10' -    job: '/usr/share/ansible/inventory/multi_inventory.py --refresh-cache &> /dev/null' -  when: oo_cron_refresh_cache is defined and oo_cron_refresh_cache - -- name: Set cache location -  file: -    state: directory -    dest: "{{ oo_inventory_cache_location | dirname }}" -    owner: root -    group: libra_ops -    recurse: yes -    mode: '2770' -  when: oo_inventory_cache_location is defined diff --git a/roles/openshift_ansible_inventory/vars/main.yml b/roles/openshift_ansible_inventory/vars/main.yml deleted file mode 100644 index 25c049282..000000000 --- a/roles/openshift_ansible_inventory/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for openshift_ansible_inventory diff --git a/roles/openshift_clock/meta/main.yml b/roles/openshift_clock/meta/main.yml new file mode 100644 index 000000000..3e175beb0 --- /dev/null +++ b/roles/openshift_clock/meta/main.yml @@ -0,0 +1,15 @@ +--- +galaxy_info: +  author: Jeremiah Stuever +  description: OpenShift Clock +  company: Red Hat, Inc. +  license: Apache License, Version 2.0 +  min_ansible_version: 1.9 +  platforms: +  - name: EL +    versions: +    - 7 +  categories: +  - cloud +dependencies: +- { role: openshift_facts } diff --git a/roles/openshift_clock/tasks/main.yaml b/roles/openshift_clock/tasks/main.yaml new file mode 100644 index 000000000..5a8403f68 --- /dev/null +++ b/roles/openshift_clock/tasks/main.yaml @@ -0,0 +1,14 @@ +--- +- name: Set clock facts +  openshift_facts: +    role: clock +    local_facts: +      enabled: "{{ openshift_clock_enabled | default(None) }}" + +- name: Install ntp package +  action: "{{ ansible_pkg_mgr }} name=ntp state=present" +  when: openshift.clock.enabled | bool and not openshift.clock.chrony_installed | bool + +- name: Start and enable ntpd/chronyd +  shell: timedatectl set-ntp true +  when: openshift.clock.enabled | bool diff --git a/roles/openshift_docker_facts/tasks/main.yml b/roles/openshift_docker_facts/tasks/main.yml index 0e51fd16f..43359dcb5 100644 --- a/roles/openshift_docker_facts/tasks/main.yml +++ b/roles/openshift_docker_facts/tasks/main.yml @@ -32,9 +32,7 @@      docker_no_proxy: "{{ openshift.common.no_proxy | default(omit) }}"  - set_fact: -    docker_options: > -      --insecure-registry={{ openshift.docker.hosted_registry_network }} -      {{ openshift.docker.options | default ('') }} +    docker_options: "--insecure-registry={{ openshift.docker.hosted_registry_network }} {{ openshift.docker.options | default ('') }}"    when: openshift.docker.hosted_registry_insecure | default(False) | bool and openshift.docker.hosted_registry_network is defined  - set_fact: diff --git a/roles/openshift_etcd/meta/main.yml b/roles/openshift_etcd/meta/main.yml index 7cc548f69..de36b201b 100644 --- a/roles/openshift_etcd/meta/main.yml +++ b/roles/openshift_etcd/meta/main.yml @@ -13,6 +13,7 @@ galaxy_info:    - cloud  dependencies:  - role: openshift_etcd_facts +- role: openshift_clock  - role: openshift_docker    when: openshift.common.is_containerized | bool  - role: etcd diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index b13343776..09b226671 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1549,11 +1549,13 @@ class OpenShiftFacts(object):              OpenShiftFactsUnsupportedRoleError:      """      known_roles = ['builddefaults', +                   'clock',                     'cloudprovider',                     'common',                     'docker',                     'etcd',                     'hosted', +                   'loadbalancer',                     'master',                     'node'] @@ -1719,6 +1721,16 @@ class OpenShiftFacts(object):                  docker['version'] = version_info['version']              defaults['docker'] = docker +        if 'clock' in roles: +            exit_code, _, _ = module.run_command(['rpm', '-q', 'chrony']) +            if exit_code == 0: +                chrony_installed = True +            else: +                chrony_installed = False +            defaults['clock'] = dict( +                enabled=True, +                chrony_installed=chrony_installed) +          if 'cloudprovider' in roles:              defaults['cloudprovider'] = dict(kind=None) @@ -1763,6 +1775,13 @@ class OpenShiftFacts(object):                  router=dict()              ) +        if 'loadbalancer' in roles: +            loadbalancer = dict(frontend_port='8443', +                                default_maxconn='20000', +                                global_maxconn='20000', +                                limit_nofile='100000') +            defaults['loadbalancer'] = loadbalancer +          return defaults      def guess_host_provider(self): diff --git a/roles/openshift_facts/tasks/main.yml b/roles/openshift_facts/tasks/main.yml index f092f021f..ca1a9b1e4 100644 --- a/roles/openshift_facts/tasks/main.yml +++ b/roles/openshift_facts/tasks/main.yml @@ -19,6 +19,10 @@    action: "{{ ansible_pkg_mgr }} name=PyYAML state=present"    when: not l_is_atomic | bool +- name: Ensure yum-utils is installed +  action: "{{ ansible_pkg_mgr }} name=yum-utils state=present" +  when: not l_is_atomic | bool +  - name: Gather Cluster facts and set is_containerized if needed    openshift_facts:      role: common diff --git a/roles/haproxy/README.md b/roles/openshift_loadbalancer/README.md index 5bc415066..81fc282be 100644 --- a/roles/haproxy/README.md +++ b/roles/openshift_loadbalancer/README.md @@ -1,5 +1,5 @@ -HAProxy -======= +OpenShift HAProxy Loadbalancer +==============================  TODO diff --git a/roles/haproxy/defaults/main.yml b/roles/openshift_loadbalancer/defaults/main.yml index a1524cfe1..a1524cfe1 100644 --- a/roles/haproxy/defaults/main.yml +++ b/roles/openshift_loadbalancer/defaults/main.yml diff --git a/roles/haproxy/handlers/main.yml b/roles/openshift_loadbalancer/handlers/main.yml index 5b8691b26..5b8691b26 100644 --- a/roles/haproxy/handlers/main.yml +++ b/roles/openshift_loadbalancer/handlers/main.yml diff --git a/roles/haproxy/meta/main.yml b/roles/openshift_loadbalancer/meta/main.yml index 0fad106a9..fe336acf7 100644 --- a/roles/haproxy/meta/main.yml +++ b/roles/openshift_loadbalancer/meta/main.yml @@ -1,7 +1,7 @@  ---  galaxy_info:    author: Jason DeTiberus -  description: HAProxy +  description: OpenShift haproxy loadbalancer    company: Red Hat, Inc.    license: Apache License, Version 2.0    min_ansible_version: 1.9 @@ -10,5 +10,6 @@ galaxy_info:      versions:      - 7  dependencies: -- { role: os_firewall } -- { role: openshift_repos } +- role: openshift_facts +- role: os_firewall +- role: openshift_repos diff --git a/roles/openshift_loadbalancer/tasks/main.yml b/roles/openshift_loadbalancer/tasks/main.yml new file mode 100644 index 000000000..5514aa70b --- /dev/null +++ b/roles/openshift_loadbalancer/tasks/main.yml @@ -0,0 +1,73 @@ +--- +- name: Set haproxy frontend port +  openshift_facts: +    role: loadbalancer +    local_facts: +      frontend_port: "{{ openshift_master_api_port | default(None) }}" + +- name: Set loadbalancer facts +  openshift_facts: +    role: loadbalancer +    local_facts: +      limit_nofile: "{{ openshift_loadbalancer_limit_nofile | default(None) }}" +      default_maxconn: "{{ openshift_loadbalancer_default_maxconn | default(None) }}" +      global_maxconn: "{{ openshift_loadbalancer_global_maxconn | default(None) }}" +      frontends: +      - name: atomic-openshift-api +        mode: tcp +        options: +        - tcplog +        binds: +        - "*:{{ openshift.loadbalancer.frontend_port }}" +        default_backend: atomic-openshift-api +      backends: +      - name: atomic-openshift-api +        mode: tcp +        option: tcplog +        balance: source +        servers: "{{ hostvars +                     | oo_select_keys(groups['oo_masters']) +                     | oo_haproxy_backend_masters(openshift.loadbalancer.frontend_port) }}" + +- name: Install haproxy +  action: "{{ ansible_pkg_mgr }} name=haproxy state=present" +  when: not openshift.common.is_containerized | bool + +- name: Configure systemd service directory for haproxy +  file: +    path: /etc/systemd/system/haproxy.service.d +    state: directory +  when: "'limit_nofile' in openshift.loadbalancer" + +- name: Configure the nofile limits for haproxy +  ini_file: +    dest: /etc/systemd/system/haproxy.service.d/limits.conf +    section: Service +    option: LimitNOFILE +    value: "{{ openshift.loadbalancer.limit_nofile }}" +  when: "'limit_nofile' in openshift.loadbalancer" +  notify: restart haproxy +  register: nofile_limit_result + +- name: Reload systemd if needed +  command: systemctl daemon-reload +  when: nofile_limit_result | changed + +- name: Configure haproxy +  template: +    src: haproxy.cfg.j2 +    dest: /etc/haproxy/haproxy.cfg +    owner: root +    group: root +    mode: 0644 +  notify: restart haproxy + +- name: Enable and start haproxy +  service: +    name: haproxy +    state: started +    enabled: yes +  register: start_result + +- set_fact: +    haproxy_start_result_changed: "{{ start_result | changed }}" diff --git a/roles/haproxy/templates/haproxy.cfg.j2 b/roles/openshift_loadbalancer/templates/haproxy.cfg.j2 index cb4380971..05e360d3b 100644 --- a/roles/haproxy/templates/haproxy.cfg.j2 +++ b/roles/openshift_loadbalancer/templates/haproxy.cfg.j2 @@ -3,7 +3,7 @@  global      chroot      /var/lib/haproxy      pidfile     /var/run/haproxy.pid -    maxconn     {{ haproxy_global_maxconn | default('4000') }} +    maxconn     {{ openshift.loadbalancer.global_maxconn }}      user        haproxy      group       haproxy      daemon @@ -31,14 +31,14 @@ defaults      timeout server          300s      timeout http-keep-alive 10s      timeout check           10s -    maxconn                 {{ haproxy_default_maxconn | default('3000') }} +    maxconn                 {{ openshift.loadbalancer.default_maxconn }}  listen stats :9000      mode http      stats enable      stats uri / -{% for frontend in haproxy_frontends %} +{% for frontend in openshift.loadbalancer.frontends %}  frontend  {{ frontend.name }}  {% for bind in frontend.binds %}      bind {{ bind }} @@ -59,7 +59,7 @@ frontend  {{ frontend.name }}  {% endif %}  {% endfor %} -{% for backend in haproxy_backends %} +{% for backend in openshift.loadbalancer.backends %}  backend {{ backend.name }}      balance {{ backend.balance }}  {% if 'mode' in backend %} diff --git a/roles/openshift_master/meta/main.yml b/roles/openshift_master/meta/main.yml index d8834d27f..0a69b3eef 100644 --- a/roles/openshift_master/meta/main.yml +++ b/roles/openshift_master/meta/main.yml @@ -12,6 +12,7 @@ galaxy_info:    categories:    - cloud  dependencies: +- role: openshift_clock  - role: openshift_docker  - role: openshift_cli  - role: openshift_cloud_provider diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml index fe0784ea2..63a54a0d9 100644 --- a/roles/openshift_master/tasks/main.yml +++ b/roles/openshift_master/tasks/main.yml @@ -139,7 +139,7 @@    - restart master api  - set_fact: -    translated_identity_providers: "{{ openshift.master.identity_providers | translate_idps('v1') }}" +    translated_identity_providers: "{{ openshift.master.identity_providers | translate_idps('v1', openshift.common.version, openshift.common.deployment_type) }}"  # TODO: add the validate parameter when there is a validation command to run  - name: Create master config diff --git a/roles/openshift_node/meta/main.yml b/roles/openshift_node/meta/main.yml index db1776632..31547b846 100644 --- a/roles/openshift_node/meta/main.yml +++ b/roles/openshift_node/meta/main.yml @@ -12,6 +12,7 @@ galaxy_info:    categories:    - cloud  dependencies: +- role: openshift_clock  - role: openshift_docker  - role: openshift_cloud_provider  - role: openshift_common diff --git a/roles/openshift_node/tasks/main.yml b/roles/openshift_node/tasks/main.yml index be70a170d..e8bd13855 100644 --- a/roles/openshift_node/tasks/main.yml +++ b/roles/openshift_node/tasks/main.yml @@ -52,8 +52,9 @@  - name: Reload systemd units    command: systemctl daemon-reload -  when: openshift.common.is_containerized | bool and ( ( install_node_result  | changed ) -    or ( install_ovs_sysconfig | changed ) ) +  when: openshift.common.is_containerized | bool and (install_node_result | changed or install_ovs_sysconfig | changed or install_node_dep_result | changed) +  notify: +  - restart node  - name: Start and enable openvswitch docker service    service: name=openvswitch.service enabled=yes state=started @@ -113,16 +114,15 @@    service: name={{ openshift.common.service_type }}-node enabled=yes state=started    register: node_start_result    ignore_errors: yes -   +  - name: Check logs on failure    command: journalctl -xe    register: node_failure    when: node_start_result | failed -   +  - name: Dump failure information    debug: var=node_failure    when: node_start_result | failed -    - set_fact:      node_service_status_changed: "{{ node_start_result | changed }}" diff --git a/roles/openshift_node/tasks/systemd_units.yml b/roles/openshift_node/tasks/systemd_units.yml index f3262803a..e2a268260 100644 --- a/roles/openshift_node/tasks/systemd_units.yml +++ b/roles/openshift_node/tasks/systemd_units.yml @@ -1,6 +1,13 @@  # This file is included both in the openshift_master role and in the upgrade  # playbooks. +- name: Install Node dependencies docker service file +  template: +    dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node-dep.service" +    src: openshift.docker.node.dep.service +  register: install_node_dep_result +  when: openshift.common.is_containerized | bool +  - name: Install Node docker service file    template:      dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service" diff --git a/roles/openshift_node/templates/openshift.docker.node.dep.service b/roles/openshift_node/templates/openshift.docker.node.dep.service new file mode 100644 index 000000000..f66a78479 --- /dev/null +++ b/roles/openshift_node/templates/openshift.docker.node.dep.service @@ -0,0 +1,11 @@ +[Unit] +Requires=docker.service +After=docker.service +PartOf={{ openshift.common.service_type }}-node.service +Before={{ openshift.common.service_type }}-node.service + + +[Service] +ExecStart=/bin/bash -c "if [[ -f /usr/bin/docker-current ]]; then echo \"DOCKER_ADDTL_BIND_MOUNTS=--volume=/usr/bin/docker-current:/usr/bin/docker-current:ro\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; else echo \"#DOCKER_ADDTL_BIND_MOUNTS=\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; fi" +ExecStop= +SyslogIdentifier={{ openshift.common.service_type }}-node-dep diff --git a/roles/openshift_node/templates/openshift.docker.node.service b/roles/openshift_node/templates/openshift.docker.node.service index cb0043667..443e18498 100644 --- a/roles/openshift_node/templates/openshift.docker.node.service +++ b/roles/openshift_node/templates/openshift.docker.node.service @@ -8,11 +8,14 @@ Requires=docker.service  Requires=openvswitch.service  {% endif %}  Wants={{ openshift.common.service_type }}-master.service +Requires={{ openshift.common.service_type }}-node-dep.service +After={{ openshift.common.service_type }}-node-dep.service  [Service]  EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node +EnvironmentFile=/etc/sysconfig/{{ openshift.common.service_type }}-node-dep  ExecStartPre=-/usr/bin/docker rm -f {{ openshift.common.service_type }}-node -ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if 'cloudprovider' in openshift and 'kind' in openshift.cloudprovider and openshift.cloudprovider.kind != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:ro -v /usr/bin/docker:/usr/bin/docker:ro -v /usr/bin/docker-current:/usr/bin/docker-current:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn  -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev {{ openshift.node.node_image }}:${IMAGE_VERSION} +ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node --rm --privileged --net=host --pid=host --env-file=/etc/sysconfig/{{ openshift.common.service_type }}-node -v /:/rootfs:ro -e CONFIG_FILE=${CONFIG_FILE} -e OPTIONS=${OPTIONS} -e HOST=/rootfs -e HOST_ETC=/host-etc -v {{ openshift.common.data_dir }}:{{ openshift.common.data_dir }} -v {{ openshift.common.config_base }}/node:{{ openshift.common.config_base }}/node {% if 'cloudprovider' in openshift and 'kind' in openshift.cloudprovider and openshift.cloudprovider.kind != '' -%} -v {{ openshift.common.config_base }}/cloudprovider:{{ openshift.common.config_base}}/cloudprovider {% endif -%} -v /etc/localtime:/etc/localtime:ro -v /etc/machine-id:/etc/machine-id:ro -v /run:/run -v /sys:/sys:ro -v /usr/bin/docker:/usr/bin/docker:ro -v /var/lib/docker:/var/lib/docker -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch -v /etc/origin/sdn:/etc/openshift-sdn -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS {{ openshift.node.node_image }}:${IMAGE_VERSION}  ExecStartPost=/usr/bin/sleep 10  ExecStop=/usr/bin/docker stop {{ openshift.common.service_type }}-node  SyslogIdentifier={{ openshift.common.service_type }}-node diff --git a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh index 09bae1777..51a43d113 100755 --- a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh +++ b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh @@ -52,6 +52,8 @@ EOF      systemctl restart dnsmasq      sed -i 's/^nameserver.*$/nameserver '"${def_route_ip}"'/g' /etc/resolv.conf -    echo "# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh" >> /etc/resolv.conf +    if ! grep -q '99-origin-dns.sh' /etc/resolv.conf; then +      echo "# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh" >> /etc/resolv.conf +    fi    fi  fi diff --git a/roles/openshift_repos/files/origin/repos/maxamillion-origin-next-epel-7.repo b/roles/openshift_repos/files/removed/repos/maxamillion-origin-next-epel-7.repo index 0b21e0a65..0b21e0a65 100644 --- a/roles/openshift_repos/files/origin/repos/maxamillion-origin-next-epel-7.repo +++ b/roles/openshift_repos/files/removed/repos/maxamillion-origin-next-epel-7.repo diff --git a/roles/openshift_repos/tasks/centos_sig.yaml b/roles/openshift_repos/tasks/centos_sig.yaml new file mode 100644 index 000000000..62cbef5db --- /dev/null +++ b/roles/openshift_repos/tasks/centos_sig.yaml @@ -0,0 +1,6 @@ +--- +- name: Install the CentOS PaaS SIG release packages +  action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" +  with_items: +  - centos-release-paas-common +  - centos-release-openshift-origin diff --git a/roles/openshift_repos/tasks/main.yaml b/roles/openshift_repos/tasks/main.yaml index af9fefec6..f0b6ed7cb 100644 --- a/roles/openshift_repos/tasks/main.yaml +++ b/roles/openshift_repos/tasks/main.yaml @@ -35,7 +35,7 @@      state: absent    with_fileglob:    - '*/repos/*' -  when: not openshift.common.is_containerized | bool  +  when: not openshift.common.is_containerized | bool          and not (item | search("/files/" ~ openshift_deployment_type ~ "/repos"))          and (ansible_os_family == "RedHat" and ansible_distribution != "Fedora")    notify: refresh cache @@ -52,14 +52,18 @@    notify: refresh cache  - name: Configure gpg keys if needed -  copy: src="{{ item }}" dest=/etc/pki/rpm-gpg/ +  copy: +    src: "{{ item }}" +    dest: /etc/pki/rpm-gpg/    with_fileglob:    - "{{ openshift_deployment_type }}/gpg_keys/*"    notify: refresh cache    when: not openshift.common.is_containerized | bool  - name: Configure yum repositories RHEL/CentOS -  copy: src="{{ item }}" dest=/etc/yum.repos.d/ +  copy: +    src: "{{ item }}" +    dest: /etc/yum.repos.d/    with_fileglob:    - "{{ openshift_deployment_type }}/repos/*"    notify: refresh cache @@ -67,8 +71,14 @@          and not openshift.common.is_containerized | bool  - name: Configure yum repositories Fedora -  copy: src="{{ item }}" dest=/etc/yum.repos.d/ +  copy: +    src: "{{ item }}" +    dest: /etc/yum.repos.d/    with_fileglob:    - "fedora-{{ openshift_deployment_type }}/repos/*"    notify: refresh cache    when: (ansible_distribution == "Fedora") and not openshift.common.is_containerized | bool + +- name: Configure the CentOS PaaS SIG repos if needed +  include: centos_sig.yaml +  when: not openshift.common.is_containerized | bool and deployment_type == 'origin' and ansible_distribution == 'CentOS' diff --git a/roles/rhel_subscribe/tasks/enterprise.yml b/roles/rhel_subscribe/tasks/enterprise.yml index 08540f440..c4aa7db6a 100644 --- a/roles/rhel_subscribe/tasks/enterprise.yml +++ b/roles/rhel_subscribe/tasks/enterprise.yml @@ -16,7 +16,7 @@  - fail:      msg: "{{ ose_version }} is not a valid version for {{ deployment_type }} deployment type"    when: ( deployment_type == 'enterprise' and ose_version not in ['3.0'] ) or -        ( deployment_type in ['atomic-enterprise', 'openshift-enterprise'] and ose_version not in ['3.1'] ) +        ( deployment_type in ['atomic-enterprise', 'openshift-enterprise'] and ose_version not in ['3.1', '3.2'] )  - name: Enable RHEL repositories    command: subscription-manager repos \  | 
