Skip to content

ci: run kind-e2e on ubuntu-latest by unloading the fusermount3 AppArmor profile - #6235

Merged
RongGu merged 2 commits into
fluid-cloudnative:masterfrom
cheyang:cheyang-kind-e2e-unload-fusermount3-apparmor
Nov 12, 2026
Merged

RongGu merged 2 commits into
fluid-cloudnative:masterfrom
cheyang:cheyang-kind-e2e-unload-fusermount3-apparmor

Conversation

@cheyang

@cheyang cheyang commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

E2E Functionality Check has been pinned to ubuntu-24.04 since #6225, because ubuntu-latest started resolving to ubuntu-26.04, whose host AppArmor fusermount3 profile denies the JindoRuntime FUSE mounts (#6224). The charts repo's kind-e2e.yml carries the same pin for the same reason (fluid-cloudnative/charts#121).

This PR un-pins the runner and makes the failure mode go away instead:

  • switch runs-on back to ubuntu-latest
  • add a step that unloads /etc/apparmor.d/fusermount3 from the host runner before the Kind cluster is created

The step is a no-op on runner images that do not ship the profile (ubuntu-24.04 and older), and fails fast with a clear message if the profile exists but cannot be unloaded — instead of letting the JindoRuntime e2e hang until the 30-minute step timeout.

Why unloading is safe here: the profile only exists to confine interactive user FUSE mounts on multi-user hosts. A GitHub-hosted runner is ephemeral and single-tenant, and Kind node containers already run --privileged --security-opt apparmor=unconfined; nothing on the runner legitimately relies on the profile.

This also closes the first two follow-ups of #6224 (confirm the root cause on an ubuntu-26.04 runner — the kind-e2e run of this PR re-runs the jindo suite on ubuntu-26.04 with the profile unloaded, which is exactly the confirmation experiment proposed there — and make kind-e2e pass on ubuntu-26.04). The production-impact assessment for nodes running AppArmor ≥ 5.0 stays tracked in the issue; after this lands, the charts repo pin (fluid-cloudnative/charts#121) can be reverted the same way.

Verification

The kind-e2e matrix of this PR runs on ubuntu-latest (26.04) across 5 Kubernetes versions and exercises the JindoRuntime FUSE path in every job; all 5 jobs passing is the proof. Before the fix, the same suites failed on all 5 versions with fusermount3: mount failed: Permission denied (run of PR #6219 on ubuntu-26.04, see #6224).

…or profile

ubuntu-latest now resolves to ubuntu-26.04, which ships AppArmor 5.0 with
an /etc/apparmor.d/fusermount3 profile that only allows FUSE mounts under a
few directories. The profile attaches by path to /usr/bin/fusermount3 even
for privileged FUSE pods on Kind nodes, so the JindoRuntime e2e mount fails
with EACCES and the job hangs until the step timeout (fluid-cloudnative#6224).

Unload the profile from the ephemeral runner before creating the Kind
cluster and switch runs-on back to ubuntu-latest. On runner images without
the profile (ubuntu-24.04 and older) the step is a no-op; if the profile
exists but cannot be unloaded, the step fails fast instead of letting the
e2e hang for 30 minutes.

Fixes fluid-cloudnative#6224

Signed-off-by: cheyang <cheyang@163.com>
…r on PATH

Signed-off-by: cheyang <cheyang@163.com>
@codecov

codecov Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.75%. Comparing base (a01c038) to head (474f4e3).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #6235   +/-   ##
=======================================
  Coverage   65.75%   65.75%           
=======================================
  Files         486      486           
  Lines       34459    34459           
=======================================
  Hits        22660    22660           
  Misses      10044    10044           
  Partials     1755     1755           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cheyang
cheyang force-pushed the cheyang-kind-e2e-unload-fusermount3-apparmor branch from da56ff4 to 474f4e3 Compare November 10, 2026 22:21
@sonarqubecloud

Copy link
Copy Markdown

@RongGu RongGu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm
/approve

@RongGu
RongGu merged commit 849bfee into fluid-cloudnative:master Nov 12, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants