diff options
25 files changed, 181 insertions, 64 deletions
diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index 64a35a246..a667c3f2d 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.6.153-1 ./ +3.7.1-1 ./ diff --git a/.tito/releasers.conf b/.tito/releasers.conf index b52e4fd87..17baaa1bd 100644 --- a/.tito/releasers.conf +++ b/.tito/releasers.conf @@ -37,6 +37,12 @@ releaser = tito.release.DistGitReleaser  branches = rhaos-3.6-rhel-7  srpm_disttag = .el7aos +[aos-3.7] +releaser = tito.release.DistGitReleaser +branches = rhaos-3.7-rhel-7 +srpm_disttag = .el7aos + +  [copr-openshift-ansible]  releaser = tito.release.CoprReleaser  project_name = @OpenShiftOnlineOps/openshift-ansible @@ -39,7 +39,8 @@ Follow this release pattern and you can't go wrong:  | ------------- | ----------------- |  | 1.3           | 3.3               |  | 1.4           | 3.4               | -| 1.*X*         | 3.*X*             | +| 1.5           | 3.5               | +| 3.*X*         | 3.*X*             |  If you're running from the openshift-ansible **master branch** we can  only guarantee compatibility with the newest origin releases **in diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 3a59ab25b..9cadf5947 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -9,7 +9,7 @@  %global __requires_exclude ^/usr/bin/ansible-playbook$  Name:           openshift-ansible -Version:        3.6.153 +Version:        3.7.1  Release:        1%{?dist}  Summary:        Openshift and Atomic Enterprise Ansible  License:        ASL 2.0 @@ -280,6 +280,109 @@ Atomic OpenShift Utilities includes  %changelog +* Thu Jul 27 2017 Scott Dodson <sdodson@redhat.com> 3.7.1-1 +- Fix incorrect delegate_to in control plane upgrade (sdodson@redhat.com) +- Follow the new naming conventions. (zhang.wanmin@zte.com.cn) +- Simplify generation of /etc/origin/node/resolv.conf (sdodson@redhat.com) +- Add glusterfs hosts to oo_all_hosts so that hosts set initial facts. +  (abutcher@redhat.com) +- Sync all openshift.common.use_openshift_sdn uses in yaml files +  (jchaloup@redhat.com) +- Fixing podpresets perms for service-catalog-controller (ewolinet@redhat.com) +- Fixing route spec caCertificate to be correctly capitalized +  (ewolinet@redhat.com) +- Set TimeoutStartSec=300 (sdodson@redhat.com) +- Revert "set KillMode to process in node service file" (sdodson@redhat.com) +- openshift_checks: refactor to internalize task_vars (lmeyer@redhat.com) +- openshift_checks: get rid of deprecated module_executor (lmeyer@redhat.com) +- openshift_checks: improve comments/names (lmeyer@redhat.com) +- add default value for router path in the cert (efreiber@redhat.com) +- Router wildcard certificate created by default (efreiber@redhat.com) +- Remove unsupported parameters from example inventory files. +  (jarrpa@redhat.com) +- Fix lint errors (sdodson@redhat.com) +- Metrics: grant hawkular namespace listener role (mwringe@redhat.com) +- Removing nolog from htpasswd invocation so not to supress errors +  (ewolinet@redhat.com) +- Removed kubernetes.io string from default. (kwoodson@redhat.com) +- Allow storage migrations to be optional and/or non fatal (sdodson@redhat.com) +- libvirt: fall back to mkisofs if genisoimage isn't available +  (dcbw@redhat.com) +- libvirt: add documentation about SSH keypair requirements (dcbw@redhat.com) +- Updating how storage type is determined, adding bool filter in +  openshift_logging_elasticsearch (ewolinet@redhat.com) +- Pass the provisioner to the module. (kwoodson@redhat.com) +- Use absolute path when unexcluding (Sergi Jimenez) +- Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1474246 (Sergi Jimenez) +- Support enabling the centos-openshift-origin-testing repository +  (dms@redhat.com) +- 1472467- add ose- prefix to ansible service broker name (fabian@fabianism.us) +- Updating openshift_logging_kibana default for kibana hostname +  (ewolinet@redhat.com) +- GlusterFS: Create registry storage svc and ep in registry namespace +  (jarrpa@redhat.com) +- Default an empty list for etcd_to_config if not there (tbielawa@redhat.com) +- If proxy in effect, add etcd host IP addresses to NO_PROXY list on masters +  (tbielawa@redhat.com) +- GlusterFS: Pass all booleans through bool filter. (jarrpa@redhat.com) +- GlusterFS: Fix bug in detecting whether to open firewall ports. +  (jarrpa@redhat.com) +- Pass first master's openshift_image_tag to openshift_loadbalancer for +  containerized haproxy installation. (abutcher@redhat.com) +- verify sane log times in logging stack (jvallejo@redhat.com) +- Fix log dumping on service failure (sdodson@redhat.com) +- Updating verbs for serviceclasses objects (ewolinet@redhat.com) +- Fix broken link to Docker image instructions (rhcarvalho@gmail.com) +- Added parameters inside of gce defaults.  Pass all params to the module. +  (kwoodson@redhat.com) +- add etcd increased-traffic check (jvallejo@redhat.com) +- Add etcd exports to openshift_storage_nfs (abutcher@redhat.com) +- Hopefully finally fix the no_proxy settings (tbielawa@redhat.com) +- openshift_checks/docker_storage: overlay/2 support (lmeyer@redhat.com) +- Removing parameter kind and allowing default to be passed. +  (kwoodson@redhat.com) +- Remove openshift_use_dnsmasq from aws and libvirt playbooks +  (sdodson@redhat.com) +- 1471973- default to bootstrapping the broker on startup (fabian@fabianism.us) +- image builds: remove dependency on playbook2image (jvallejo@redhat.com) +- Setting node selector to be empty string (ewolinet@redhat.com) +- Add drain retries after 60 second delay (sdodson@redhat.com) +- Dump some logs (sdodson@redhat.com) +- daemon_reload on node and ovs start (sdodson@redhat.com) +- Ensure proper fact evaluation (sdodson@redhat.com) +- Wrap additional service changes in retries (sdodson@redhat.com) +- Wrap docker stop in retries (sdodson@redhat.com) +- Add retries to node restart handlers (sdodson@redhat.com) +- Test docker restart with retries 3 delay 30 (smilner@redhat.com) +- Adding podpreset config into master-config (ewolinet@redhat.com) +- Update image-gc-high-threshold value (decarr@redhat.com) +- Adding a check for variable definition. (kwoodson@redhat.com) +- docker: fix docker_selinux_enabled (lmeyer@redhat.com) +- Changing cluster role to admin (rhallise@redhat.com) +- drain still pending in below files without fix : (jkaur@redhat.com) +- Fixed spacing and lint errors. (kwoodson@redhat.com) +- Switch CI to ansible-2.3.1.0 (sdodson@redhat.com) +- Allow OVS 2.7 in latest OpenShift releases (rhcarvalho@gmail.com) +- Make aos_version module handle multiple versions (rhcarvalho@gmail.com) +- Split positive and negative unit tests (rhcarvalho@gmail.com) +- GlusterFS: Create in custom namespace by default (jarrpa@redhat.com) +- hosted registry: Use proper node name in GlusterFS storage setup +  (jarrpa@redhat.com) +- GlusterFS: Make heketi-cli command configurable (jarrpa@redhat.com) +- GlusterFS: Reintroduce heketi-cli check for non-native heketi +  (jarrpa@redhat.com) +- GlusterFS: Bug fixes for external GlusterFS nodes (jarrpa@redhat.com) +- GlusterFS: Improve and extend example inventory files (jarrpa@redhat.com) +- Fixed tests and added sleep for update. (kwoodson@redhat.com) +- Fixing needs_update comparison.  Added a small pause for race conditions. +  Fixed doc.  Fix kind to storageclass (kwoodson@redhat.com) +- Adding storageclass support to lib_openshift. (kwoodson@redhat.com) +- Add an SA policy to the ansible-service-broker (rhallise@redhat.com) +- Import templates will fail if user is not system:admin (jkaur@redhat.com) +- Additional optimization parameters for ansible.cfg (sejug@redhat.com) +- Fix etcd conditional check failure (admin@webresource.nl) +- Remove invalid when: from vars: (rteague@redhat.com) +  * Tue Jul 18 2017 Jenkins CD Merge Bot <smunilla@redhat.com> 3.6.153-1  - Updating to compare sets instead of sorted lists (ewolinet@redhat.com)  - Adding ability to create podpreset for service-catalog-controller for diff --git a/playbooks/byo/openshift-cluster/cluster_hosts.yml b/playbooks/byo/openshift-cluster/cluster_hosts.yml index 0adadfcef..0db7ccf89 100644 --- a/playbooks/byo/openshift-cluster/cluster_hosts.yml +++ b/playbooks/byo/openshift-cluster/cluster_hosts.yml @@ -20,5 +20,5 @@ g_glusterfs_registry_hosts: "{{ groups.glusterfs_registry | default(g_glusterfs_  g_all_hosts: "{{ g_master_hosts | union(g_node_hosts) | union(g_etcd_hosts)                   | union(g_lb_hosts) | union(g_nfs_hosts)                   | union(g_new_node_hosts)| union(g_new_master_hosts) -                 | union(g_glusterfs_hosts) +                 | union(g_glusterfs_hosts) | union(g_glusterfs_registry_hosts)                   | default([]) }}" diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index 695dc3140..6a0471948 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -157,7 +157,7 @@      - l_pb_upgrade_control_plane_post_upgrade_storage.rc != 0      - openshift_upgrade_post_storage_migration_fatal | default(false,true) | bool      run_once: true -    delegate_to: oo_first_master +    delegate_to: "{{ groups.oo_first_master.0 }}"    - set_fact:        master_update_complete: True diff --git a/playbooks/common/openshift-etcd/migrate.yml b/playbooks/common/openshift-etcd/migrate.yml index c655449fa..3e7a48669 100644 --- a/playbooks/common/openshift-etcd/migrate.yml +++ b/playbooks/common/openshift-etcd/migrate.yml @@ -17,6 +17,26 @@    tags:    - always +- name: Prepare masters for etcd data migration +  hosts: oo_masters_to_config +  tasks: +  - set_fact: +      master_services: +      - "{{ openshift.common.service_type + '-master' }}" +  - set_fact: +      master_services: +      - "{{ openshift.common.service_type + '-master-controllers' }}" +      - "{{ openshift.common.service_type + '-master-api' }}" +    when: +    - (openshift_master_cluster_method is defined and openshift_master_cluster_method == "native") or openshift.common.is_master_system_container | bool +  - debug: +      msg: "master service name: {{ master_services }}" +  - name: Stop masters +    service: +      name: "{{ item }}" +      state: stopped +    with_items: "{{ master_services }}" +  - name: Backup v2 data    hosts: oo_etcd_to_migrate    gather_facts: no @@ -47,26 +67,6 @@      when:      - etcd_backup_failed | length > 0 -- name: Prepare masters for etcd data migration -  hosts: oo_masters_to_config -  tasks: -  - set_fact: -      master_services: -      - "{{ openshift.common.service_type + '-master' }}" -  - set_fact: -      master_services: -      - "{{ openshift.common.service_type + '-master-controllers' }}" -      - "{{ openshift.common.service_type + '-master-api' }}" -    when: -    - (openshift_master_cluster_method is defined and openshift_master_cluster_method == "native") or openshift.common.is_master_system_container | bool -  - debug: -      msg: "master service name: {{ master_services }}" -  - name: Stop masters -    service: -      name: "{{ item }}" -      state: stopped -    with_items: "{{ master_services }}" -  - name: Migrate etcd data from v2 to v3    hosts: oo_etcd_to_migrate    gather_facts: no diff --git a/roles/contiv/tasks/netmaster_iptables.yml b/roles/contiv/tasks/netmaster_iptables.yml index 2d0fb95ae..07bb16ea7 100644 --- a/roles/contiv/tasks/netmaster_iptables.yml +++ b/roles/contiv/tasks/netmaster_iptables.yml @@ -2,7 +2,7 @@  - name: Netmaster IPtables | Get iptables rules    command: iptables -L --wait    register: iptablesrules -  always_run: yes +  check_mode: no  - name: Netmaster IPtables | Enable iptables at boot    service: diff --git a/roles/contiv/tasks/netplugin_iptables.yml b/roles/contiv/tasks/netplugin_iptables.yml index 184c595c5..3ea34645d 100644 --- a/roles/contiv/tasks/netplugin_iptables.yml +++ b/roles/contiv/tasks/netplugin_iptables.yml @@ -2,7 +2,7 @@  - name: Netplugin IPtables | Get iptables rules    command: iptables -L --wait    register: iptablesrules -  always_run: yes +  check_mode: no  - name: Netplugin IPtables | Enable iptables at boot    service: diff --git a/roles/contiv_facts/tasks/main.yml b/roles/contiv_facts/tasks/main.yml index 926e0e0be..7a4972fca 100644 --- a/roles/contiv_facts/tasks/main.yml +++ b/roles/contiv_facts/tasks/main.yml @@ -3,7 +3,7 @@    stat: path=/run/ostree-booted    register: s    changed_when: false -  always_run: yes +  check_mode: no  - name: Init the is_atomic fact    set_fact: @@ -17,7 +17,7 @@  - name: Determine if CoreOS    raw: "grep '^NAME=' /etc/os-release | sed s'/NAME=//'"    register: distro -  always_run: yes +  check_mode: no  - name: Init the is_coreos fact    set_fact: @@ -61,7 +61,7 @@    stat: path=/usr/bin/rpm    register: s    changed_when: false -  always_run: yes +  check_mode: no  - name: Init the has_rpm fact    set_fact: diff --git a/roles/contiv_facts/tasks/rpm.yml b/roles/contiv_facts/tasks/rpm.yml index d2f66dac5..07401a6dd 100644 --- a/roles/contiv_facts/tasks/rpm.yml +++ b/roles/contiv_facts/tasks/rpm.yml @@ -4,7 +4,7 @@    register: s    changed_when: false    failed_when: false -  always_run: yes +  check_mode: no  - name: Set the has_firewalld fact    set_fact: @@ -16,7 +16,7 @@    register: s    changed_when: false    failed_when: false -  always_run: yes +  check_mode: no  - name: Set the has_iptables fact    set_fact: diff --git a/roles/etcd_migrate/tasks/check.yml b/roles/etcd_migrate/tasks/check.yml index 800073873..b66696b55 100644 --- a/roles/etcd_migrate/tasks/check.yml +++ b/roles/etcd_migrate/tasks/check.yml @@ -1,4 +1,8 @@  --- +- fail: +    msg: "Currently etcd v3 migration is unsupported while we test it more thoroughly" +  when: not openshift_enable_unsupported_configurations | default(false) | bool +  # Check the cluster is healthy  - include: check_cluster_health.yml diff --git a/roles/lib_openshift/library/oc_storageclass.py b/roles/lib_openshift/library/oc_storageclass.py index d5375e27a..686119c65 100644 --- a/roles/lib_openshift/library/oc_storageclass.py +++ b/roles/lib_openshift/library/oc_storageclass.py @@ -1427,7 +1427,7 @@ class StorageClassConfig(object):      # pylint: disable=too-many-arguments      def __init__(self,                   name, -                 provisioner=None, +                 provisioner,                   parameters=None,                   annotations=None,                   default_storage_class="false", @@ -1459,10 +1459,7 @@ class StorageClassConfig(object):          self.data['metadata']['annotations']['storageclass.beta.kubernetes.io/is-default-class'] = \                  self.default_storage_class -        if self.provisioner is None: -            self.data['provisioner'] = 'kubernetes.io/aws-ebs' -        else: -            self.data['provisioner'] = self.provisioner +        self.data['provisioner'] = self.provisioner          self.data['parameters'] = {}          if self.parameters is not None: @@ -1668,7 +1665,7 @@ def main():              name=dict(default=None, type='str'),              annotations=dict(default=None, type='dict'),              parameters=dict(default=None, type='dict'), -            provisioner=dict(default='aws-ebs', type='str', choices=['aws-ebs', 'gce-pd', 'glusterfs', 'cinder']), +            provisioner=dict(required=True, type='str', choices=['aws-ebs', 'gce-pd', 'glusterfs', 'cinder']),              api_version=dict(default='v1', type='str'),              default_storage_class=dict(default="false", type='str'),          ), diff --git a/roles/lib_openshift/src/ansible/oc_storageclass.py b/roles/lib_openshift/src/ansible/oc_storageclass.py index 2bd8f18d5..e9f3ebbd3 100644 --- a/roles/lib_openshift/src/ansible/oc_storageclass.py +++ b/roles/lib_openshift/src/ansible/oc_storageclass.py @@ -14,7 +14,7 @@ def main():              name=dict(default=None, type='str'),              annotations=dict(default=None, type='dict'),              parameters=dict(default=None, type='dict'), -            provisioner=dict(default='aws-ebs', type='str', choices=['aws-ebs', 'gce-pd', 'glusterfs', 'cinder']), +            provisioner=dict(required=True, type='str', choices=['aws-ebs', 'gce-pd', 'glusterfs', 'cinder']),              api_version=dict(default='v1', type='str'),              default_storage_class=dict(default="false", type='str'),          ), diff --git a/roles/lib_openshift/src/lib/storageclass.py b/roles/lib_openshift/src/lib/storageclass.py index ef12a8d2d..c49a3066a 100644 --- a/roles/lib_openshift/src/lib/storageclass.py +++ b/roles/lib_openshift/src/lib/storageclass.py @@ -8,7 +8,7 @@ class StorageClassConfig(object):      # pylint: disable=too-many-arguments      def __init__(self,                   name, -                 provisioner=None, +                 provisioner,                   parameters=None,                   annotations=None,                   default_storage_class="false", @@ -40,10 +40,7 @@ class StorageClassConfig(object):          self.data['metadata']['annotations']['storageclass.beta.kubernetes.io/is-default-class'] = \                  self.default_storage_class -        if self.provisioner is None: -            self.data['provisioner'] = 'kubernetes.io/aws-ebs' -        else: -            self.data['provisioner'] = self.provisioner +        self.data['provisioner'] = self.provisioner          self.data['parameters'] = {}          if self.parameters is not None: diff --git a/roles/openshift_logging_curator/tasks/main.yaml b/roles/openshift_logging_curator/tasks/main.yaml index ae7e48caa..3113fb3c9 100644 --- a/roles/openshift_logging_curator/tasks/main.yaml +++ b/roles/openshift_logging_curator/tasks/main.yaml @@ -91,7 +91,7 @@      es_port: "{{ openshift_logging_curator_es_port }}"      curator_cpu_limit: "{{ openshift_logging_curator_cpu_limit }}"      curator_memory_limit: "{{ openshift_logging_curator_memory_limit }}" -    replicas: "{{ openshift_logging_curator_replicas | default (1) }}" +    curator_replicas: "{{ openshift_logging_curator_replicas | default (1) }}"      curator_node_selector: "{{openshift_logging_curator_nodeselector | default({})}}"    check_mode: no    changed_when: no diff --git a/roles/openshift_logging_curator/templates/curator.j2 b/roles/openshift_logging_curator/templates/curator.j2 index 1bf9b9de2..6431f86d9 100644 --- a/roles/openshift_logging_curator/templates/curator.j2 +++ b/roles/openshift_logging_curator/templates/curator.j2 @@ -7,7 +7,7 @@ metadata:      component: "{{component}}"      logging-infra: "{{logging_component}}"  spec: -  replicas: {{replicas|default(1)}} +  replicas: {{curator_replicas|default(1)}}    selector:      provider: openshift      component: "{{component}}" diff --git a/roles/openshift_logging_elasticsearch/tasks/main.yaml b/roles/openshift_logging_elasticsearch/tasks/main.yaml index 532f4a85d..0548e3c40 100644 --- a/roles/openshift_logging_elasticsearch/tasks/main.yaml +++ b/roles/openshift_logging_elasticsearch/tasks/main.yaml @@ -257,7 +257,7 @@      es_memory_limit: "{{ openshift_logging_elasticsearch_memory_limit }}"      es_node_selector: "{{ openshift_logging_elasticsearch_nodeselector | default({}) }}"      deploy_type: "{{ openshift_logging_elasticsearch_deployment_type }}" -    replicas: 1 +    es_replicas: 1  - name: Set ES dc    oc_obj: diff --git a/roles/openshift_logging_elasticsearch/templates/es.j2 b/roles/openshift_logging_elasticsearch/templates/es.j2 index 7424db6f6..cbe6b89f2 100644 --- a/roles/openshift_logging_elasticsearch/templates/es.j2 +++ b/roles/openshift_logging_elasticsearch/templates/es.j2 @@ -8,7 +8,7 @@ metadata:      deployment: "{{deploy_name}}"      logging-infra: "{{logging_component}}"  spec: -  replicas: {{replicas|default(1)}} +  replicas: {{es_replicas|default(1)}}    selector:      provider: openshift      component: "{{component}}" @@ -78,7 +78,7 @@ spec:                name: "INSTANCE_RAM"                value: "{{openshift_logging_elasticsearch_memory_limit}}"              - -              name: "HEAP_DUMP_LOCATION"  +              name: "HEAP_DUMP_LOCATION"                value: "/elasticsearch/persistent/heapdump.hprof"              -                name: "NODE_QUORUM" diff --git a/roles/openshift_logging_kibana/tasks/main.yaml b/roles/openshift_logging_kibana/tasks/main.yaml index 93cb82793..62bc26e37 100644 --- a/roles/openshift_logging_kibana/tasks/main.yaml +++ b/roles/openshift_logging_kibana/tasks/main.yaml @@ -233,7 +233,7 @@      kibana_memory_limit: "{{ openshift_logging_kibana_memory_limit }}"      kibana_proxy_cpu_limit: "{{ openshift_logging_kibana_proxy_cpu_limit }}"      kibana_proxy_memory_limit: "{{ openshift_logging_kibana_proxy_memory_limit }}" -    replicas: "{{ openshift_logging_kibana_replicas | default (1) }}" +    kibana_replicas: "{{ openshift_logging_kibana_replicas | default (1) }}"      kibana_node_selector: "{{ openshift_logging_kibana_nodeselector | default({}) }}"  - name: Set Kibana DC diff --git a/roles/openshift_logging_kibana/templates/kibana.j2 b/roles/openshift_logging_kibana/templates/kibana.j2 index f8043812b..512d99d06 100644 --- a/roles/openshift_logging_kibana/templates/kibana.j2 +++ b/roles/openshift_logging_kibana/templates/kibana.j2 @@ -7,7 +7,7 @@ metadata:      component: "{{ component }}"      logging-infra: "{{ logging_component }}"  spec: -  replicas: {{ replicas | default(1) }} +  replicas: {{ kibana_replicas | default(1) }}    selector:      provider: openshift      component: "{{ component }}" diff --git a/roles/openshift_logging_mux/tasks/main.yaml b/roles/openshift_logging_mux/tasks/main.yaml index 54af40070..02815806a 100644 --- a/roles/openshift_logging_mux/tasks/main.yaml +++ b/roles/openshift_logging_mux/tasks/main.yaml @@ -172,7 +172,7 @@      ops_port: "{{ openshift_logging_mux_ops_port }}"      mux_cpu_limit: "{{ openshift_logging_mux_cpu_limit }}"      mux_memory_limit: "{{ openshift_logging_mux_memory_limit }}" -    replicas: "{{ openshift_logging_mux_replicas | default(1) }}" +    mux_replicas: "{{ openshift_logging_mux_replicas | default(1) }}"      mux_node_selector: "{{ openshift_logging_mux_nodeselector | default({}) }}"    check_mode: no    changed_when: no diff --git a/roles/openshift_logging_mux/templates/mux.j2 b/roles/openshift_logging_mux/templates/mux.j2 index 226294847..2b3b64bb8 100644 --- a/roles/openshift_logging_mux/templates/mux.j2 +++ b/roles/openshift_logging_mux/templates/mux.j2 @@ -7,7 +7,7 @@ metadata:      component: "{{component}}"      logging-infra: "{{logging_component}}"  spec: -  replicas: {{replicas|default(1)}} +  replicas: {{mux_replicas|default(1)}}    selector:      provider: openshift      component: "{{component}}" 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 924226d09..4aab8f2e9 100755 --- a/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh +++ b/roles/openshift_node_dnsmasq/files/networkmanager/99-origin-dns.sh @@ -37,6 +37,8 @@ if [[ $2 =~ ^(up|dhcp4-change|dhcp6-change)$ ]]; then    UPSTREAM_DNS_TMP_SORTED=`mktemp`    CURRENT_UPSTREAM_DNS_SORTED=`mktemp`    NEW_RESOLV_CONF=`mktemp` +  NEW_NODE_RESOLV_CONF=`mktemp` +    ######################################################################    # couldn't find an existing method to determine if the interface owns the @@ -60,12 +62,14 @@ EOF      fi      ###################################################################### -    # Generate a new origin dns config file +    # Write out default nameservers for /etc/dnsmasq.d/origin-upstream-dns.conf +    # and /etc/origin/node/resolv.conf in their respective formats      for ns in ${IP4_NAMESERVERS}; do        if [[ ! -z $ns ]]; then -        echo "server=${ns}" +        echo "server=${ns}" >> $UPSTREAM_DNS_TMP +        echo "nameserver ${ns}" >> $NEW_NODE_RESOLV_CONF        fi -    done > $UPSTREAM_DNS_TMP +    done      # Sort it in case DNS servers arrived in a different order      sort $UPSTREAM_DNS_TMP > $UPSTREAM_DNS_TMP_SORTED @@ -74,7 +78,6 @@ EOF      # Compare to the current config file (sorted)      NEW_DNS_SUM=`md5sum ${UPSTREAM_DNS_TMP_SORTED} | awk '{print $1}'`      CURRENT_DNS_SUM=`md5sum ${CURRENT_UPSTREAM_DNS_SORTED} | awk '{print $1}'` -      if [ "${NEW_DNS_SUM}" != "${CURRENT_DNS_SUM}" ]; then        # DNS has changed, copy the temp file to the proper location (-Z        # sets default selinux context) and set the restart flag @@ -82,6 +85,13 @@ EOF        NEEDS_RESTART=1      fi +    # compare /etc/origin/node/resolv.conf checksum and replace it if different +    NEW_NODE_RESOLV_CONF_MD5=`md5sum ${NEW_NODE_RESOLV_CONF}` +    OLD_NODE_RESOLV_CONF_MD5=`md5sum /etc/origin/node/resolv.conf` +    if [ "${NEW_NODE_RESOLV_CONF_MD5}" != "${OLD_NODE_RESOLV_CONF_MD5}" ]; then +      cp -Z $NEW_NODE_RESOLV_CONF /etc/origin/node/resolv.conf +    fi +      if ! `systemctl -q is-active dnsmasq.service`; then        NEEDS_RESTART=1      fi @@ -91,17 +101,14 @@ EOF        systemctl restart dnsmasq      fi -    # Only if dnsmasq is running properly make it our only nameserver, copy -    # original resolv.conf to /etc/origin/node/resolv.conf for node service to -    # bypass dnsmasq +    # Only if dnsmasq is running properly make it our only nameserver and place +    # a watermark on /etc/resolv.conf      if `systemctl -q is-active dnsmasq.service`; then -      if ! grep -q '99-origin-dns.sh' ${NEW_RESOLV_CONF}; then +      if ! grep -q '99-origin-dns.sh' /etc/resolv.conf; then            echo "# nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh" >> ${NEW_RESOLV_CONF} -          cp /etc/resolv.conf /etc/origin/node/resolv.conf        fi -      sed -e '/^nameserver.*$/d' /etc/resolv.conf > ${NEW_RESOLV_CONF} +      sed -e '/^nameserver.*$/d' /etc/resolv.conf >> ${NEW_RESOLV_CONF}        echo "nameserver "${def_route_ip}"" >> ${NEW_RESOLV_CONF} -        if ! grep -q 'search.*cluster.local' ${NEW_RESOLV_CONF}; then          sed -i '/^search/ s/$/ cluster.local/' ${NEW_RESOLV_CONF}        fi diff --git a/utils/src/ooinstall/openshift_ansible.py b/utils/src/ooinstall/openshift_ansible.py index ce6e54664..ca5e7dc1a 100644 --- a/utils/src/ooinstall/openshift_ansible.py +++ b/utils/src/ooinstall/openshift_ansible.py @@ -122,6 +122,8 @@ def write_inventory_vars(base_inventory, lb):      if CFG.deployment.variables['ansible_ssh_user'] != 'root':          base_inventory.write('ansible_become=yes\n') +    base_inventory.write('openshift_override_hostname_check=true\n') +      if lb is not None:          base_inventory.write('openshift_master_cluster_method=native\n')          base_inventory.write("openshift_master_cluster_hostname={}\n".format(lb.hostname))  | 
