Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 32 additions & 10 deletions doc/source/contributor/release-management.rst
Original file line number Diff line number Diff line change
Expand Up @@ -458,25 +458,47 @@ a recurring topic for that in the first Kolla meeting each month.

* example release patch: https://review.opendev.org/c/openstack/releases/+/860521

Extended Maintenance (EM)
-------------------------
Unmaintained
------------

When a branch is entering EM, projects will make final releases. The release
team will propose tagging the Kolla deliverables as EM, but this should only be
done once all other dependent projects have made their final release, and final
Kolla releases have been made including those dependencies.
This stage applies only to SLURP (``.1``) branches. Non-SLURP (``.2``)
branches are never a skip-level upgrade target, so they move directly from
Maintained to End of Life instead.

After a branch enters EM, we typically do the following:
After a branch becomes unmaintained, 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 Quay.io
* stop actively maintaining CI
* remove the branch's existing container images from
`quay.io/openstack.kolla <https://quay.io/organization/openstack.kolla>`__
* remove the upgrade CI jobs in subsequent branches that upgrade from this
branch. Due to SLURP this may be more than one branch - e.g. if 2024.1
becomes unmaintained, remove its upgrade jobs from both 2024.2 and 2025.1
* switch kolla-ansible image builds to always build in CI (instead of the
periodic tagged publish used for maintained branches), since images are no
longer published

End of Life (EOL)
-----------------

Once a branch has been unmaintained (failing CI, no patches merged) for 6
months, it may be moved to EOL. Since this is done at different times for
different projects, send an email to openstack-discuss to keep the community
informed.
months, it may be moved to EOL. Non-SLURP (``.2``) branches skip the
Unmaintained stage and move directly to EOL once superseded. Since this is
done at different times for different projects, send an email to
openstack-discuss to keep the community informed.

While transitioning to EOL for non-SLURP and unmaintained for SLURP is
done by the release team as part of their processes - the transition
from unmaintained to EOL needs to be requested by sending a patch
to the openstack/releases repository.

When a branch reaches EOL:

* for a non-SLURP (``.2``) branch: remove its upgrade CI jobs from the next
branch, and remove its container images from
`quay.io/openstack.kolla <https://quay.io/organization/openstack.kolla>`__
* for a SLURP (``.1``) branch: upgrade jobs and container images should
already have been removed during the Unmaintained stage, so no further
action is needed beyond the community notification
5 changes: 4 additions & 1 deletion kolla/docker/cinder/cinder-volume/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,13 @@ RUN sed -i '1 i include /var/lib/cinder/volumes/*' /etc/tgt/targets.conf

{% endif %}

{% set cinder_volume_pip_packages = [] %}

COPY cinder_sudoers /etc/sudoers.d/kolla_cinder_volume_sudoers
COPY extend_start.sh /usr/local/bin/kolla_cinder_extend_start

RUN chmod 750 /etc/sudoers.d \
RUN {{ macros.install_pip(cinder_volume_pip_packages | customizable("pip_packages")) }} \
&& chmod 750 /etc/sudoers.d \
&& chmod 440 /etc/sudoers.d/kolla_cinder_volume_sudoers \
&& chmod 644 /usr/local/bin/kolla_cinder_extend_start

Expand Down
2 changes: 2 additions & 0 deletions kolla/docker/neutron/neutron-ovn-agent/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"

{{ macros.kolla_patch_sources() }}

COPY extend_start.sh /usr/local/bin/kolla_extend_start

{% block neutron_ovn_agent_footer %}{% endblock %}
{% block footer %}{% endblock %}
{{ macros.kolla_cleanup_repos() }}
Expand Down
11 changes: 11 additions & 0 deletions kolla/docker/neutron/neutron-ovn-agent/extend_start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

if [[ "${KOLLA_NEUTRON_WRAPPERS:-false}" == "true" ]]; then
echo "Copying neutron agent wrappers to /usr/local/bin"
sudo -E /usr/local/lib/neutron-wrappers/copy-wrappers
else
echo "Removing neutron agent wrappers from /usr/local/bin"
sudo -E /usr/local/lib/neutron-wrappers/delete-wrappers
fi

. /usr/local/bin/kolla_neutron_extend_start
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
features:
- |
The ``cinder-volume`` image now has its own customizable pip package
list, ``cinder_volume_pip_packages`` (empty by default). Vendor SDKs
that only ``cinder-volume`` needs, such as ``py-pure-client`` for the
Everpure FlashArray driver, can be added with
``cinder_volume_pip_packages_append`` in a template override without
rebuilding ``cinder-base``.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
features:
- |
The ``neutron-ovn-agent`` image now supports running the HAProxy
processes of its metadata extension in separate containers, as the
``neutron-metadata-agent`` image already does. This is enabled by setting
``KOLLA_NEUTRON_WRAPPERS=true`` in the container environment.
Loading