Skip to content

Commit

Permalink
Remove debian bullseye support (apache#41568)
Browse files Browse the repository at this point in the history
  • Loading branch information
potiuk authored Aug 18, 2024
1 parent 55e6099 commit 5c323a9
Show file tree
Hide file tree
Showing 22 changed files with 182 additions and 347 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ on: # yamllint disable-line rule:truthy
default: "true"
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prod-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
21 changes: 0 additions & 21 deletions .github/workflows/prod-image-extra-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,6 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
jobs:
bullseye-image:
uses: ./.github/workflows/prod-image-build.yml
with:
runs-on-as-json-public: ${{ inputs.runs-on-as-json-public }}
build-type: "Bullseye"
upload-package-artifact: "false"
image-tag: bullseye-${{ inputs.image-tag }}
debian-version: "bullseye"
python-versions: ${{ inputs.python-versions }}
default-python-version: ${{ inputs.default-python-version }}
platform: "linux/amd64"
branch: ${{ inputs.branch }}
# Always build images during the extra checks and never push them
push-image: "false"
use-uv: ${{ inputs.use-uv }}
build-provider-packages: ${{ inputs.build-provider-packages }}
upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }}
chicken-egg-providers: ${{ inputs.chicken-egg-providers }}
constraints-branch: ${{ inputs.constraints-branch }}
docker-cache: ${{ inputs.docker-cache }}

myssql-client-image:
uses: ./.github/workflows/prod-image-build.yml
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push-image-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
19 changes: 1 addition & 18 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,7 @@ function get_runtime_apt_deps() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
debian_version_apt_deps="libffi7 libldap-2.4-2 libssl1.1 netcat"
else
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
fi
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
echo
echo "APPLIED INSTALLATION CONFIGURATION FOR DEBIAN VERSION: ${debian_version}"
echo
Expand Down Expand Up @@ -177,19 +173,6 @@ function install_debian_dev_dependencies() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
echo
echo "Bullseye detected - replacing dependencies in additional dev apt deps"
echo
# Replace dependencies in additional dev apt deps to be compatible with Bullseye
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//libgcc-11-dev/libgcc-10-dev}
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//netcat-openbsd/netcat}
echo
echo "Replaced bullseye dev apt dependencies"
echo "${ADDITIONAL_DEV_APT_COMMAND}"
echo
fi

# shellcheck disable=SC2086
apt-get install -y --no-install-recommends ${DEV_APT_DEPS} ${ADDITIONAL_DEV_APT_DEPS}
}
Expand Down
19 changes: 1 addition & 18 deletions Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,7 @@ function get_runtime_apt_deps() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
debian_version_apt_deps="libffi7 libldap-2.4-2 libssl1.1 netcat"
else
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
fi
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
echo
echo "APPLIED INSTALLATION CONFIGURATION FOR DEBIAN VERSION: ${debian_version}"
echo
Expand Down Expand Up @@ -123,19 +119,6 @@ function install_debian_dev_dependencies() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
echo
echo "Bullseye detected - replacing dependencies in additional dev apt deps"
echo
# Replace dependencies in additional dev apt deps to be compatible with Bullseye
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//libgcc-11-dev/libgcc-10-dev}
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//netcat-openbsd/netcat}
echo
echo "Replaced bullseye dev apt dependencies"
echo "${ADDITIONAL_DEV_APT_COMMAND}"
echo
fi

# shellcheck disable=SC2086
apt-get install -y --no-install-recommends ${DEV_APT_DEPS} ${ADDITIONAL_DEV_APT_DEPS}
}
Expand Down
12 changes: 3 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,7 @@ The work to add Windows support is tracked via [#10388](https://github.com/apach
it is not a high priority. You should only use Linux-based distros as "Production" execution environment
as this is the only environment that is supported. The only distro that is used in our CI tests and that
is used in the [Community managed DockerHub image](https://hub.docker.com/p/apache/airflow) is
`Debian Bookworm`. We also have support for legacy ``Debian Bullseye`` base image if you want to build a
custom image but it is deprecated and option to do it will be removed in the Dockerfile that
will accompany Airflow 2.9.3 so you are advised to switch to ``Debian Bookworm`` for your custom images.
`Debian Bookworm`.

<!-- END Requirements, please keep comment here to allow auto update of PyPI readme.md -->
<!-- START Getting started, please keep comment here to allow auto update of PyPI readme.md -->
Expand Down Expand Up @@ -347,13 +345,9 @@ building and testing the OS version. Approximately 6 months before the end-of-re
previous stable version of the OS, Airflow switches the images released to use the latest supported
version of the OS.

For example since ``Debian Buster`` end-of-life was August 2022, Airflow switched the images in `main` branch
to use ``Debian Bullseye`` in February/March 2022. The version was used in the next MINOR release after
the switch happened. In case of the Bullseye switch - 2.3.0 version used ``Debian Bullseye``.
The images released in the previous MINOR version continue to use the version that all other releases
for the MINOR version used. Similar switch from ``Debian Bullseye`` to ``Debian Bookworm`` has been implemented
For example switch from ``Debian Bullseye`` to ``Debian Bookworm`` has been implemented
before 2.8.0 release in October 2023 and ``Debian Bookworm`` will be the only option supported as of
Airflow 2.9.0.
Airflow 2.10.0.

Users will continue to be able to build their images using stable Debian releases until the end of regular
support and building and verifying of the images happens in our CI but no unit tests were executed using
Expand Down
1 change: 0 additions & 1 deletion dev/breeze/doc/ci/05_workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,6 @@ code.
| Build CI images | Builds images in-workflow (not in the build images) | | Yes | Yes (1) | Yes (4) |
| Generate constraints/CI verify | Generate constraints for the build and verify CI image | Yes (2) | Yes (2) | Yes (2) | Yes (2) |
| Build PROD images | Builds images in-workflow (not in the build images) | | Yes | Yes (1) | Yes (4) |
| Build Bullseye PROD images | Builds images based on Bullseye debian | | Yes | Yes | Yes |
| Run breeze tests | Run unit tests for Breeze | Yes | Yes | Yes | Yes |
| Test OpenAPI client gen | Tests if OpenAPIClient continues to generate | Yes | Yes | Yes | Yes |
| React WWW tests | React UI tests for new Airflow UI | Yes | Yes | Yes | Yes |
Expand Down
1 change: 0 additions & 1 deletion dev/breeze/doc/ci/06_diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,6 @@ sequenceDiagram
Tests ->> GitHub Registry: Push PROD Images<br>[COMMIT_SHA]
and
Artifacts ->> Tests: Download source constraints
Note over Tests: Build Bullseye PROD Images<br>[COMMIT_SHA]
and
GitHub Registry ->> Tests: Pull CI Images<br>[COMMIT_SHA]
Note over Tests: Run static checks
Expand Down
Loading

0 comments on commit 5c323a9

Please sign in to comment.