diff options
23 files changed, 73 insertions, 141 deletions
diff --git a/README.rst b/README.rst index a8cf66238..6bf18532c 100644 --- a/README.rst +++ b/README.rst @@ -8,17 +8,18 @@ Kolla Overview .. Change things from this point on -The Kolla project is a member of the OpenStack `Big Tent -Governance <https://governance.openstack.org/tc/reference/projects/index.html>`__. +The Kolla project is a member of the OpenStack `Governance +<https://governance.openstack.org/tc/reference/projects/index.html>`__. Kolla's mission statement is: :: - To provide production-ready containers and deployment tools for operating - OpenStack clouds. + To provide tools to create production-ready containers and + to provide deployment tools for operating OpenStack clouds. -Kolla provides `Docker <https://docker.com/>`__ containers, +Kolla provides tools to create containers that can be run under either +`Docker <https://docker.com/>`__ or `Podman <https://podman.io/>`, as well as `Ansible <https://ansible.com/>`__ playbooks to deploy OpenStack on baremetal or virtual machine to meet Kolla's mission. @@ -39,29 +40,28 @@ Quickstart <https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html The Kolla Repository ==================== -The Kolla repository is one of three deliverables of the OpenStack Kolla -project. The three deliverables that make up the Kolla project are: - -================ ========================================================= -Deliverable Repository -================ ========================================================= -kolla https://opendev.org/openstack/kolla -kolla-ansible https://opendev.org/openstack/kolla-ansible -kayobe https://opendev.org/openstack/kayobe -================ ========================================================= - -The `Docker images <https://docs.docker.com/storage/storagedriver/>`__ -are built by the Kolla project maintainers. A detailed process for -contributing to the images can be found in the `image building -guide <https://docs.openstack.org/kolla/latest/admin/image-building.html>`__. - -The Kolla developers build images in the `kolla` namespace for every tagged -release. - -You can view the available images on `Docker Hub -<https://hub.docker.com/u/kolla/>`__ or with the Docker CLI:: - - $ sudo docker search kolla +The Kolla repository is one of four deliverables of the OpenStack Kolla +project. The four deliverables that make up the Kolla project are: + +======================== ====================================================== +Deliverable Repository +======================== ====================================================== +kolla https://opendev.org/openstack/kolla +kolla-ansible https://opendev.org/openstack/kolla-ansible +ansible-collection-kolla https://opendev.org/openstack/ansible-collection-kolla +kayobe https://opendev.org/openstack/kayobe +======================== ====================================================== + +The Kolla developers publish images in the Quay.io `openstack.kolla` namespace +for every tagged release. You can view the available images on `Quay.io +<https://quay.io/organization/openstack.kolla>`__. + +.. warning:: + Kolla(-ansible) defaults to using these images in order to ease testing and + demonstration setups, but they are not intended to be used beyond this. + In particular, they do not undergo any security scrutiny. If you intend to + deploy Kolla for production purposes, you are advised to create and curate your + own set of images using the ``kolla`` tool. OpenStack services ------------------ @@ -87,10 +87,10 @@ Kolla provides images to deploy the following OpenStack projects: - `Manila <https://docs.openstack.org/manila/latest/>`__ - `Masakari <https://docs.openstack.org/masakari/latest/>`__ - `Mistral <https://docs.openstack.org/mistral/latest/>`__ -- `Monasca <https://docs.openstack.org/monasca-api/latest/>`__ - `Neutron <https://docs.openstack.org/neutron/latest/>`__ - `Nova <https://docs.openstack.org/nova/latest/>`__ - `Octavia <https://docs.openstack.org/octavia/latest/>`__ +- `Placement <https://docs.openstack.org/placement/latest/>`__ - Skyline (`APIServer <https://docs.openstack.org/skyline-apiserver/latest/>`__ and `Console <https://docs.openstack.org/skyline-console/latest/>`__) - `Tacker <https://docs.openstack.org/tacker/latest/>`__ - `Trove <https://docs.openstack.org/trove/latest/>`__ @@ -103,34 +103,28 @@ Infrastructure components Kolla provides images to deploy the following infrastructure components: - `Collectd <https://collectd.org>`__, - `InfluxDB <https://influxdata.com/time-series-platform/influxdb/>`__, and `Grafana <https://grafana.com>`__ for performance monitoring. -- `Corosync <https://clusterlabs.org/corosync.html>`__ and - `Pacemaker <https://clusterlabs.org/pacemaker>`__ for HAcluster. -- `Elasticsearch <https://www.elastic.co/de/products/elasticsearch>`__ and - `Kibana <https://www.elastic.co/products/kibana>`__ to search, analyze, - and visualize log messages. - `Cron <https://cron-job.org>`__ for log rotation. - `Etcd <https://etcd.io/>`__ a distributed key value store that provides a reliable way to store data across a cluster of machines. - `Fluentd <https://www.fluentd.org/>`__ as an open source data collector for unified logging layer. - `Gnocchi <https://gnocchi.xyz/>`__ a time-series storage database. +- `Corosync <https://clusterlabs.org/corosync.html>`__ and + `Pacemaker <https://clusterlabs.org/pacemaker>`__ for HAcluster. - `HAProxy <https://www.haproxy.org/>`__ and `Keepalived <https://www.keepalived.org/>`__ for high availability of services and their endpoints. -- `Kafka <https://kafka.apache.org/documentation/>`__ a distributed streaming - platform. - `MariaDB and Galera Cluster <https://mariadb.com/kb/en/library/galera-cluster/>`__ for highly available MySQL databases. - `Memcached <https://www.memcached.org/>`__ a distributed memory object caching system. -- `Open vSwitch <https://www.openvswitch.org/>`__ for use with Neutron. - MariaDB Backup A tool which provides a method of performing a hot backup of your MySQL data while the system is running. +- `Open vSwitch <https://www.openvswitch.org/>`__ for use with Neutron. +- `Opensearch <https://opensearch.org/>`__ to search, analyze, + and visualize log messages. - `Prometheus <https://prometheus.io/>`__ an open-source systems monitoring and alerting toolkit originally built at SoundCloud. -- `Qdrouterd <https://qpid.apache.org/components/dispatch-router/index.html>`__ as a - direct messaging back end for communication between services. - `RabbitMQ <https://www.rabbitmq.com/>`__ as a broker messaging back end for communication between services. - `Valkey Sentinel <https://valkey.io/topics/sentinel>`__ provides high availability for valkey @@ -138,9 +132,6 @@ Kolla provides images to deploy the following infrastructure components: provider for clients. - `Telegraf <https://www.docs.influxdata.com/telegraf/>`__ as a plugin-driven server agent for collecting & reporting metrics. -- `ZooKeeper <https://zookeeper.apache.org/>`__ as a centralized service for maintaining - configuration information, naming, providing distributed synchronization, and providing - group services. Directories =========== @@ -175,14 +166,6 @@ workflow <https://docs.openstack.org/infra/manual/developers.html>`__. <https://docs.openstack.org/kolla/latest/contributor/meeting.html>`__. - Contribute `code <https://opendev.org/openstack/kolla>`__. -Contributors -============ - -Check out who is `contributing -code <https://stackalytics.io/?module=kolla-group&metric=commits>`__ and -`contributing -reviews <https://stackalytics.io/?module=kolla-group&metric=marks>`__. - Notices ======= diff --git a/doc/source/contributor/release-management.rst b/doc/source/contributor/release-management.rst index 441bf3907..91f483e38 100644 --- a/doc/source/contributor/release-management.rst +++ b/doc/source/contributor/release-management.rst @@ -473,7 +473,7 @@ After a branch enters EM, we typically do the following: * stop backporting fixes to the branch by default. Important fixes or those requested by community members may be merged if deemed appropriate -* stop publishing images to Dockerhub +* stop publishing images to Quay.io * stop actively maintaining CI End of Life (EOL) diff --git a/doc/source/contributor/versions.rst b/doc/source/contributor/versions.rst index b3adf1920..10e16f05d 100644 --- a/doc/source/contributor/versions.rst +++ b/doc/source/contributor/versions.rst @@ -16,13 +16,12 @@ information about package sources. Name Version Package source information ============== ================ ============================================= Grafana 9.x `Grafana install guide`_ - InfluxDB 1.8.x `InfluxDB upstream repo`_ Kibana 7.x `Kibana install guide`_ Logstash 7.x `Logstash install guide`_ MariaDB 10.11 (LTS) `MariaDB Community downloads`_ Galera 26.4 (LTS) `MariaDB Community downloads`_ OpenSearch 3.x `OpenSearch install guide`_ - ProxySQL 2.7.x `ProxySQL repository`_ + ProxySQL 3.0.x `ProxySQL repository`_ Rabbitmq 4.1.x - CentOS/Rocky: `Team RabbitMQ 'Cloudsmith' repo (RPM)`_ - Debian/Ubuntu: diff --git a/doc/source/matrix_aarch64.csv b/doc/source/matrix_aarch64.csv index 04e94f169..82c372410 100644 --- a/doc/source/matrix_aarch64.csv +++ b/doc/source/matrix_aarch64.csv @@ -20,7 +20,6 @@ hacluster,N,U,U haproxy,U,U,U heat,U,U,U horizon,U,U,U -influxdb,N,U,U ironic,U,U,U iscsid,U,U,U keepalived,U,U,U diff --git a/doc/source/matrix_x86.csv b/doc/source/matrix_x86.csv index 738475b61..0e03298be 100644 --- a/doc/source/matrix_x86.csv +++ b/doc/source/matrix_x86.csv @@ -21,7 +21,6 @@ hacluster-pcs,N,U,U haproxy,T,T,U heat,T,T,T horizon,T,T,T -influxdb,U,U,U ironic,T,T,U iscsid,T,T,U keepalived,T,T,U diff --git a/docker/base/ubuntu.sources b/docker/base/ubuntu.sources index 6e12fb58c..f8f609cee 100644 --- a/docker/base/ubuntu.sources +++ b/docker/base/ubuntu.sources @@ -15,7 +15,7 @@ Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg ## Ubuntu Cloud Archive Types: deb URIs: http://ubuntu-cloud.archive.canonical.com/ubuntu -Suites: noble-updates/flamingo +Suites: noble-updates/gazpacho Components: main Signed-By: /usr/share/keyrings/ubuntu-cloud-keyring.gpg diff --git a/docker/base/ubuntu.sources.arm64 b/docker/base/ubuntu.sources.arm64 index da3ecdfda..751af7ccf 100644 --- a/docker/base/ubuntu.sources.arm64 +++ b/docker/base/ubuntu.sources.arm64 @@ -15,7 +15,7 @@ Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg ## Ubuntu Cloud Archive Types: deb URIs: http://ubuntu-cloud.archive.canonical.com/ubuntu -Suites: noble-updates/flamingo +Suites: noble-updates/gazpacho Components: main Signed-By: /usr/share/keyrings/ubuntu-cloud-keyring.gpg diff --git a/docker/bifrost/bifrost-base/Dockerfile.j2 b/docker/bifrost/bifrost-base/Dockerfile.j2 index 27e3455e9..a84f0e0e3 100644 --- a/docker/bifrost/bifrost-base/Dockerfile.j2 +++ b/docker/bifrost/bifrost-base/Dockerfile.j2 @@ -19,11 +19,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {# NOTE(mgoddard): EPEL required for nginx #} {{ macros.enable_extra_repos(['epel']) }} - - {% set bifrost_base_packages = bifrost_base_packages + [ - 'python3.12', - 'python3.12-devel' - ] %} {% endif %} {{ macros.install_packages(bifrost_base_packages | customizable("packages")) }} diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index f2cb0b433..b854ca0f6 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/docker/horizon/Dockerfile.j2 @@ -49,10 +49,13 @@ COPY extend_start.sh /usr/local/bin/kolla_extend_start # NOTE(kevko): This dance with local settings python paths below is needed # because we are using different distros with different python version and we need to # know to which path symlink should point to. -# NOTE(mnasiadka): pinning setuptools due to https://bugs.launchpad.net/horizon/+bug/2007574 +# NOTE(bbezak): pin setuptools for pip build isolation due to +# https://bugs.launchpad.net/horizon/+bug/2141293 RUN ln -s horizon-source/* horizon \ && {{ macros.upper_constraints_remove("horizon") }} \ - && {{ macros.install_pip(horizon_pip_packages | customizable("pip_packages")) }} \ + && echo "setuptools<82" > /tmp/horizon-build-constraints.txt \ + && PIP_BUILD_CONSTRAINT=/tmp/horizon-build-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/ \ && cp /horizon/openstack_dashboard/local/local_settings.py.example /etc/openstack-dashboard/local_settings.py \ diff --git a/docker/influxdb/Dockerfile.j2 b/docker/influxdb/Dockerfile.j2 deleted file mode 100644 index 060973dd6..000000000 --- a/docker/influxdb/Dockerfile.j2 +++ /dev/null @@ -1,29 +0,0 @@ -FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} -{% block labels %} -LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" -{% endblock %} - -{% block influxdb_header %}{% endblock %} - -{% import "macros.j2" as macros with context %} - -{{ macros.configure_user(name='influxdb') }} - -{{ macros.enable_extra_repos(['influxdb']) }} - -{% set influxdb_packages = ['influxdb'] %} -{{ macros.install_packages(influxdb_packages | customizable("packages")) }} - -COPY influxdb_sudoers /etc/sudoers.d/kolla_influxdb_sudoers -COPY extend_start.sh /usr/local/bin/kolla_extend_start - -RUN chmod 750 /etc/sudoers.d \ - && chmod 440 /etc/sudoers.d/kolla_influxdb_sudoers \ - && chmod 644 /usr/local/bin/kolla_extend_start - -{{ macros.kolla_patch_sources() }} - -{% block influxdb_footer %}{% endblock %} -{% block footer %}{% endblock %} - -USER influxdb diff --git a/docker/influxdb/extend_start.sh b/docker/influxdb/extend_start.sh deleted file mode 100644 index 42a3c4607..000000000 --- a/docker/influxdb/extend_start.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# Create log directory, with appropriate permissions -INFLUXDB_LOG_DIR=/var/log/kolla/influxdb - -if [[ ! -d "${INFLUXDB_LOG_DIR}" ]]; then - mkdir -p ${INFLUXDB_LOG_DIR} -fi -if [[ $(stat -c %a ${INFLUXDB_LOG_DIR}) != "755" ]]; then - chmod 755 ${INFLUXDB_LOG_DIR} -fi diff --git a/docker/influxdb/influxdb_sudoers b/docker/influxdb/influxdb_sudoers deleted file mode 100644 index a9757b264..000000000 --- a/docker/influxdb/influxdb_sudoers +++ /dev/null @@ -1 +0,0 @@ -%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R influxdb\: /var/lib/influxdb, /bin/chown -R influxdb\: /var/lib/influxdb diff --git a/docker/ironic/ironic-pxe/Dockerfile.j2 b/docker/ironic/ironic-pxe/Dockerfile.j2 index 6a2131de6..eb357610b 100644 --- a/docker/ironic/ironic-pxe/Dockerfile.j2 +++ b/docker/ironic/ironic-pxe/Dockerfile.j2 @@ -17,15 +17,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'ipxe-bootimgs-aarch64', 'mtools', 'shim-*64', + 'syslinux-tftpboot', 'tftp-server', ] %} - {% if base_arch in ['x86_64'] %} - {% set ironic_pxe_packages = ironic_pxe_packages + [ - 'syslinux-tftpboot' - ] %} - {% endif %} - {{ macros.install_packages(ironic_pxe_packages | customizable("packages")) }} {% elif base_package_type == 'deb' %} {% set ironic_pxe_packages = [ diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2 index 6a0796bfb..1934b277c 100644 --- a/docker/kolla-toolbox/Dockerfile.j2 +++ b/docker/kolla-toolbox/Dockerfile.j2 @@ -61,24 +61,6 @@ COPY apt_preferences_rabbitmq.{{ base_distro }} /etc/apt/preferences.d/rabbitmq {% endif %} {{ macros.install_packages(kolla_toolbox_packages | customizable("packages")) }} -{# NOTE(kevko): - In all distros, there is always a /usr/bin/python3 -> python3.X. - However, this is disrupted for RHEL-based systems because, unlike - other distros, we upgrade Python above [1], but we forget to set - the default python3 to the new python3.X. As a result also, everything - outside of the virtual environment ends up running on Python 3.9. - - So, let's correctly set python3 -> python3.X since we had to install - it and now have default python3 points to the new version. - - [1] https://review.opendev.org/c/openstack/kolla/+/924245 -#} -{% if base_package_type == 'rpm' %} -RUN cd /usr/bin && \ - rm -f python3 && \ - ln -s python3.12 python3 -{% endif %} - {% block kolla_toolbox_pip_conf %} ENV UPPER_CONSTRAINTS_FILE=https://releases.openstack.org/constraints/upper/{{ openstack_release }} {% endblock %} @@ -98,7 +80,6 @@ ENV PATH {{ venv_path }}/bin:$PATH {% set kolla_toolbox_pip_packages = [ 'ansible-core==2.20.*', 'cmd2', - 'influxdb', 'openstacksdk', 'os-client-config', 'pbr', diff --git a/docker/nova/nova-libvirt/Dockerfile.j2 b/docker/nova/nova-libvirt/Dockerfile.j2 index d65d31584..88e4a52d6 100644 --- a/docker/nova/nova-libvirt/Dockerfile.j2 +++ b/docker/nova/nova-libvirt/Dockerfile.j2 @@ -54,6 +54,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'python3-rbd', 'qemu-block-extra', 'qemu-system', + 'qemu-system-modules-spice', 'qemu-utils', 'sasl2-bin', 'swtpm', diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 7a5843846..1b5d0ae89 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/docker/openstack-base/Dockerfile.j2 @@ -174,7 +174,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'simplegeneric', 'simplejson', 'six', - 'sqlalchemy-migrate', 'sqlparse', 'stevedore', 'tooz[consul,etcd,etcd3gw,redis,postgresql,mysql,zookeeper,memcached,ipc]', diff --git a/kolla/common/config.py b/kolla/common/config.py index 999939301..b1f325188 100644 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -63,7 +63,6 @@ _PROFILE_OPTS = [ 'openvswitch', 'proxysql', 'rabbitmq', - 'storm', 'tgtd', 'valkey', ], @@ -89,9 +88,7 @@ _PROFILE_OPTS = [ 'cloudkitty', 'designate', 'gnocchi', - 'influxdb', 'ironic', - 'kafka', 'kuryr', 'magnum', 'manila', @@ -102,7 +99,6 @@ _PROFILE_OPTS = [ 'telegraf', 'trove', 'valkey', - 'zookeeper', 'zun', ], help='Aux Images'), @@ -202,9 +198,7 @@ _CLI_OPTS = [ cfg.MultiOpt('regex', types.String(), positional=True, required=False, help=('Build only images matching regex and its' ' dependencies')), - cfg.StrOpt('registry', - help=('The container image registry host. The default registry' - ' host is Docker Hub')), + cfg.StrOpt('registry', help='The container image registry host'), cfg.StrOpt('save-dependency', help=('Path to the file to store the docker image' ' dependency in Graphviz dot format')), diff --git a/kolla/common/users.py b/kolla/common/users.py index ec21b0658..cbbc147b0 100644 --- a/kolla/common/users.py +++ b/kolla/common/users.py @@ -89,7 +89,7 @@ USERS = { 'uid': 42420, 'gid': 42420, }, - 'influxdb-user': { + 'influxdb-user': { # unused user (influxdb dropped) 'uid': 42421, 'gid': 42421, }, diff --git a/kolla/template/repos.yaml b/kolla/template/repos.yaml index a5c66d34a..ece8c49fb 100644 --- a/kolla/template/repos.yaml +++ b/kolla/template/repos.yaml @@ -161,7 +161,7 @@ rpm: baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum" gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp" repo_gpgcheck: 1 - name: "opensearch32.x" + name: "opensearch-3.x" opensearch-dashboards: baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum" gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp" diff --git a/releasenotes/notes/debian-trixie-spice-814929ed1efbcad1.yaml b/releasenotes/notes/debian-trixie-spice-814929ed1efbcad1.yaml new file mode 100644 index 000000000..eca8927dd --- /dev/null +++ b/releasenotes/notes/debian-trixie-spice-814929ed1efbcad1.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - | + Debian Trixie container images require the additional + qemu-system-modules-spice operating system package for SPICE consoles + to function correctly. This package has therefore been added + to the nova-libvirt container build. Further details are available in + the bug report at `LP#2138186 <https://launchpad.net/bugs/2138186>`__. diff --git a/releasenotes/notes/drop-influxdb-cb3161a1e04fa38e.yaml b/releasenotes/notes/drop-influxdb-cb3161a1e04fa38e.yaml new file mode 100644 index 000000000..47800626e --- /dev/null +++ b/releasenotes/notes/drop-influxdb-cb3161a1e04fa38e.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + Support for building ``influxdb`` container images has been dropped. diff --git a/releasenotes/notes/image-purpose-1884e00f993e09d0.yaml b/releasenotes/notes/image-purpose-1884e00f993e09d0.yaml new file mode 100644 index 000000000..0296e9e1b --- /dev/null +++ b/releasenotes/notes/image-purpose-1884e00f993e09d0.yaml @@ -0,0 +1,7 @@ +--- +prelude: > + The Kolla project publishes images to quay.io. + These are however only intended for demonstration and testing purposes. + In particular, they do not undergo any security scrutiny. If you intend to + deploy Kolla for production purposes, you are advised to create and curate your + own set of images. diff --git a/releasenotes/notes/ironic-pxe-syslinux-tftpboot-3dc6415ed140dc50.yaml b/releasenotes/notes/ironic-pxe-syslinux-tftpboot-3dc6415ed140dc50.yaml new file mode 100644 index 000000000..a2764704b --- /dev/null +++ b/releasenotes/notes/ironic-pxe-syslinux-tftpboot-3dc6415ed140dc50.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Install syslinux-tftpboot in the ironic-pxe RPM image on all architectures + so TFTP boot files (pxelinux.0, chain.c32, ldlinux.c32) are present on + aarch64. |
