This is an automated email from the ASF dual-hosted git repository.
snuyanzin pushed a commit to branch release-2.2
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-2.2 by this push:
new b2b14964838 [FLINK-41117][ci] Bump ubuntu to 26 in Azure and GHA
b2b14964838 is described below
commit b2b149648385b4eda7191b22a13e5fdc398dcc90
Author: Sergey Nuyanzin <[email protected]>
AuthorDate: Sat Oct 31 15:57:08 2026 +0100
[FLINK-41117][ci] Bump ubuntu to 26 in Azure and GHA
---
.github/workflows/docs.yml | 2 +-
.github/workflows/template.flink-ci.yml | 14 +++++++-------
.github/workflows/template.pre-compile-checks.yml | 4 ++--
azure-pipelines.yml | 9 +++++----
.../test-scripts/common_kubernetes.sh | 10 +++++++---
tools/azure-pipelines/build-apache-repo.yml | 21 +++++++++++----------
tools/azure-pipelines/build-nightly-dist.yml | 4 ++--
tools/azure-pipelines/build-python-wheels.yml | 2 +-
tools/azure-pipelines/free_disk_space.sh | 10 ++++++++++
9 files changed, 46 insertions(+), 30 deletions(-)
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 7750314e667..f3dfbab5194 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -58,7 +58,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 5229fb5cb25..76700288406 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
@@ -126,9 +126,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
@@ -171,9 +171,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
@@ -319,7 +319,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 570f097b264..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
@@ -52,6 +52,7 @@ resources:
# to understand why the secrets are handled like this
variables:
MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
+ MAVEN_USER_HOME: $(Pipeline.Workspace)/.m2
E2E_CACHE_FOLDER: $(Pipeline.Workspace)/e2e_cache
E2E_TARBALL_CACHE: $(Pipeline.Workspace)/e2e_artifact_cache
MAVEN_ARGS: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
@@ -76,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 5301ae33c02..d584b8a7a07 100644
--- a/tools/azure-pipelines/build-apache-repo.yml
+++ b/tools/azure-pipelines/build-apache-repo.yml
@@ -39,13 +39,14 @@ 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
variables:
MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
+ MAVEN_USER_HOME: $(Pipeline.Workspace)/.m2
E2E_CACHE_FOLDER: $(Pipeline.Workspace)/e2e_cache
E2E_TARBALL_CACHE: $(Pipeline.Workspace)/e2e_artifact_cache
MAVEN_ARGS: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
@@ -71,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
@@ -115,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
@@ -128,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
@@ -139,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
@@ -150,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
@@ -161,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 a4b64ebd3b6..8f50b32e56e 100755
--- a/tools/azure-pipelines/free_disk_space.sh
+++ b/tools/azure-pipelines/free_disk_space.sh
@@ -52,3 +52,13 @@ sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/local/lib/node_modules
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