From e3108d93c69dbad0c575da719f842d36c195a673 Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Mon, 11 Mar 2019 11:49:27 +0100 Subject: [PATCH] Bump up pkg versions in kolla-toolbox Currently we use Ansible 2.2 in kolla_toolbox, while lowest supported version is 2.6 - bumping up to 2.8. * Use upper constrains in Dockerfile.j2, instead of pinning them in here - Ansible is pinned to 2.8.* * Add no_log=True in kolla_keystone_user * Add endpoint_type as a param in kolla_keystone_service - now AnsibleModule requires all options to be defined, otherwise it throws an UnsupportedParameter error * Add openstack_release variable in kolla/common/config.py which is used for fetching upper-constraints.txt for desired release Change-Id: I2cb0ea2fde1b408d48b39bf7a54b898e850d31aa --- docker/kolla-toolbox/Dockerfile.j2 | 16 +++++++++------- docker/kolla-toolbox/kolla_keystone_service.py | 3 ++- docker/kolla-toolbox/kolla_keystone_user.py | 2 +- kolla/common/config.py | 3 +++ kolla/image/build.py | 2 ++ 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2 index 50f0095fd0..683650809c 100644 --- a/docker/kolla-toolbox/Dockerfile.j2 +++ b/docker/kolla-toolbox/Dockerfile.j2 @@ -60,20 +60,22 @@ RUN {{ macros.install_pip(kolla_toolbox_pip_virtualenv_packages|customizable("pi ENV PATH {{ virtualenv_path }}/bin:$PATH {% set kolla_toolbox_pip_packages = [ - 'ansible==2.2.0.0', - '"cmd2<0.9.0"', + 'ansible==2.8.*', + 'cmd2', 'influxdb', 'mysqlclient', - 'os-client-config==1.29.0', - 'pbr==4.0.0', + 'os-client-config', + 'pbr', 'pymongo', - 'python-openstackclient==3.14.0', + 'python-openstackclient', 'pytz', 'pyudev', - 'shade==1.27.1' + 'shade' ] %} -RUN {{ macros.install_pip(kolla_toolbox_pip_packages | customizable("pip_packages"), constraints=false) }} \ +RUN mkdir -p /requirements \ + && curl -sSL -o /requirements/upper-constraints.txt https://opendev.org/openstack/requirements/raw/branch/{{openstack_release}}/upper-constraints.txt \ + && {{ macros.install_pip(kolla_toolbox_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/ansible /usr/share/ansible \ && echo 'localhost ansible_connection=local ansible_python_interpreter={{ virtualenv_path }}/bin/python' > /etc/ansible/hosts \ && sed -i 's| "identity_api_version": "2.0",| "identity_api_version": "3",|' {{ os_client_config }} diff --git a/docker/kolla-toolbox/kolla_keystone_service.py b/docker/kolla-toolbox/kolla_keystone_service.py index 866350821e..74db353854 100644 --- a/docker/kolla-toolbox/kolla_keystone_service.py +++ b/docker/kolla-toolbox/kolla_keystone_service.py @@ -37,7 +37,8 @@ def main(): service_type=dict(required=True, type='str'), url=dict(required=True, type='str'), interface=dict(required=True, type='str'), - endpoint_region=dict(required=True, type='str') + endpoint_region=dict(required=True, type='str'), + endpoint_type=dict(type='str') ) module = AnsibleModule(argument_spec) diff --git a/docker/kolla-toolbox/kolla_keystone_user.py b/docker/kolla-toolbox/kolla_keystone_user.py index af7d0d6ecb..c9631cd7c6 100644 --- a/docker/kolla-toolbox/kolla_keystone_user.py +++ b/docker/kolla-toolbox/kolla_keystone_user.py @@ -24,7 +24,7 @@ from ansible.module_utils.openstack import openstack_full_argument_spec def main(): argument_spec = openstack_full_argument_spec( - password=dict(required=True, type='str'), + password=dict(required=True, type='str', no_log=True), project=dict(required=True, type='str'), role=dict(required=True, type='str'), user=dict(required=True, type='str') diff --git a/kolla/common/config.py b/kolla/common/config.py index d537303ad0..c6d4e269af 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -35,6 +35,7 @@ DISTRO_RELEASE = { 'debian': 'buster', 'ubuntu': '18.04', } +OPENSTACK_RELEASE = 'master' # This is noarch repository so we will use it on all architectures DELOREAN = \ @@ -269,6 +270,8 @@ _CLI_OPTS = [ help=('Squash the image layers. WARNING: it will consume lots' ' of disk IO. "docker-squash" tool is required, install' ' it by "pip install docker-squash"')), + cfg.StrOpt('openstack-release', default=OPENSTACK_RELEASE, + help='OpenStack release for building kolla-toolbox'), ] _BASE_OPTS = [ diff --git a/kolla/image/build.py b/kolla/image/build.py index 7b8dcd9af3..8790f4e6b9 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -672,6 +672,7 @@ class KollaWorker(object): elif self.base_arch == 'ppc64le': self.debian_arch = 'ppc64el' self.images = list() + self.openstack_release = conf.openstack_release rpm_setup_config = ([repo_file for repo_file in conf.rpm_setup_config if repo_file is not None]) self.rpm_setup = self.build_rpm_setup(rpm_setup_config) @@ -918,6 +919,7 @@ class KollaWorker(object): 'image_prefix': self.image_prefix, 'install_type': self.install_type, 'namespace': self.namespace, + 'openstack_release': self.openstack_release, 'tag': self.tag, 'maintainer': self.maintainer, 'kolla_version': kolla_version,