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

Reply via email to