diff --git a/docker/aodh/aodh-api/extend_start.sh b/docker/aodh/aodh-api/extend_start.sh index 0826a46452..708b12ed32 100644 --- a/docker/aodh/aodh-api/extend_start.sh +++ b/docker/aodh/aodh-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/barbican/barbican-api/extend_start.sh b/docker/barbican/barbican-api/extend_start.sh index 687c66ddb9..920b508041 100755 --- a/docker/barbican/barbican-api/extend_start.sh +++ b/docker/barbican/barbican-api/extend_start.sh @@ -14,6 +14,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index ebe7a3ae2c..1f6356d1c0 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -295,10 +295,12 @@ COPY sources.list.{{ base_distro }} /etc/apt/sources.list {% else %} COPY sources.list.{{ base_distro }}.{{ base_arch }} /etc/apt/sources.list {% endif %} +COPY sources.list /etc/apt/sources.list.d/kolla-custom.list {% endblock %} {% block base_ubuntu_package_apt_preferences %} COPY apt_preferences.{{ base_distro }} /etc/apt/preferences +COPY apt_preferences /etc/apt/preferences.d/kolla-custom {% endblock %} {% set base_apt_packages = [ diff --git a/docker/base/apt_preferences b/docker/base/apt_preferences new file mode 100644 index 0000000000..dc5b993f17 --- /dev/null +++ b/docker/base/apt_preferences @@ -0,0 +1 @@ +# used for adding custom options by 'apt_preferences' option of kolla-build.conf diff --git a/docker/base/apt_preferences.debian b/docker/base/apt_preferences.debian index e69de29bb2..76fa93576e 100644 --- a/docker/base/apt_preferences.debian +++ b/docker/base/apt_preferences.debian @@ -0,0 +1,29 @@ +# We do not want packages from this repo +Package: * +Pin: release o=obs://private/home:marcin.juszkiewicz/debian-buster +Pin-Priority: 100 + +# Unless it is kibana (on aarch64) +Package: kibana +Pin: release o=obs://private/home:marcin.juszkiewicz/debian-buster +Pin-Priority: 600 + +# on x86-64 use upstream package for kibana +Package: kibana +Pin: release o=elastic,b=amd64 +Pin-Priority: 700 + +# We need fixed libvirt for aarch64 +Package: *libvirt* +Pin: release o=obs://private/home:marcin.juszkiewicz/debian-buster +Pin-Priority: 600 + +# on x86-64 we want libvirt from Debian +Package: *libvirt* +Pin: release o=Debian,b=amd64 +Pin-Priority: 700 + +# on ppc64le we want libvirt from Debian +Package: *libvirt* +Pin: release o=Debian,b=ppc64le +Pin-Priority: 700 diff --git a/docker/base/sources.list b/docker/base/sources.list new file mode 100644 index 0000000000..1acbbcb59c --- /dev/null +++ b/docker/base/sources.list @@ -0,0 +1 @@ +# used for adding custom repos by 'apt_sources_list' option of kolla-build.conf diff --git a/docker/base/sources.list.debian b/docker/base/sources.list.debian index 30b28d9053..f8e2fe514e 100644 --- a/docker/base/sources.list.debian +++ b/docker/base/sources.list.debian @@ -18,3 +18,6 @@ deb http://buster-stein.debian.net/debian buster-stein-backports-nochange main # td-agent for fluentd deb http://packages.treasuredata.com/3/debian/stretch stretch contrib + +# kibana for non-x86 and fixed libvirt for aarch64 +deb https://obs.linaro.org/repos/home:/marcin.juszkiewicz/debian-buster ./ diff --git a/docker/cinder/cinder-api/extend_start.sh b/docker/cinder/cinder-api/extend_start.sh index 7fef2609bd..4993bb4937 100644 --- a/docker/cinder/cinder-api/extend_start.sh +++ b/docker/cinder/cinder-api/extend_start.sh @@ -9,7 +9,7 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then fi if [[ "${!KOLLA_OSM[@]}" ]]; then - if [[ -z ${MAX_NUMBER} ]]; then + if [[ "${!MAX_NUMBER[@]}" ]]; then cinder-manage db online_data_migrations --max_count ${MAX_NUMBER} else cinder-manage db online_data_migrations @@ -24,6 +24,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/cloudkitty/cloudkitty-api/extend_start.sh b/docker/cloudkitty/cloudkitty-api/extend_start.sh index 756fd82fd0..e1f41b5587 100644 --- a/docker/cloudkitty/cloudkitty-api/extend_start.sh +++ b/docker/cloudkitty/cloudkitty-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/crane/extend_start.sh b/docker/crane/extend_start.sh index ada839e961..1277bea352 100644 --- a/docker/crane/extend_start.sh +++ b/docker/crane/extend_start.sh @@ -7,6 +7,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/cyborg/cyborg-api/extend_start.sh b/docker/cyborg/cyborg-api/extend_start.sh index a96619d932..1cc72590f3 100644 --- a/docker/cyborg/cyborg-api/extend_start.sh +++ b/docker/cyborg/cyborg-api/extend_start.sh @@ -10,6 +10,7 @@ fi if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/freezer/freezer-api/extend_start.sh b/docker/freezer/freezer-api/extend_start.sh index 9ce14e5044..c6c0960620 100755 --- a/docker/freezer/freezer-api/extend_start.sh +++ b/docker/freezer/freezer-api/extend_start.sh @@ -10,6 +10,7 @@ fi if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/glance/glance-api/Dockerfile.j2 b/docker/glance/glance-api/Dockerfile.j2 index 2eff6e383e..e6a972ab43 100644 --- a/docker/glance/glance-api/Dockerfile.j2 +++ b/docker/glance/glance-api/Dockerfile.j2 @@ -6,11 +6,14 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% import "macros.j2" as macros with context %} {% if base_distro in ['centos', 'oraclelinux'] %} - {% set glance_api_packages = ['qemu-img-ev'] %} + {% set glance_api_packages = ['nfs-utils', 'qemu-img-ev'] %} {% elif base_distro == 'rhel' %} - {% set glance_api_packages = ['qemu-img'] %} + {% set glance_api_packages = ['nfs-utils', 'qemu-img'] %} {% elif base_package_type == 'deb' %} - {% set glance_api_packages = ['qemu-utils'] %} + {% set glance_api_packages = [ + 'nfs-common', + 'qemu-utils' + ] %} {% endif %} {{ macros.install_packages(glance_api_packages | customizable("packages")) }} diff --git a/docker/gnocchi/gnocchi-api/extend_start.sh b/docker/gnocchi/gnocchi-api/extend_start.sh index e67dff0dff..5059551d2e 100644 --- a/docker/gnocchi/gnocchi-api/extend_start.sh +++ b/docker/gnocchi/gnocchi-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/heat/heat-base/extend_start.sh b/docker/heat/heat-base/extend_start.sh index ae72de96b1..5af0ef36d4 100644 --- a/docker/heat/heat-base/extend_start.sh +++ b/docker/heat/heat-base/extend_start.sh @@ -14,6 +14,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index 4c3ba13305..be788e1e36 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/docker/horizon/Dockerfile.j2 @@ -143,7 +143,9 @@ ADD plugins-archive / '/plugins/*' ] %} +# NOTE(hrw): to install horizon from unpacked sources we cannot have it in upper-constraints.txt RUN ln -s horizon-source/* horizon \ + && sed -i /^horizon=/d /requirements/upper-constraints.txt \ && {{ macros.install_pip(horizon_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/openstack-dashboard \ && cp -r /horizon/openstack_dashboard/conf/* /etc/openstack-dashboard/ \ diff --git a/docker/ironic/ironic-api/extend_start.sh b/docker/ironic/ironic-api/extend_start.sh index ebe85b893b..20811158c8 100644 --- a/docker/ironic/ironic-api/extend_start.sh +++ b/docker/ironic/ironic-api/extend_start.sh @@ -25,6 +25,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/ironic/ironic-conductor/Dockerfile.j2 b/docker/ironic/ironic-conductor/Dockerfile.j2 index ba62c50ec4..21cf20f1d1 100644 --- a/docker/ironic/ironic-conductor/Dockerfile.j2 +++ b/docker/ironic/ironic-conductor/Dockerfile.j2 @@ -13,6 +13,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'e2fsprogs', 'gdisk', 'ipmitool', + 'openssh-clients', 'openstack-ironic-conductor', 'openstack-ironic-staging-drivers', 'parted', @@ -67,6 +68,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'gdisk', 'ipmitool', 'ironic-conductor', + 'openssh-client', 'parted', 'psmisc', 'python3-ironic-inspector-client', @@ -88,6 +90,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'fuse', 'gdisk', 'ipmitool', + 'openssh-clients', 'parted', 'psmisc', 'qemu-img-ev', @@ -97,10 +100,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build ] %} {% if distro_python_version.startswith('3') %} {% set ironic_conductor_packages = ironic_conductor_packages + [ + 'python3-systemd', 'systemd-udev', ] %} {% else %} {% set ironic_conductor_packages = ironic_conductor_packages + [ + 'systemd-python', 'systemd', ] %} {% endif %} @@ -111,8 +116,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'e2fsprogs', 'gdisk', 'ipmitool', + 'openssh-client', 'parted', 'psmisc', + 'python-systemd', 'qemu-utils', 'shellinabox', 'udev', diff --git a/docker/ironic/ironic-pxe/extend_start.sh b/docker/ironic/ironic-pxe/extend_start.sh index 0ba57a834a..6d0234c1c2 100644 --- a/docker/ironic/ironic-pxe/extend_start.sh +++ b/docker/ironic/ironic-pxe/extend_start.sh @@ -45,6 +45,7 @@ fi if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/keystone/keystone-fernet/fetch_fernet_tokens.py b/docker/keystone/keystone-fernet/fetch_fernet_tokens.py index 0f739e9bf8..4371f9c402 100644 --- a/docker/keystone/keystone-fernet/fetch_fernet_tokens.py +++ b/docker/keystone/keystone-fernet/fetch_fernet_tokens.py @@ -43,12 +43,12 @@ def has_file(filename_path): def num_tokens(): - _, _, files = os.walk(TOKEN_PATH).next() + _, _, files = next(os.walk(TOKEN_PATH)) return len(files) def tokens_populated(expected): - return num_tokens() == int(expected) + return num_tokens() >= int(expected) def token_stale(seconds, filename='0'): @@ -71,7 +71,7 @@ def main(): help='Filename of token to check', default='0') parser.add_argument('-n', '--number', - help='Number of tokens that should exist', + help='Minimum number of tokens that should exist', required=True) args = parser.parse_args() diff --git a/docker/keystone/keystone/extend_start.sh b/docker/keystone/keystone/extend_start.sh index 0d8d3bc43f..be6a0e1def 100644 --- a/docker/keystone/keystone/extend_start.sh +++ b/docker/keystone/keystone/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/keystone/keystone/keystone_bootstrap.sh b/docker/keystone/keystone/keystone_bootstrap.sh index c140e97c73..15a79c3eb5 100644 --- a/docker/keystone/keystone/keystone_bootstrap.sh +++ b/docker/keystone/keystone/keystone_bootstrap.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -o pipefail + # NOTE(SamYaple): Kolla needs to wraps `keystone-manage bootstrap` to ensure # any change is reported correctly for idempotency. This script will exit with # valid json that can be parsed with information about if the task has failed @@ -29,7 +31,11 @@ function exit_json { } changed="false" -keystone_bootstrap=$(keystone-manage bootstrap --bootstrap-username "${USERNAME}" --bootstrap-password "${PASSWORD}" --bootstrap-project-name "${PROJECT}" --bootstrap-role-name "${ROLE}" --bootstrap-admin-url "${ADMIN_URL}" --bootstrap-internal-url "${INTERNAL_URL}" --bootstrap-public-url "${PUBLIC_URL}" --bootstrap-service-name "keystone" --bootstrap-region-id "${REGION}" 2>&1) +# NOTE(mgoddard): pipe through cat -v to remove unprintable control characters +# which prevent JSON decoding. +# NOTE(yoctozepto): also apply sed to escape double quotation marks +# and backslashes +keystone_bootstrap=$(keystone-manage bootstrap --bootstrap-username "${USERNAME}" --bootstrap-password "${PASSWORD}" --bootstrap-project-name "${PROJECT}" --bootstrap-role-name "${ROLE}" --bootstrap-admin-url "${ADMIN_URL}" --bootstrap-internal-url "${INTERNAL_URL}" --bootstrap-public-url "${PUBLIC_URL}" --bootstrap-service-name "keystone" --bootstrap-region-id "${REGION}" 2>&1 | cat -v | sed 's/\\/\\\\/g' | sed 's/"/\\"/g') if [[ $? != 0 ]]; then fail_json "${keystone_bootstrap}" fi diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2 index 72de96e6aa..ef72da3dc4 100644 --- a/docker/kolla-toolbox/Dockerfile.j2 +++ b/docker/kolla-toolbox/Dockerfile.j2 @@ -54,7 +54,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'virtualenv' ] %} -RUN {{ macros.install_pip(kolla_toolbox_pip_virtualenv_packages|customizable("pip_packages"), constraints=false) }} \ +RUN {{ macros.install_pip(kolla_toolbox_pip_virtualenv_packages | customizable("pip_virtualenv_packages"), constraints=false) }} \ && virtualenv --system-site-packages {{ virtualenv_path }} ENV PATH {{ virtualenv_path }}/bin:$PATH @@ -64,9 +64,14 @@ ENV PATH {{ virtualenv_path }}/bin:$PATH '"cmd2<0.9.0"', 'influxdb', 'mysqlclient', + '"openstacksdk<0.28.0"', 'os-client-config==1.29.0', 'pbr==4.0.0', 'pymongo', + '"python-cinderclient<5.0.0"', + '"python-glanceclient<2.17.0"', + '"python-keystoneclient<3.20.0"', + '"python-novaclient<14.0.0"', 'python-openstackclient==3.14.0', 'pytz', 'pyudev', diff --git a/docker/manila/manila-api/extend_start.sh b/docker/manila/manila-api/extend_start.sh index 3e5347ac5b..ea4a64f5f3 100644 --- a/docker/manila/manila-api/extend_start.sh +++ b/docker/manila/manila-api/extend_start.sh @@ -15,6 +15,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/manila/manila-share/Dockerfile.j2 b/docker/manila/manila-share/Dockerfile.j2 index bdd08fb658..80acab15c3 100644 --- a/docker/manila/manila-share/Dockerfile.j2 +++ b/docker/manila/manila-share/Dockerfile.j2 @@ -17,6 +17,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% set manila_share_packages = [ 'manila-share', 'ceph-common', + 'python3-cephfs', 'python3-rados', 'python3-rbd', 'sqlite3' diff --git a/docker/mariadb/Dockerfile.j2 b/docker/mariadb/Dockerfile.j2 index 4e2f57f489..c02c6214a9 100644 --- a/docker/mariadb/Dockerfile.j2 +++ b/docker/mariadb/Dockerfile.j2 @@ -27,6 +27,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build ] %} {% if base_distro == 'debian' %} {% set mariadb_packages = mariadb_packages + [ + 'mariadb-backup', 'mariadb-server' ] %} {% else %} @@ -52,6 +53,9 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start \ RUN mkdir -p /var/run/mysqld && chown mysql /var/run/mysqld && chmod 755 /var/run/mysqld {% endif %} +COPY backup.sh /usr/local/bin/kolla_mariadb_backup.sh +RUN chmod 755 /usr/local/bin/kolla_mariadb_backup.sh + {% if use_dumb_init %} {% block mariadb_entrypoint %} # NOTE(mgoddard): Override the dumb-init arguments to avoid passing diff --git a/docker/mariadb/backup.sh b/docker/mariadb/backup.sh new file mode 100644 index 0000000000..e56450171f --- /dev/null +++ b/docker/mariadb/backup.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +# Execute a full backup +backup_full() { + echo "Taking a full backup" + mariabackup \ + --defaults-file=/etc/mysql/my.cnf \ + --backup \ + --stream=xbstream \ + --history=$(date +%d-%m-%Y) | gzip > \ + $BACKUP_DIR/mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz +} + +# Execute an incremental backup +backup_incremental() { + echo "Taking an incremental backup" + mariabackup \ + --defaults-file=/etc/mysql/my.cnf \ + --backup \ + --stream=xbstream \ + --incremental-history-name=$(date +%d-%m-%Y) \ + --history=$(date +%d-%m-%Y) | gzip > \ + $BACKUP_DIR/incremental-$(date +%H)-mysqlbackup-$(date +%d-%m-%Y-%s).qp.xbc.xbs.gz +} + +BACKUP_DIR=/backup/ +cd $BACKUP_DIR + +if [ -n $BACKUP_TYPE ]; then + case $BACKUP_TYPE in + "full") + backup_full + ;; + "incremental") + backup_incremental + ;; + *) + echo "Only full or incremental options are supported." + exit 1 + ;; + esac +else + echo "You need to specify either full or incremental backup options." + exit 1 +fi diff --git a/docker/mistral/mistral-api/extend_start.sh b/docker/mistral/mistral-api/extend_start.sh index 4953802b19..65e9db22cd 100644 --- a/docker/mistral/mistral-api/extend_start.sh +++ b/docker/mistral/mistral-api/extend_start.sh @@ -15,6 +15,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/monasca/monasca-api/extend_start.sh b/docker/monasca/monasca-api/extend_start.sh index 5ea66ca4c0..f52868035c 100644 --- a/docker/monasca/monasca-api/extend_start.sh +++ b/docker/monasca/monasca-api/extend_start.sh @@ -14,6 +14,7 @@ fi if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/monasca/monasca-grafana/Dockerfile.j2 b/docker/monasca/monasca-grafana/Dockerfile.j2 index 00004446da..d6c697ad1f 100644 --- a/docker/monasca/monasca-grafana/Dockerfile.j2 +++ b/docker/monasca/monasca-grafana/Dockerfile.j2 @@ -50,6 +50,9 @@ ARG monasca_grafana_url=https://github.com/monasca/grafana/archive/$monasca_graf {% block monasca_grafana_install %} # NOTE(mgoddard): Pinning rake because rake 13.0.0 depends on Ruby 2.2, and CentOS 7 only provides # Ruby 2.0. +# NOTE(yoctozepto): Update npm to 6.x version to avoid issues with metadata parsing. +# NPM installs itself in /usr/local/bin (the default in Ubuntu) which is not in the PATH. +# This is forced for all distros to avoid conflicts with native packages. RUN gem install rake:"~>12" fpm \ && curl -sSL -o /tmp/monasca-grafana.tgz ${monasca_grafana_url} \ && mkdir -p ${monasca_grafana_build_path} \ @@ -57,7 +60,9 @@ RUN gem install rake:"~>12" fpm \ && rm -f /tmp/monasca-grafana.tgz \ && cd ${monasca_grafana_build_path} \ && go run build.go setup \ - && npm install \ + && npm config set prefix /usr/local -g \ + && npm install npm@6.x -g \ + && /usr/local/bin/npm install \ && go run build.go build package \ && mv ${monasca_grafana_build_path}/dist /grafana_pkgs \ && rm -rf /grafana diff --git a/docker/monasca/monasca-log-api/extend_start.sh b/docker/monasca/monasca-log-api/extend_start.sh index bcccdf1749..d343ab26a1 100644 --- a/docker/monasca/monasca-log-api/extend_start.sh +++ b/docker/monasca/monasca-log-api/extend_start.sh @@ -7,6 +7,7 @@ SERVICE="monasca-log-api" if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 index ec61c797f9..022ea35061 100644 --- a/docker/neutron/neutron-base/Dockerfile.j2 +++ b/docker/neutron/neutron-base/Dockerfile.j2 @@ -137,6 +137,7 @@ ADD plugins-archive / ] %} RUN ln -s neutron-base-source/* neutron \ + && sed -i /^neutron=/d /requirements/upper-constraints.txt \ && {{ macros.install_pip(neutron_base_pip_packages | customizable("pip_packages")) }} \ && mkdir -p /etc/neutron /usr/share/neutron \ && cp -r /neutron/etc/* /etc/neutron/ \ diff --git a/docker/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh index 428d8945a0..3d958253e0 100644 --- a/docker/nova/nova-api/extend_start.sh +++ b/docker/nova/nova-api/extend_start.sh @@ -27,6 +27,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2 index 8e76278c1a..e4e2176978 100644 --- a/docker/nova/nova-compute/Dockerfile.j2 +++ b/docker/nova/nova-compute/Dockerfile.j2 @@ -20,7 +20,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'openvswitch', 'parted', 'sysfsutils', - 'targetcli' + 'targetcli', + 'xfsprogs' ] %} {% if distro_python_version.startswith('3') %} @@ -61,7 +62,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'python3-rbd', 'python3-rtslib-fb', 'sysfsutils', - 'targetcli-fb' + 'targetcli-fb', + 'xfsprogs' ] %} {{ macros.install_packages(nova_compute_packages | customizable("packages")) }} @@ -88,7 +90,8 @@ RUN rm -f /etc/nova/nova-compute.conf 'python-rtslib', 'qemu-img-ev', 'sysfsutils', - 'targetcli' + 'targetcli', + 'xfsprogs' ] %} {% elif base_package_type == 'deb' %} @@ -107,7 +110,8 @@ RUN rm -f /etc/nova/nova-compute.conf 'python-libvirt', 'python-rtslib-fb', 'qemu-utils', - 'targetcli-fb' + 'targetcli-fb', + 'xfsprogs' ] %} {% if base_arch == "aarch64" %} diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2 index fb75e443a8..003bd9d3b3 100644 --- a/docker/nova/nova-libvirt/Dockerfile.j2 +++ b/docker/nova/nova-libvirt/Dockerfile.j2 @@ -31,6 +31,16 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build ] %} {% endif %} + {% if base_arch == 'x86_64' %} + {% set nova_libvirt_packages = nova_libvirt_packages + [ + 'OVMF' + ] %} + {% elif base_arch == 'aarch64' %} + {% set nova_libvirt_packages = nova_libvirt_packages + [ + 'AAVMF' + ] %} + {% endif %} + {% elif base_package_type == 'deb' %} {% set nova_libvirt_packages = [ @@ -54,6 +64,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build ] %} {% elif base_arch == "x86_64" %} {% set nova_libvirt_packages = nova_libvirt_packages + [ + 'ovmf', 'qemu-kvm' ] %} {% endif %} @@ -78,6 +89,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build RUN rm -f /etc/libvirt/qemu/networks/default.xml /etc/libvirt/qemu/networks/autostart/default.xml +{% elif base_package_type == 'rpm' %} + + {% if base_arch == 'x86_64' %} +# NOTE(jeffrey4l): for x86_64, nova will validate the existence of /usr/share/OVMF/OVMF_CODE.fd +RUN ln -sf /usr/share/OVMF/OVMF_CODE.secboot.fd /usr/share/OVMF/OVMF_CODE.fd + {% endif %} + {% endif %} COPY extend_start.sh /usr/local/bin/kolla_extend_start diff --git a/docker/octavia/octavia-api/extend_start.sh b/docker/octavia/octavia-api/extend_start.sh index 48a6751cb1..d6cacba528 100644 --- a/docker/octavia/octavia-api/extend_start.sh +++ b/docker/octavia/octavia-api/extend_start.sh @@ -14,6 +14,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 89995061e5..20659608f5 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -190,6 +190,7 @@ ENV DEBIAN_FRONTEND noninteractive 'python3-designateclient', 'python3-elasticsearch', 'python3-etcd', + 'python3-etcd3gw', 'python3-gnocchiclient', 'python3-heatclient', 'python3-ironicclient', diff --git a/docker/panko/panko-api/extend_start.sh b/docker/panko/panko-api/extend_start.sh index 423a8e2b85..6cfb322eb1 100644 --- a/docker/panko/panko-api/extend_start.sh +++ b/docker/panko/panko-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 b/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 index 56552a3184..90b5fa46a5 100644 --- a/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 +++ b/docker/prometheus/prometheus-blackbox-exporter/Dockerfile.j2 @@ -3,15 +3,30 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% block prometheus_blackbox_exporter_header %}{% endblock %} +{% import "macros.j2" as macros with context %} + {% block prometheus_blackbox_exporter_repository_version %} -ENV blackbox_exporter_version=0.13.0 +ENV blackbox_exporter_version=0.14.0 {% endblock %} +{% if base_package_type == 'rpm' %} + {% set blackbox_packages = [ + 'libcap' + ] %} +{% elif base_package_type == 'deb' %} + {% set blackbox_packages = [ + 'libcap2-bin' + ] %} +{% endif %} + +{{ macros.install_packages(blackbox_packages | customizable("packages")) }} + {% block prometheus_blackbox_exporter_install %} RUN curl -sSL -o /tmp/blackbox_exporter.tar.gz https://github.com/prometheus/blackbox_exporter/releases/download/v${blackbox_exporter_version}/blackbox_exporter-${blackbox_exporter_version}.linux-{{debian_arch}}.tar.gz \ && tar xvf /tmp/blackbox_exporter.tar.gz -C /opt/ \ && rm -f /tmp/blackbox_exporter.tar.gz \ && ln -s /opt/blackbox_exporter* /opt/blackbox_exporter +RUN setcap cap_net_raw+ep /opt/blackbox_exporter/blackbox_exporter {% endblock %} {% block prometheus_blackbox_exporter_footer %}{% endblock %} diff --git a/docker/rally/extend_start.sh b/docker/rally/extend_start.sh index e490d8b884..6c1de1f11d 100644 --- a/docker/rally/extend_start.sh +++ b/docker/rally/extend_start.sh @@ -10,6 +10,12 @@ fi # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases # of the KOLLA_BOOTSTRAP variable being set, including empty. if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then - rally-manage db create || rally-manage db upgrade + # NOTE(osmanlicilegi): "rally-manage db" command was deprecated since 0.10.0 but + # Ubuntu ships 0.9.1 for Bionic. + if [[ ${KOLLA_BASE_DISTRO} == "ubuntu" && ${KOLLA_INSTALL_TYPE} == "binary" ]]; then + rally-manage db create || rally-manage db upgrade + else + rally db create || rally db upgrade + fi exit 0 fi diff --git a/docker/sensu/sensu-client/Dockerfile.j2 b/docker/sensu/sensu-client/Dockerfile.j2 index 51913b340e..9ccd4f3ae2 100644 --- a/docker/sensu/sensu-client/Dockerfile.j2 +++ b/docker/sensu/sensu-client/Dockerfile.j2 @@ -61,7 +61,6 @@ RUN echo '{{ image_name }} not yet available for {{ base_distro }}' \ # Let's cap them to the known major version that works with the ruby shipped on # rhel/centos/oraclelinux (currently 2.0) {% set sensu_plugins = [ - 'ceph:"~>1"', 'cpu-checks:"~>1"', 'disk-checks:"~>2"', 'dns:"~>1"', @@ -79,7 +78,6 @@ RUN echo '{{ image_name }} not yet available for {{ base_distro }}' \ 'network-checks:"~>2"', 'ntp:"~>1"', 'openstack:"~>1"', - 'process-checks:"~>2"', 'rabbitmq:"~>3"', 'redis:"~>2"', 'uptime-checks:"~>1"', diff --git a/docker/swift/swift-base/swift_sudoers b/docker/swift/swift-base/swift_sudoers index b67c47df31..752fe0e2ee 100644 --- a/docker/swift/swift-base/swift_sudoers +++ b/docker/swift/swift-base/swift_sudoers @@ -1,3 +1,3 @@ -swift ALL=(root) NOPASSWD: /bin/chown -R swift\:swift /srv/node -swift ALL=(root) NOPASSWD: /usr/bin/chown -R swift\:swift /srv/node +swift ALL=(root) NOPASSWD: /bin/find /srv/node/ -maxdepth 1 -type d -execdir chown swift\:swift {} \\+ +swift ALL=(root) NOPASSWD: /usr/bin/find /srv/node/ -maxdepth 1 -type d -execdir chown swift\:swift {} \\+ swift ALL=(root) NOPASSWD: /var/lib/kolla/venv/bin/swift-rootwrap /etc/swift/rootwrap.conf * diff --git a/docker/swift/swift-object-expirer/Dockerfile.j2 b/docker/swift/swift-object-expirer/Dockerfile.j2 index 82ae2249c0..bbca2617af 100644 --- a/docker/swift/swift-object-expirer/Dockerfile.j2 +++ b/docker/swift/swift-object-expirer/Dockerfile.j2 @@ -10,7 +10,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build # RDO packages swift-object-expirer in openstack-swift-proxy {% set swift_object_expirer_packages = ['openstack-swift-proxy'] %} {% elif base_package_type == 'deb' %} - {% set swift_object_expirer_packages = ['swift-object'] %} + {% set swift_object_expirer_packages = ['swift-object-expirer'] %} {% endif %} {{ macros.install_packages(swift_object_expirer_packages | customizable("packages")) }} diff --git a/docker/swift/swift-rsyncd/extend_start.sh b/docker/swift/swift-rsyncd/extend_start.sh index 86d24724bc..33ff2bf2cf 100644 --- a/docker/swift/swift-rsyncd/extend_start.sh +++ b/docker/swift/swift-rsyncd/extend_start.sh @@ -1,4 +1,4 @@ #!/bin/bash -sudo chown -R swift:swift /srv/node +sudo find /srv/node/ -maxdepth 1 -type d -execdir chown swift:swift {} \+ mkdir -p /var/lib/swift/lock diff --git a/docker/tripleo-ui/extend_start.sh b/docker/tripleo-ui/extend_start.sh index ada839e961..1277bea352 100644 --- a/docker/tripleo-ui/extend_start.sh +++ b/docker/tripleo-ui/extend_start.sh @@ -7,6 +7,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/vitrage/vitrage-api/extend_start.sh b/docker/vitrage/vitrage-api/extend_start.sh index 3504f6ab20..0a6204ea55 100644 --- a/docker/vitrage/vitrage-api/extend_start.sh +++ b/docker/vitrage/vitrage-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/vitrage/vitrage-persistor/Dockerfile.j2 b/docker/vitrage/vitrage-persistor/Dockerfile.j2 new file mode 100644 index 0000000000..f07d930f33 --- /dev/null +++ b/docker/vitrage/vitrage-persistor/Dockerfile.j2 @@ -0,0 +1,42 @@ +FROM {{ namespace }}/{{ image_prefix }}vitrage-base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block vitrage_persistor_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% if install_type == 'binary' %} + + {% if base_package_type == 'rpm' %} + + {% set vitrage_persistor_packages = [ + 'openstack-vitrage-persistor' + ] %} + +{{ macros.install_packages(vitrage_persistor_packages | customizable("packages")) }} + + {% elif base_package_type == 'deb' %} + {% if base_distro == 'debian' %} + + {% set vitrage_persistor_packages = [ + 'vitrage-persistor' + ] %} + +{{ macros.install_packages(vitrage_persistor_packages | customizable("packages")) }} + + {% else %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} + {% endif %} + +{% endif %} + +{% block vitrage_persistor_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER vitrage diff --git a/docker/zaqar/zaqar-wsgi/extend_start.sh b/docker/zaqar/zaqar-wsgi/extend_start.sh index ada839e961..1277bea352 100755 --- a/docker/zaqar/zaqar-wsgi/extend_start.sh +++ b/docker/zaqar/zaqar-wsgi/extend_start.sh @@ -7,6 +7,7 @@ if [[ "$(whoami)" == 'root' ]]; then if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/docker/zun/zun-api/extend_start.sh b/docker/zun/zun-api/extend_start.sh index 92f6690648..6136e6b24a 100644 --- a/docker/zun/zun-api/extend_start.sh +++ b/docker/zun/zun-api/extend_start.sh @@ -5,6 +5,7 @@ if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then # Loading Apache2 ENV variables . /etc/apache2/envvars + install -d /var/run/apache2/ rm -rf /var/run/apache2/* else rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd* diff --git a/kolla/common/config.py b/kolla/common/config.py index a1e000c251..acdc790931 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -223,7 +223,7 @@ ' push properly')), cfg.IntOpt('retries', short='r', default=3, min=0, help='The number of times to retry while building'), - cfg.MultiOpt('regex', types.String(), positional=True, + cfg.MultiOpt('regex', types.String(), positional=True, required=False, help=('Build only images matching regex and its' ' dependencies')), cfg.StrOpt('registry', @@ -315,7 +315,7 @@ 'bifrost-base': { 'type': 'url', 'location': ('$tarballs_base/bifrost/' - 'bifrost-6.0.2.tar.gz')}, + 'bifrost-6.0.3.tar.gz')}, 'blazar-base': { 'type': 'url', 'location': ('$tarballs_base/blazar/' @@ -323,7 +323,7 @@ 'ceilometer-base': { 'type': 'url', 'location': ('$tarballs_base/ceilometer/' - 'ceilometer-12.0.0.tar.gz')}, + 'ceilometer-12.1.0.tar.gz')}, 'ceilometer-base-plugin-panko': { 'type': 'url', 'location': ('$tarballs_base/panko/' @@ -331,7 +331,7 @@ 'cinder-base': { 'type': 'url', 'location': ('$tarballs_base/cinder/' - 'cinder-14.0.2.tar.gz')}, + 'cinder-14.0.4.tar.gz')}, 'congress-base': { 'type': 'url', 'location': ('$tarballs_base/congress/' @@ -370,10 +370,10 @@ 'glance-base': { 'type': 'url', 'location': ('$tarballs_base/glance/' - 'glance-18.0.0.tar.gz')}, + 'glance-18.0.1.tar.gz')}, 'gnocchi-base': { 'type': 'git', - 'reference': '4.3.2', + 'reference': '4.3.4', 'location': ('https://github.com/gnocchixyz/' 'gnocchi.git')}, 'heat-base': { @@ -383,7 +383,7 @@ 'horizon': { 'type': 'url', 'location': ('$tarballs_base/horizon/' - 'horizon-15.1.0.tar.gz')}, + 'horizon-15.2.0.tar.gz')}, 'horizon-plugin-blazar-dashboard': { 'type': 'url', 'location': ('$tarballs_base/blazar-dashboard/' @@ -403,7 +403,7 @@ 'horizon-plugin-fwaas-dashboard': { 'type': 'url', 'location': ('$tarballs_base/neutron-fwaas-dashboard/' - 'neutron-fwaas-dashboard-2.0.1.tar.gz')}, + 'neutron-fwaas-dashboard-2.0.2.tar.gz')}, 'horizon-plugin-freezer-web-ui': { 'type': 'url', 'location': ('$tarballs_base/freezer-web-ui/' @@ -415,7 +415,7 @@ 'horizon-plugin-ironic-ui': { 'type': 'url', 'location': ('$tarballs_base/ironic-ui/' - 'ironic-ui-3.4.0.tar.gz')}, + 'ironic-ui-3.4.1.tar.gz')}, 'horizon-plugin-karbor-dashboard': { 'type': 'url', 'location': ('$tarballs_base/karbor-dashboard/' @@ -427,11 +427,11 @@ 'horizon-plugin-manila-ui': { 'type': 'url', 'location': ('$tarballs_base/manila-ui/' - 'manila-ui-2.18.0.tar.gz')}, + 'manila-ui-2.18.1.tar.gz')}, 'horizon-plugin-mistral-dashboard': { 'type': 'url', 'location': ('$tarballs_base/mistral-dashboard/' - 'mistral-dashboard-8.0.0.tar.gz')}, + 'mistral-dashboard-8.1.0.tar.gz')}, 'horizon-plugin-monasca-ui': { 'type': 'url', 'location': ('$tarballs_base/monasca-ui/' @@ -447,7 +447,7 @@ 'horizon-plugin-neutron-vpnaas-dashboard': { 'type': 'url', 'location': ('$tarballs_base/neutron-vpnaas-dashboard/' - 'neutron-vpnaas-dashboard-1.5.1.tar.gz')}, + 'neutron-vpnaas-dashboard-1.5.2.tar.gz')}, 'horizon-plugin-octavia-dashboard': { 'type': 'url', 'location': ('$tarballs_base/octavia-dashboard/' @@ -455,7 +455,7 @@ 'horizon-plugin-sahara-dashboard': { 'type': 'url', 'location': ('$tarballs_base/sahara-dashboard/' - 'sahara-dashboard-10.0.0.tar.gz')}, + 'sahara-dashboard-10.0.1.tar.gz')}, 'horizon-plugin-searchlight-ui': { 'type': 'url', 'location': ('$tarballs_base/searchlight-ui/' @@ -495,11 +495,11 @@ 'ironic-base': { 'type': 'url', 'location': ('$tarballs_base/ironic/' - 'ironic-12.1.2.tar.gz')}, + 'ironic-12.1.4.tar.gz')}, 'ironic-inspector': { 'type': 'url', 'location': ('$tarballs_base/ironic-inspector/' - 'ironic-inspector-8.2.3.tar.gz')}, + 'ironic-inspector-8.2.4.tar.gz')}, 'karbor-base': { 'type': 'url', 'location': ('$tarballs_base/karbor/' @@ -519,15 +519,15 @@ 'magnum-base': { 'type': 'url', 'location': ('$tarballs_base/magnum/' - 'magnum-8.1.0.tar.gz')}, + 'magnum-8.2.0.tar.gz')}, 'manila-base': { 'type': 'url', 'location': ('$tarballs_base/manila/' - 'manila-8.0.1.tar.gz')}, + 'manila-8.1.0.tar.gz')}, 'mistral-base': { 'type': 'url', 'location': ('$tarballs_base/mistral/' - 'mistral-8.0.0.tar.gz')}, + 'mistral-8.1.0.tar.gz')}, 'mistral-base-plugin-tacker': { 'type': 'url', 'location': ('$tarballs_base/tacker/' @@ -572,11 +572,11 @@ 'neutron-base': { 'type': 'url', 'location': ('$tarballs_base/neutron/' - 'neutron-14.0.2.tar.gz')}, + 'neutron-14.1.0.tar.gz')}, 'neutron-base-plugin-neutron-fwaas': { 'type': 'url', 'location': ('$tarballs_base/neutron-fwaas/' - 'neutron-fwaas-14.0.0.tar.gz')}, + 'neutron-fwaas-14.0.1.tar.gz')}, 'neutron-base-plugin-networking-ansible': { 'type': 'url', 'location': ('$tarballs_base/networking-ansible/' @@ -596,11 +596,11 @@ 'neutron-base-plugin-vmware-nsx': { 'type': 'url', 'location': ('$tarballs_base/vmware-nsx/' - 'vmware-nsx-master.tar.gz')}, + 'vmware-nsx-14.0.0.tar.gz')}, 'neutron-base-plugin-vpnaas-agent': { 'type': 'url', 'location': ('$tarballs_base/neutron-vpnaas/' - 'neutron-vpnaas-14.0.0.tar.gz')}, + 'neutron-vpnaas-14.0.1.tar.gz')}, 'neutron-bgp-dragent': { 'type': 'url', 'location': ('$tarballs_base/neutron-dynamic-routing/' @@ -608,11 +608,11 @@ 'neutron-lbaas-agent': { 'type': 'url', 'location': ('$tarballs_base/neutron-lbaas/' - 'neutron-lbaas-14.0.0.tar.gz')}, + 'neutron-lbaas-14.0.1.tar.gz')}, 'neutron-server-opendaylight-plugin-networking-odl': { 'type': 'url', 'location': ('$tarballs_base/networking-odl/' - 'networking-odl-14.0.0.tar.gz')}, + 'networking-odl-14.0.1.tar.gz')}, 'neutron-server-opendaylight-plugin-networking-bgpvpn': { 'type': 'url', 'location': ('$tarballs_base/networking-bgpvpn/' @@ -636,7 +636,7 @@ 'neutron-server-plugin-neutron-lbaas': { 'type': 'url', 'location': ('$tarballs_base/neutron-lbaas/' - 'neutron-lbaas-14.0.0.tar.gz')}, + 'neutron-lbaas-14.0.1.tar.gz')}, 'neutron-server-plugin-vmware-nsxlib': { 'type': 'url', 'location': ('$tarballs_base/vmware-nsxlib/' @@ -644,19 +644,19 @@ 'neutron-vpnaas-agent': { 'type': 'url', 'location': ('$tarballs_base/neutron-vpnaas/' - 'neutron-vpnaas-14.0.0.tar.gz')}, + 'neutron-vpnaas-14.0.1.tar.gz')}, 'neutron-server-ovn-plugin-networking-ovn': { 'type': 'url', 'location': ('$tarballs_base/networking-ovn/' - 'networking-ovn-6.0.0.tar.gz')}, + 'networking-ovn-6.0.1.tar.gz')}, 'neutron-metadata-agent-ovn-plugin-networking-ovn': { 'type': 'url', 'location': ('$tarballs_base/networking-ovn/' - 'networking-ovn-6.0.0.tar.gz')}, + 'networking-ovn-6.0.1.tar.gz')}, 'nova-base': { 'type': 'url', 'location': ('$tarballs_base/nova/' - 'nova-19.0.2.tar.gz')}, + 'nova-19.1.0.tar.gz')}, 'nova-base-plugin-blazar': { 'type': 'url', 'location': ('$tarballs_base/blazar-nova/' @@ -672,7 +672,7 @@ 'octavia-base': { 'type': 'url', 'location': ('$tarballs_base/octavia/' - 'octavia-4.1.0.tar.gz')}, + 'octavia-4.1.1.tar.gz')}, 'panko-base': { 'type': 'url', 'location': ('$tarballs_base/panko/' @@ -776,7 +776,7 @@ 'sahara-base': { 'type': 'url', 'location': ('$tarballs_base/sahara/' - 'sahara-10.0.0.tar.gz')}, + 'sahara-10.0.1.tar.gz')}, 'sahara-base-plugin-ambari': { 'type': 'url', 'location': ('$tarballs_base/sahara-plugin-ambari/' @@ -784,11 +784,11 @@ 'sahara-base-plugin-cdh': { 'type': 'url', 'location': ('$tarballs_base/sahara-plugin-cdh/' - 'sahara-plugin-cdh-1.0.0.tar.gz')}, + 'sahara-plugin-cdh-1.0.1.tar.gz')}, 'sahara-base-plugin-mapr': { 'type': 'url', 'location': ('$tarballs_base/sahara-plugin-mapr/' - 'sahara-plugin-mapr-1.0.0.tar.gz')}, + 'sahara-plugin-mapr-1.0.1.tar.gz')}, 'sahara-base-plugin-spark': { 'type': 'url', 'location': ('$tarballs_base/sahara-plugin-spark/' @@ -816,7 +816,7 @@ 'swift-base': { 'type': 'url', 'location': ('$tarballs_base/swift/' - 'swift-2.21.0.tar.gz')}, + 'swift-2.21.1.tar.gz')}, 'tacker-base': { 'type': 'url', 'location': ('$tarballs_base/tacker/' diff --git a/releasenotes/notes/add-etcd3gw-to-ubuntu-binary-1aaf4b5e1ee670ee.yaml b/releasenotes/notes/add-etcd3gw-to-ubuntu-binary-1aaf4b5e1ee670ee.yaml new file mode 100644 index 0000000000..a56fd9400f --- /dev/null +++ b/releasenotes/notes/add-etcd3gw-to-ubuntu-binary-1aaf4b5e1ee670ee.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes unavailability of an etcd3-compatible tooz coordination driver in + Ubuntu binary images by installing ``python3-etcd3gw``. See `bug 1852086 + `__ for details. diff --git a/releasenotes/notes/add-openssh-clients-to-ironic-conductor-7275bd65dfe238a6.yaml b/releasenotes/notes/add-openssh-clients-to-ironic-conductor-7275bd65dfe238a6.yaml new file mode 100644 index 0000000000..d7d1fef2f4 --- /dev/null +++ b/releasenotes/notes/add-openssh-clients-to-ironic-conductor-7275bd65dfe238a6.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Adds openssh-clients to ironic conductor container build to enable + ansible deploy interface to function properly. diff --git a/releasenotes/notes/add-python3-systemd-for-ironic-source-9a6883496e101da9.yaml b/releasenotes/notes/add-python3-systemd-for-ironic-source-9a6883496e101da9.yaml new file mode 100644 index 0000000000..c1ed377f2f --- /dev/null +++ b/releasenotes/notes/add-python3-systemd-for-ironic-source-9a6883496e101da9.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Adds python3-systemd package to ironic-conductor source based + container to allow the Ansible deploy interface to function + correctly. Fixes bug #1861427 diff --git a/releasenotes/notes/bug-1814552-a037354969dcf7e5.yaml b/releasenotes/notes/bug-1814552-a037354969dcf7e5.yaml new file mode 100644 index 0000000000..fbff1f038c --- /dev/null +++ b/releasenotes/notes/bug-1814552-a037354969dcf7e5.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fix inability to run UEFI-based images/instances by installing UEFI packages + also in nova-libvirt image which is not based on nova-base. + `LP#1814552 `__ diff --git a/releasenotes/notes/bug-1859047-d41762357da8ae0b.yaml b/releasenotes/notes/bug-1859047-d41762357da8ae0b.yaml new file mode 100644 index 0000000000..68e8d5f4fa --- /dev/null +++ b/releasenotes/notes/bug-1859047-d41762357da8ae0b.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fix bug which caused Keystone Fernet key distribution to fail on Python 3 systems, + by adapting fetch-fernet-keys.py script to work on Python 3. + `LP#1859047 `__ diff --git a/releasenotes/notes/bug-1866017-9e31ddbfca9fd0f4.yaml b/releasenotes/notes/bug-1866017-9e31ddbfca9fd0f4.yaml new file mode 100644 index 0000000000..264a56b3eb --- /dev/null +++ b/releasenotes/notes/bug-1866017-9e31ddbfca9fd0f4.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Keystone bootstrap could produce invalid json. + `LP#1866017 `__ diff --git a/releasenotes/notes/bug-1866827-5351ec43486d7f33.yaml b/releasenotes/notes/bug-1866827-5351ec43486d7f33.yaml new file mode 100644 index 0000000000..63fae75ec0 --- /dev/null +++ b/releasenotes/notes/bug-1866827-5351ec43486d7f33.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes the MAX_NUMBER variable usage when running the database online + migrations for cinder. diff --git a/releasenotes/notes/bug-1868574.yaml b/releasenotes/notes/bug-1868574.yaml new file mode 100644 index 0000000000..b23013a414 --- /dev/null +++ b/releasenotes/notes/bug-1868574.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes Glance inability to use Cinder NFS backend for images by including + NFS client components in the Glance API image. + `LP#1868574 `__ diff --git a/releasenotes/notes/bug-1869319-aa032c1330b540dc.yaml b/releasenotes/notes/bug-1869319-aa032c1330b540dc.yaml new file mode 100644 index 0000000000..1e6cd825f1 --- /dev/null +++ b/releasenotes/notes/bug-1869319-aa032c1330b540dc.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Adds missing ``vitrage-persistor`` image, required by Vitrage + deployments for storing data. + `LP#1869319 `__ diff --git a/releasenotes/notes/fix-keystone-bootstrap-unprintable-e01b088ef821fd18.yaml b/releasenotes/notes/fix-keystone-bootstrap-unprintable-e01b088ef821fd18.yaml new file mode 100644 index 0000000000..885e0e7606 --- /dev/null +++ b/releasenotes/notes/fix-keystone-bootstrap-unprintable-e01b088ef821fd18.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixes an issue with keystone bootstrap where an error message emitted by + the ``keystone-manage bootstrap`` command is hidden. See `bug 1855701 + `__ for details. diff --git a/releasenotes/notes/fix-kolla-toolbox-venv-customisation-dc66f7bc621908a8.yaml b/releasenotes/notes/fix-kolla-toolbox-venv-customisation-dc66f7bc621908a8.yaml new file mode 100644 index 0000000000..9195ebdefa --- /dev/null +++ b/releasenotes/notes/fix-kolla-toolbox-venv-customisation-dc66f7bc621908a8.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fix ``kolla_toolbox_pip_virtualenv_packages`` customisation. + `LP#1865119 `__ diff --git a/releasenotes/notes/fixes-ubuntu-binary-rally-cf5af7f5d3083c44.yaml b/releasenotes/notes/fixes-ubuntu-binary-rally-cf5af7f5d3083c44.yaml new file mode 100644 index 0000000000..de84c1c491 --- /dev/null +++ b/releasenotes/notes/fixes-ubuntu-binary-rally-cf5af7f5d3083c44.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes Rally for Ubuntu binary deployment. + `LP#1872283 `__ diff --git a/releasenotes/notes/rally-manage-fix-8c98a0beb6dae50e.yaml b/releasenotes/notes/rally-manage-fix-8c98a0beb6dae50e.yaml new file mode 100644 index 0000000000..fb3def424f --- /dev/null +++ b/releasenotes/notes/rally-manage-fix-8c98a0beb6dae50e.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Converts deprecated command ``rally-manage db`` to ``rally db``. + `LP#1856693 `__ diff --git a/releasenotes/notes/swift-object-expirer-fix-b837de80cea4fb8e.yaml b/releasenotes/notes/swift-object-expirer-fix-b837de80cea4fb8e.yaml new file mode 100644 index 0000000000..255acf26e8 --- /dev/null +++ b/releasenotes/notes/swift-object-expirer-fix-b837de80cea4fb8e.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes swift-object-expirer for Debian and Ubuntu binary images. + `LP#1859607 `__ diff --git a/releasenotes/notes/upgrade-gnocchi-to-4.3.4-297be1fc7e3b3bd5.yaml b/releasenotes/notes/upgrade-gnocchi-to-4.3.4-297be1fc7e3b3bd5.yaml new file mode 100644 index 0000000000..68f0789fca --- /dev/null +++ b/releasenotes/notes/upgrade-gnocchi-to-4.3.4-297be1fc7e3b3bd5.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Upgrades Gnocchi from 4.3.2 to 4.3.4. This version includes several bug + fixes, in particular one for `an issue when coordination is disabled + `__. This minor version + upgrade shouldn't require any intervention from the operator. diff --git a/tests/playbooks/post.yml b/tests/playbooks/post.yml index 00f71f6b9b..a7bc9efac5 100644 --- a/tests/playbooks/post.yml +++ b/tests/playbooks/post.yml @@ -61,28 +61,5 @@ # Parse build logs and extract pkg install info {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/files/process_build_logs.py -l build -b {{ base_distro }} > packages-info.txt - - # rename files to .txt; this is so that when displayed via - # logs.openstack.org clicking results in the browser shows the - # files, rather than trying to send it to another app or make you - # download it, etc. - - # firstly, rename all .log files to .txt files - for f in $(find . -name "*.log"); do - mv $f ${f/.log/.txt} - done - - # Update symlinks to new file names - for f in $(find . -name "*FAILED*"); do - mv ${f} ${f}.gz - ln -sf ${f#*/000_FAILED_}.gz ${f}.gz - done - - # append .txt to all kolla config file - find kolla_configs -type f -exec mv '{}' '{}'.txt \; - - # Compress all text logs - find . -iname '*.txt' -execdir gzip -9 {} \+ - find . -iname '*.json' -execdir gzip -9 {} \+ executable: /bin/bash chdir: "{{ kolla_logs_dir }}" diff --git a/tests/playbooks/pre.yml b/tests/playbooks/pre.yml index e721d88592..b7f5a64912 100644 --- a/tests/playbooks/pre.yml +++ b/tests/playbooks/pre.yml @@ -15,3 +15,8 @@ file: path: "{{ kolla_build_logs_dir }}" state: directory + + - name: Ensure tox is installed + pip: + name: tox + become: true diff --git a/tests/templates/template_overrides.j2 b/tests/templates/template_overrides.j2 index 2f9429b0d2..8997bc4ed9 100644 --- a/tests/templates/template_overrides.j2 +++ b/tests/templates/template_overrides.j2 @@ -23,6 +23,9 @@ RUN echo 'APT::Get::AllowUnauthenticated "true";' > /etc/apt/apt.conf.d/99allow- RUN sed -i -e "/^mirrorlist/d" \ -e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \ + -e "s|^#baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \ + -e "s|^baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \ + -e "s|^baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|" \ /etc/yum.repos.d/CentOS-Base.repo {% raw %} @@ -44,7 +47,9 @@ RUN sed -i -e "/^mirrorlist/d" \ -e "/^metalink/d" \ -e "s|^#baseurl=http://download.fedoraproject.org/pub|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ + -e "s|^baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ + -e "s|^#baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^baseurl=https://packages.elastic.co|baseurl={{ nodepool_elastic_proxy }}|g" \ -e "s|^baseurl=https://packagecloud.io/grafana|baseurl={{ nodepool_grafana_proxy }}|g" \ -e "s|^baseurl=https://trunk.rdoproject.org|baseurl=http://{{ nodepool_rdo_proxy }}|g" \ @@ -59,8 +64,10 @@ RUN sed -i -e "/^mirrorlist/d" \ RUN sed -i -e "/^mirrorlist/d" \ -e "/^metalink/d" \ -e "s|^#baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ + -e "s|^#baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^#baseurl=http://download.fedoraproject.org/pub|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^baseurl=http://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ + -e "s|^baseurl=https://mirror.centos.org|baseurl=http://{{ nodepool_mirror_host }}|g" \ -e "s|^baseurl=https://packages.elastic.co|baseurl={{ nodepool_elastic_proxy }}|g" \ -e "s|^baseurl=https://packagecloud.io/grafana|baseurl={{ nodepool_grafana_proxy }}|g" \ -e "s|^baseurl=https://trunk.rdoproject.org|baseurl=http://{{ nodepool_rdo_proxy }}|g" \ diff --git a/tools/version-check.py b/tools/version-check.py index 7dfb870d89..f9afdad941 100755 --- a/tools/version-check.py +++ b/tools/version-check.py @@ -87,6 +87,10 @@ def load_all_info(openstack_release): if 'releases' in info and len(info['releases']) > 0: latest_release = info['releases'][-1] latest_version = latest_release['version'] + if latest_version.endswith('-em') and len(info['releases']) > 1: + # Ignore Extended Maintenance (EM) releases, e.g. pike-em. + latest_release = info['releases'][-2] + latest_version = latest_release['version'] for project in latest_release['projects']: project_name = project['repo'].split('/')[-1]