diff options
| -rw-r--r-- | .travis.yml | 15 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | openshift-ansible.spec | 2 | ||||
| -rw-r--r-- | playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml | 10 | ||||
| -rw-r--r-- | requirements.txt | 2 | ||||
| -rw-r--r-- | roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json | 20 | ||||
| -rw-r--r-- | roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json | 18 | ||||
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 39 | ||||
| -rw-r--r-- | utils/src/ooinstall/cli_installer.py | 4 | ||||
| -rw-r--r-- | utils/src/ooinstall/openshift_ansible.py | 8 | 
10 files changed, 84 insertions, 35 deletions
| diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..001bfdc39 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +sudo: false + +language: python +python: +  - "2.7" + +install: +  - pip install -r requirements.txt + +script: +  # TODO(rhcarvalho): check syntax of other important entrypoint playbooks +  - ansible-playbook --syntax-check playbooks/byo/config.yml +  # TODO(rhcarvalho): update make ci to pick up these tests +  - nosetests --tests=test +  - cd utils && make ci @@ -1,4 +1,5 @@  [](https://gitter.im/openshift/openshift-ansible) +[](https://travis-ci.org/openshift/openshift-ansible)  # OpenShift Ansible diff --git a/openshift-ansible.spec b/openshift-ansible.spec index 9ed1542cf..4961d23ef 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -13,7 +13,7 @@ URL:            https://github.com/openshift/openshift-ansible  Source0:        https://github.com/openshift/openshift-ansible/archive/%{commit}/%{name}-%{version}.tar.gz  BuildArch:      noarch -Requires:      ansible >= 2.1.0.0 +Requires:      ansible >= 2.2.0.0-1  Requires:      python2  Requires:      openshift-ansible-docs = %{version}-%{release} diff --git a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml index afbfe0106..764563d28 100644 --- a/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml @@ -24,7 +24,7 @@    - openshift_facts:        role: master        local_facts: -        embedded_etcd: "{{ groups.oo_etcd_to_config | length == 0 }}" +        embedded_etcd: "{{ groups.oo_etcd_to_config | default([]) | length == 0 }}"  - name: Backup etcd    hosts: etcd_hosts_to_backup @@ -70,7 +70,7 @@      when: (embedded_etcd | bool) and (etcd_disk_usage.stdout|int > avail_disk.stdout|int)    - name: Install etcd (for etcdctl) -    action: "{{ ansible_pkg_mgr }} name=etcd state=latest" +    action: "{{ ansible_pkg_mgr }} name=etcd state=installed"      when: not openshift.common.is_atomic | bool    - name: Generate etcd backup @@ -228,6 +228,12 @@      when: origin_reconcile_bindings | bool or ent_reconcile_bindings | bool      run_once: true +  - name: Reconcile Jenkins Pipeline Role Bindings +    command: > +      {{ openshift.common.client_binary }} adm --config={{ openshift.common.config_base }}/master/admin.kubeconfig policy reconcile-cluster-role-bindings system:build-strategy-jenkinspipeline --confirm +    run_once: true +    when: openshift.common.version_gte_3_4_or_1_4  | bool +    - name: Reconcile Security Context Constraints      command: >        {{ openshift.common.client_binary }} adm policy reconcile-sccs --confirm --additive-only=true diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..e55ef5f0b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +ansible>=2.1 +pyOpenSSL diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json index ef77bfcab..a645de7e2 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-centos7.json @@ -95,7 +95,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Node.js (Latest)", -              "description": "Build and run Node.js applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Node.js applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Node.js available on OpenShift, including major versions updates.",                "iconClass": "icon-nodejs",                "tags": "builder,nodejs",                "supports":"nodejs", @@ -156,7 +156,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Perl (Latest)", -              "description": "Build and run Perl applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Perl applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Perl available on OpenShift, including major versions updates.",                "iconClass": "icon-perl",                "tags": "builder,perl",                "supports":"perl", @@ -218,7 +218,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "PHP (Latest)", -              "description": "Build and run PHP applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run PHP applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PHP available on OpenShift, including major versions updates.",                "iconClass": "icon-php",                "tags": "builder,php",                "supports":"php", @@ -279,7 +279,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Python (Latest)", -              "description": "Build and run Python applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Python applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Python available on OpenShift, including major versions updates.",                "iconClass": "icon-python",                "tags": "builder,python",                "supports":"python", @@ -372,7 +372,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "WildFly (Latest)", -              "description": "Build and run WildFly applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run WildFly applications on CentOS 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/openshift-s2i/s2i-wildfly/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of WildFly available on OpenShift, including major versions updates.",                "iconClass": "icon-wildfly",                "tags": "builder,wildfly,java",                "supports":"jee,java", @@ -465,7 +465,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MySQL (Latest)", -              "description": "Provides a MySQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MySQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MySQL available on OpenShift, including major versions updates.",                "iconClass": "icon-mysql-database",                "tags": "mysql"              }, @@ -520,7 +520,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MariaDB (Latest)", -              "description": "Provides a MariaDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MariaDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MariaDB available on OpenShift, including major versions updates.",                "iconClass": "icon-mariadb",                "tags": "mariadb"              }, @@ -561,7 +561,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "PostgreSQL (Latest)", -              "description": "Provides a PostgreSQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.5.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a PostgreSQL database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.5.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PostgreSQL available on OpenShift, including major versions updates.",                "iconClass": "icon-postgresql",                "tags": "postgresql"              }, @@ -630,7 +630,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MongoDB (Latest)", -              "description": "Provides a MongoDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MongoDB database on CentOS 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MongoDB available on OpenShift, including major versions updates.",                "iconClass": "icon-mongodb",                "tags": "mongodb"              }, @@ -699,7 +699,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Jenkins (Latest)", -              "description": "Provides a Jenkins server on CentOS 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a Jenkins server on CentOS 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Jenkins available on OpenShift, including major versions updates.",                "iconClass": "icon-jenkins",                "tags": "jenkins"              }, diff --git a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json index 161227d2f..9b9cd236f 100644 --- a/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json +++ b/roles/openshift_examples/files/examples/v1.4/image-streams/image-streams-rhel7.json @@ -95,7 +95,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Node.js (Latest)", -              "description": "Build and run Node.js applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Node.js applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-nodejs-container/blob/master/4/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Node.js available on OpenShift, including major versions updates.",                "iconClass": "icon-nodejs",                "tags": "builder,nodejs",                "supports":"nodejs", @@ -156,7 +156,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Perl (Latest)", -              "description": "Build and run Perl applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Perl applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-perl-container/blob/master/5.20/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Perl available on OpenShift, including major versions updates.",                "iconClass": "icon-perl",                "tags": "builder,perl",                "supports":"perl", @@ -218,7 +218,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "PHP (Latest)", -              "description": "Build and run PHP applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run PHP applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-php-container/blob/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PHP available on OpenShift, including major versions updates.",                "iconClass": "icon-php",                "tags": "builder,php",                "supports":"php", @@ -279,7 +279,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Python (Latest)", -              "description": "Build and run Python applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Build and run Python applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/s2i-python-container/blob/master/3.5/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Python available on OpenShift, including major versions updates.",                "iconClass": "icon-python",                "tags": "builder,python",                "supports":"python", @@ -372,7 +372,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MySQL (Latest)", -              "description": "Provides a MySQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MySQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mysql-container/tree/master/5.6/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MySQL available on OpenShift, including major versions updates.",                "iconClass": "icon-mysql-database",                "tags": "mysql"              }, @@ -427,7 +427,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MariaDB (Latest)", -              "description": "Provides a MariaDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MariaDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mariadb-container/tree/master/10.1/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MariaDB available on OpenShift, including major versions updates.",                "iconClass": "icon-mariadb",                "tags": "mariadb"              }, @@ -468,7 +468,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "PostgreSQL (Latest)", -              "description": "Provides a PostgreSQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.5.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a PostgreSQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.5.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PostgreSQL available on OpenShift, including major versions updates.",                "iconClass": "icon-postgresql",                "tags": "postgresql"              }, @@ -537,7 +537,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "MongoDB (Latest)", -              "description": "Provides a MongoDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a MongoDB database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/tree/master/3.2/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of MongoDB available on OpenShift, including major versions updates.",                "iconClass": "icon-mongodb",                "tags": "mongodb"              }, @@ -606,7 +606,7 @@              "name": "latest",              "annotations": {                "openshift.io/display-name": "Jenkins (Latest)", -              "description": "Provides a Jenkins server on RHEL 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Ruby available on OpenShift, including major versions updates.", +              "description": "Provides a Jenkins server on RHEL 7. For more information about using this container image, including OpenShift considerations, see https://github.com/openshift/jenkins/blob/master/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of Jenkins available on OpenShift, including major versions updates.",                "iconClass": "icon-jenkins",                "tags": "jenkins"              }, diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 6d2b81c1f..a28b58e85 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -7,7 +7,13 @@  """Ansible module for retrieving and setting openshift related facts""" -import ConfigParser +try: +    # python2 +    import ConfigParser +except ImportError: +    # python3 +    import configparser as ConfigParser +  import copy  import io  import os @@ -202,9 +208,9 @@ def query_metadata(metadata_url, headers=None, expect_json=False):      if info['status'] != 200:          raise OpenShiftFactsMetadataUnavailableError("Metadata unavailable")      if expect_json: -        return module.from_json(result.read()) +        return module.from_json(to_native(result.read()))      else: -        return [line.strip() for line in result.readlines()] +        return [to_native(line.strip()) for line in result.readlines()]  def walk_metadata(metadata_url, headers=None, expect_json=False): @@ -312,7 +318,7 @@ def normalize_aws_facts(metadata, facts):      ):          int_info = dict()          var_map = {'ips': 'local-ipv4s', 'public_ips': 'public-ipv4s'} -        for ips_var, int_var in var_map.iteritems(): +        for ips_var, int_var in iteritems(var_map):              ips = interface.get(int_var)              if isinstance(ips, basestring):                  int_info[ips_var] = [ips] @@ -832,23 +838,29 @@ def set_version_facts_if_unset(facts):                  version_gte_3_1_1_or_1_1_1 = LooseVersion(version) >= LooseVersion('1.1.1')                  version_gte_3_2_or_1_2 = LooseVersion(version) >= LooseVersion('1.2.0')                  version_gte_3_3_or_1_3 = LooseVersion(version) >= LooseVersion('1.3.0') +                version_gte_3_4_or_1_4 = LooseVersion(version) >= LooseVersion('1.4.0')              else:                  version_gte_3_1_or_1_1 = LooseVersion(version) >= LooseVersion('3.0.2.905')                  version_gte_3_1_1_or_1_1_1 = LooseVersion(version) >= LooseVersion('3.1.1')                  version_gte_3_2_or_1_2 = LooseVersion(version) >= LooseVersion('3.1.1.901')                  version_gte_3_3_or_1_3 = LooseVersion(version) >= LooseVersion('3.3.0') +                version_gte_3_4_or_1_4 = LooseVersion(version) >= LooseVersion('3.4.0')          else:              version_gte_3_1_or_1_1 = True              version_gte_3_1_1_or_1_1_1 = True              version_gte_3_2_or_1_2 = True -            version_gte_3_3_or_1_3 = False +            version_gte_3_3_or_1_3 = True +            version_gte_3_4_or_1_4 = False          facts['common']['version_gte_3_1_or_1_1'] = version_gte_3_1_or_1_1          facts['common']['version_gte_3_1_1_or_1_1_1'] = version_gte_3_1_1_or_1_1_1          facts['common']['version_gte_3_2_or_1_2'] = version_gte_3_2_or_1_2          facts['common']['version_gte_3_3_or_1_3'] = version_gte_3_3_or_1_3 +        facts['common']['version_gte_3_4_or_1_4'] = version_gte_3_4_or_1_4 -        if version_gte_3_3_or_1_3: +        if version_gte_3_4_or_1_4: +            examples_content_version = 'v1.4' +        elif version_gte_3_3_or_1_3:              examples_content_version = 'v1.3'          elif version_gte_3_2_or_1_2:              examples_content_version = 'v1.2' @@ -931,7 +943,7 @@ def set_sdn_facts_if_unset(facts, system_facts):          # default MTU if interface MTU cannot be detected          facts['node']['sdn_mtu'] = '1450' -        for val in system_facts.itervalues(): +        for val in itervalues(system_facts):              if isinstance(val, dict) and 'mtu' in val:                  mtu = val['mtu'] @@ -1122,7 +1134,7 @@ def build_controller_args(facts):                      controller_args['cloud-config'] = [cloud_cfg_path + '/openstack.conf']                  if facts['cloudprovider']['kind'] == 'gce':                      controller_args['cloud-provider'] = ['gce'] -                    kubelet_args['cloud-config'] = [cloud_cfg_path + '/gce.conf'] +                    controller_args['cloud-config'] = [cloud_cfg_path + '/gce.conf']          if controller_args != {}:              facts = merge_facts({'master': {'controller_args': controller_args}}, facts, [], [])      return facts @@ -1143,7 +1155,7 @@ def build_api_server_args(facts):                      api_server_args['cloud-config'] = [cloud_cfg_path + '/openstack.conf']                  if facts['cloudprovider']['kind'] == 'gce':                      api_server_args['cloud-provider'] = ['gce'] -                    kubelet_args['cloud-config'] = [cloud_cfg_path + '/gce.conf'] +                    api_server_args['cloud-config'] = [cloud_cfg_path + '/gce.conf']          if api_server_args != {}:              facts = merge_facts({'master': {'api_server_args': api_server_args}}, facts, [], [])      return facts @@ -1358,7 +1370,7 @@ def merge_facts(orig, new, additive_facts_to_overwrite, protected_facts_to_overw                              'image_policy_config']      facts = dict() -    for key, value in orig.iteritems(): +    for key, value in iteritems(orig):          # Key exists in both old and new facts.          if key in new:              if key in inventory_json_facts: @@ -2112,7 +2124,7 @@ class OpenShiftFacts(object):              facts_to_set[self.role] = facts          if openshift_env != {} and openshift_env != None: -            for fact, value in openshift_env.iteritems(): +            for fact, value in iteritems(openshift_env):                  oo_env_facts = dict()                  current_level = oo_env_facts                  keys = self.split_openshift_env_fact_keys(fact, openshift_env_structures)[1:] @@ -2170,7 +2182,7 @@ class OpenShiftFacts(object):                  facts (dict): facts to clean          """          facts_to_remove = [] -        for fact, value in facts.iteritems(): +        for fact, value in iteritems(facts):              if isinstance(facts[fact], dict):                  facts[fact] = self.remove_empty_facts(facts[fact])              else: @@ -2301,6 +2313,9 @@ def main():  from ansible.module_utils.basic import *  from ansible.module_utils.facts import *  from ansible.module_utils.urls import * +from ansible.module_utils.six import iteritems, itervalues +from ansible.module_utils._text import to_native +from ansible.module_utils.six import b  if __name__ == '__main__':      main() diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py index 8470fb527..7e5ad4144 100644 --- a/utils/src/ooinstall/cli_installer.py +++ b/utils/src/ooinstall/cli_installer.py @@ -318,6 +318,7 @@ hostname.  def set_cluster_hostname(oo_cfg): +    first_master = next((host for host in oo_cfg.deployment.hosts if host.is_master()), None)      message = """  You have chosen to install a single master cluster (non-HA). @@ -329,8 +330,9 @@ If you want to override the cluster host name now to something other than the de  """      click.echo(message)      cluster_hostname = click.prompt('Enter hostname or IP address', -                                    default='') +                                    default=str(first_master))      oo_cfg.deployment.variables['openshift_master_cluster_hostname'] = cluster_hostname +    oo_cfg.deployment.variables['openshift_master_cluster_public_hostname'] = cluster_hostname  def collect_storage_host(hosts): diff --git a/utils/src/ooinstall/openshift_ansible.py b/utils/src/ooinstall/openshift_ansible.py index 764cc1e56..f542fb376 100644 --- a/utils/src/ooinstall/openshift_ansible.py +++ b/utils/src/ooinstall/openshift_ansible.py @@ -314,6 +314,10 @@ def run_uninstall_playbook(hosts, verbose=False):          facts_env['ANSIBLE_LOG_PATH'] = CFG.settings['ansible_log_path']      if 'ansible_config' in CFG.settings:          facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_config'] +    # override the ansible config for our main playbook run +    if 'ansible_quiet_config' in CFG.settings: +        facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_quiet_config'] +      return run_ansible(playbook, inventory_file, facts_env, verbose) @@ -328,4 +332,8 @@ def run_upgrade_playbook(hosts, playbook, verbose=False):          facts_env['ANSIBLE_LOG_PATH'] = CFG.settings['ansible_log_path']      if 'ansible_config' in CFG.settings:          facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_config'] +    # override the ansible config for our main playbook run +    if 'ansible_quiet_config' in CFG.settings: +        facts_env['ANSIBLE_CONFIG'] = CFG.settings['ansible_quiet_config'] +      return run_ansible(playbook, inventory_file, facts_env, verbose) | 
