This is an automated email from the ASF dual-hosted git repository.
snuyanzin pushed a commit to branch release-2.3
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-2.3 by this push:
new f08ace99b12 [FLINK-41117][ci] Bump ubuntu to 26 in Azure and GHA
f08ace99b12 is described below
commit f08ace99b12f4e8e53185551c94d77d667eba6f9
Author: Sergey Nuyanzin <[email protected]>
AuthorDate: Sat Oct 31 08:00:00 2026 +0100
[FLINK-41117][ci] Bump ubuntu to 26 in Azure and GHA
---
.github/workflows/docs-legacy.yml | 2 +-
.github/workflows/docs.yml | 2 +-
.github/workflows/template.flink-ci.yml | 14 +++++++-------
.github/workflows/template.pre-compile-checks.yml | 4 ++--
azure-pipelines.yml | 8 ++++----
.../test-scripts/common_kubernetes.sh | 10 +++++++---
tools/azure-pipelines/build-apache-repo.yml | 20 ++++++++++----------
tools/azure-pipelines/build-nightly-dist.yml | 4 ++--
tools/azure-pipelines/build-python-wheels.yml | 2 +-
tools/azure-pipelines/free_disk_space.sh | 10 ++++++++++
10 files changed, 45 insertions(+), 31 deletions(-)
diff --git a/.github/workflows/docs-legacy.yml
b/.github/workflows/docs-legacy.yml
index f62ed0612b8..1b601a2495e 100644
--- a/.github/workflows/docs-legacy.yml
+++ b/.github/workflows/docs-legacy.yml
@@ -80,7 +80,7 @@ jobs:
docker run --rm \
--volume "$PWD:/root/flink" \
--volume "$HOME/.m2/repository:/root/.m2/repository" \
- apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2 \
+ apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute \
bash -c "apt-get update && apt-get install -y rsync && cd
/root/flink && ./.github/workflows/docs.sh && chmod -R a+rX docs/target"
- name: Upload documentation
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 5f923d337f9..a8b2b88bbff 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -69,7 +69,7 @@ jobs:
docker run --rm \
--volume "$PWD:/root/flink" \
--volume "$HOME/.m2/repository:/root/.m2/repository" \
- apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2 \
+ apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute \
bash -c "cd /root/flink && ./.github/workflows/docs.sh && chmod -R
a+rX docs/target"
- name: Upload documentation
diff --git a/.github/workflows/template.flink-ci.yml
b/.github/workflows/template.flink-ci.yml
index ccfaef137fc..82d005ea47a 100644
--- a/.github/workflows/template.flink-ci.yml
+++ b/.github/workflows/template.flink-ci.yml
@@ -70,9 +70,9 @@ env:
jobs:
compile:
name: "Compile"
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-26.04
container:
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# --init makes the process in the container being started as an init
process which will clean up any daemon processes during shutdown
# --privileged allows writing coredumps in docker (FLINK-16973)
options: --init --privileged
@@ -136,9 +136,9 @@ jobs:
packaging:
name: "Test packaging/licensing"
needs: compile
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-26.04
container:
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# --init makes the process in the container being started as an init
process which will clean up any daemon processes during shutdown
# --privileged allows writing coredumps in docker (FLINK-16973)
options: --init --privileged
@@ -189,9 +189,9 @@ jobs:
test:
name: "Test (module: ${{ matrix.module }})"
needs: compile
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-26.04
container:
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# --init makes the process in the container being started as an init
process which will clean up any daemon processes during shutdown
# --privileged allows writing coredumps in docker (FLINK-16973)
options: --init --privileged
@@ -345,7 +345,7 @@ jobs:
name: "E2E (group ${{ matrix.group }})"
needs: compile
# the end to end tests are not executed in Flink's CI Docker container due
to problems when running Docker-in-Docker
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-26.04
timeout-minutes: 310
env:
# timeout in minutes - this environment variable is required by
uploading_watchdog.sh
diff --git a/.github/workflows/template.pre-compile-checks.yml
b/.github/workflows/template.pre-compile-checks.yml
index 37356ab1208..d9aee322c33 100644
--- a/.github/workflows/template.pre-compile-checks.yml
+++ b/.github/workflows/template.pre-compile-checks.yml
@@ -41,9 +41,9 @@ permissions: read-all
jobs:
qa:
name: "Basic QA"
- runs-on: ubuntu-24.04
+ runs-on: ubuntu-26.04
container:
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# --init makes the process in the container being started as an init
process which will clean up any daemon processes during shutdown
# --privileged allows writing coredumps in docker (FLINK-16973)
options: --init --privileged
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 25e58ca47bd..b98318fddfe 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -39,7 +39,7 @@ resources:
# Container with SSL to have the same environment everywhere.
# see https://github.com/apache/flink-connector-shared-utils/tree/ci_utils
- container: flink-build-container
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# the testcontainers based tests need the host Docker daemon, which the
agent does
# not map into job containers by default
mapDockerSocket: true
@@ -77,16 +77,16 @@ stages:
parameters: # see template file for a definition of the parameters.
stage_name: ci_build
test_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2 -Djdk17
-Pjava17-target"
run_end_to_end: false
container: flink-build-container
jdk: 17
- job: docs_404_check # run on a MSFT provided machine
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
steps:
- task: GoTool@0
inputs:
diff --git a/flink-end-to-end-tests/test-scripts/common_kubernetes.sh
b/flink-end-to-end-tests/test-scripts/common_kubernetes.sh
index 190cb468260..5ce239ae3f6 100755
--- a/flink-end-to-end-tests/test-scripts/common_kubernetes.sh
+++ b/flink-end-to-end-tests/test-scripts/common_kubernetes.sh
@@ -136,7 +136,8 @@ function start_kubernetes_if_not_running {
# here.
# Similarly, the kubelets are marking themself as "low disk space",
# causing Flink to avoid this node (again, failing the test)
- CHANGE_MINIKUBE_NONE_USER=true sudo -E minikube start --vm-driver=none
\
+ # pass env explicitly: sudo-rs (Ubuntu 26.04+) ignores 'sudo -E'
+ sudo env HOME="$HOME" PATH="$PATH" CHANGE_MINIKUBE_NONE_USER=true
minikube start --vm-driver=none \
--extra-config=kubelet.image-gc-high-threshold=99 \
--extra-config=kubelet.image-gc-low-threshold=98 \
--extra-config=kubelet.minimum-container-ttl-duration=120m \
@@ -170,6 +171,10 @@ function start_kubernetes {
fi
}
+function stop_minikube {
+ sudo env HOME="$HOME" PATH="$PATH" minikube stop
+}
+
function stop_kubernetes {
if [[ "${OS_TYPE}" != "linux" ]]; then
echo "$NON_LINUX_ENV_NOTE"
@@ -177,8 +182,7 @@ function stop_kubernetes {
kill $minikube_mount_pid 2> /dev/null
else
echo "Stopping minikube ..."
- stop_command="sudo -E minikube stop"
- if ! retry_times ${RETRY_COUNT} ${RETRY_BACKOFF_TIME}
"${stop_command}"; then
+ if ! retry_times ${RETRY_COUNT} ${RETRY_BACKOFF_TIME} stop_minikube;
then
echo "Could not stop minikube. Aborting..."
exit 1
fi
diff --git a/tools/azure-pipelines/build-apache-repo.yml
b/tools/azure-pipelines/build-apache-repo.yml
index 5bdda1467a7..d584b8a7a07 100644
--- a/tools/azure-pipelines/build-apache-repo.yml
+++ b/tools/azure-pipelines/build-apache-repo.yml
@@ -39,7 +39,7 @@ resources:
# Container with SSL to have the same environment everywhere.
# see https://github.com/apache/flink-connector-shared-utils/tree/ci_utils
- container: flink-build-container
- image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_noble_v2
+ image: apache/flink-ci-docker:java_8_11_17_21_25_maven_386_3916_resolute
# the testcontainers based tests need the host Docker daemon, which the
agent does
# not map into job containers by default
mapDockerSocket: true
@@ -72,14 +72,14 @@ stages:
test_pool_definition:
name: Default
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2 -Djdk17
-Pjava17-target"
run_end_to_end: false
container: flink-build-container
jdk: 17
- job: docs_404_check # run on a MSFT provided machine
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
steps:
# Skip docs check if this is a pull request that doesn't contain a
documentation change
- task: GoTool@0
@@ -116,9 +116,9 @@ stages:
parameters:
stage_name: cron_azure
test_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2 -Djdk17
-Pjava17-target"
run_end_to_end: true
container: flink-build-container
@@ -129,7 +129,7 @@ stages:
test_pool_definition:
name: Default
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=3.2.3
-Phadoop3-tests,hive3 -Djdk17 -Pjava17-target"
run_end_to_end: true
container: flink-build-container
@@ -140,7 +140,7 @@ stages:
test_pool_definition:
name: Default
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2 -Djdk11
-Pjava11-target"
run_end_to_end: true
container: flink-build-container
@@ -151,7 +151,7 @@ stages:
test_pool_definition:
name: Default
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2 -Djdk21
-Pjava21-target"
run_end_to_end: true
container: flink-build-container
@@ -162,14 +162,14 @@ stages:
test_pool_definition:
name: Default
e2e_pool_definition:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
environment: PROFILE="-Dflink.hadoop.version=2.10.2
-Penable-adaptive-scheduler -Djdk17 -Pjava17-target"
run_end_to_end: true
container: flink-build-container
jdk: 17
- job: docs_404_check # run on a MSFT provided machine
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
steps:
- task: GoTool@0
inputs:
diff --git a/tools/azure-pipelines/build-nightly-dist.yml
b/tools/azure-pipelines/build-nightly-dist.yml
index c3c7849a70a..32f92385543 100644
--- a/tools/azure-pipelines/build-nightly-dist.yml
+++ b/tools/azure-pipelines/build-nightly-dist.yml
@@ -19,7 +19,7 @@ parameters:
jobs:
- job: ${{parameters.stage_name}}_binary
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
container: flink-build-container
workspace:
clean: all
@@ -76,7 +76,7 @@ jobs:
# artifact: nightly-release
- job: ${{parameters.stage_name}}_maven
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
container: flink-build-container
timeoutInMinutes: 240
workspace:
diff --git a/tools/azure-pipelines/build-python-wheels.yml
b/tools/azure-pipelines/build-python-wheels.yml
index 418bdeb88c2..fc5dd860c98 100644
--- a/tools/azure-pipelines/build-python-wheels.yml
+++ b/tools/azure-pipelines/build-python-wheels.yml
@@ -16,7 +16,7 @@
jobs:
- job: build_wheels_on_Linux
pool:
- vmImage: 'ubuntu-24.04'
+ vmImage: 'ubuntu-26.04'
steps:
- task: UsePythonVersion@0
inputs:
diff --git a/tools/azure-pipelines/free_disk_space.sh
b/tools/azure-pipelines/free_disk_space.sh
index 0f01f8919fa..833ffeee99b 100755
--- a/tools/azure-pipelines/free_disk_space.sh
+++ b/tools/azure-pipelines/free_disk_space.sh
@@ -80,3 +80,13 @@ if command -v docker >/dev/null 2>&1; then
sudo docker image prune --all --force || true
fi
df -h
+
+# Not disk cleanup, but this script runs on the host before any cache or test
step in both CIs:
+# Ubuntu 26.04 mounts /tmp as a ~4 GB tmpfs, too small for cache archives and
e2e state.
+if findmnt -n -o FSTYPE /tmp | grep -q tmpfs; then
+ echo "Moving /tmp to disk"
+ sudo mkdir -p /var/tmp/ci-tmp
+ sudo chmod 1777 /var/tmp/ci-tmp
+ sudo mount --bind /var/tmp/ci-tmp /tmp
+fi
+df -h /tmp