Skip to content

feat: add a containerd config to enable EROFS snapshotter and referrer flag when IPE is enabled - #98

Merged
Dallas Delaney (dallasd1) merged 8 commits into
aclmainfrom
dadelan/ipe-config-containerd-pr
Oct 19, 2026
Merged

Dallas Delaney (dallasd1) merged 8 commits into
aclmainfrom
dadelan/ipe-config-containerd-pr

Conversation

@dallasd1

@dallasd1 Dallas Delaney (dallasd1) commented Oct 9, 2026 •

Copy link
Copy Markdown

Summary

Add a containerd config to enable EROFS snapshotter and referrer flag when IPE is enabled. This config change will only be triggered if IPE is in audit mode.

When IPE is set, IPE's loader will run the acl-select-profile script to merge the base containerd config that AgentBaker or ACL sets with the EROFS config. The merged configuration check is only meant to be used against the base ACL and base AgentBaker configurations, not a general config validator. None of the settings in the base config get overwritten.

This is a follow up PR for after the containerd2 patch enabling dmverity referrers is merged: #99

Change Log

  • sysext for containerd gets the erofs-utils package

Type of Change

  • Image build change (base image, sysexts, OEM images)
  • Package/SPEC update
  • CI/automation change
  • SDK/toolchain update
  • Configuration change
  • Documentation update
  • Bug fix

Does this affect the image build?

  • Yes
  • No

Associated Issues

Test Methodology

  • Test details: The tests in acl-pipelines pass, the AKS e2e tests all pass, local validation of non-IPE OverlayFS and IPE EROFS behavior was tested and with containerd configurations examined for expected values.

Merge Checklist

All applicable boxes should be checked before merging

  • Image builds successfully with this change (or image build is not affected)
  • Any updated packages/SPECs build successfully
  • Relevant kola tests pass
  • All package sources are available
  • Source files have up-to-date hashes/manifests
  • Documentation has been updated to match any changes
  • Ready to merge

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The documented enforcing-mode behavior contradicts the loader implementation and its tests.

1 open finding
What changed in this PR

Adds IPE-triggered EROFS configuration for containerd while preserving the selected base configuration.

Changes:

  • Adds EROFS tooling and containerd profile assets.
  • Installs the profile after IPE activation.
  • Adds runtime/offline validation and documentation.
File Description
build_library/​rpm/​sysext_mangle_containerd-flatcar.sh Installs EROFS profile assets.
build_library/​rpm/​dracut_install.sh Adds the profile to the IPE dracut module.
build_library/​rpm/​additional_files/​dracut-acl-ipe-load/​module-setup.sh Installs the profile into initramfs.
build_library/​rpm/​additional_files/​dracut-acl-ipe-load/​acl-ipe-load.sh Activates the containerd drop-in with IPE.
build_library/​rpm/​additional_files/​containerd2/​containerd-acl-select-profile Merges and validates containerd configurations.
build_library/​rpm/​additional_files/​containerd2/​containerd-acl-profile.conf Overrides containerd startup for EROFS.
build_library/​rpm/​additional_files/​containerd2/​containerd-acl-erofs.toml Configures EROFS snapshotting and referrers.
acl/​tests/​ipe/​run-ipe-audit-test.sh Validates the active containerd profile.
acl/​tests/​ipe/​offline/​test-ipe-loader-runtime.sh Tests profile installation by IPE mode.
acl/​sysexts.yaml Adds erofs-utils to the containerd sysext.
acl/​docs/​BUILD_RPM_IMAGE_README.md Documents IPE/containerd integration.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread acl/tests/ipe/offline/test-ipe-loader-runtime.sh
@dallasd1
Dallas Delaney (dallasd1) marked this pull request as ready for review October 10, 2026 01:02
@dallasd1
Dallas Delaney (dallasd1) requested a review from a team as a code owner October 10, 2026 01:02
- update documentation distinguishing audit mode behavior vs. enforcing
- dont fail containerd if the merged config has conflicts in audit mode. Use the base config instead and deal with audit denials
- add tests to check more config combinations
- add extra config validation checks for built-in containerd transfer service conflicts
Copilot AI balanced review requested due to automatic review settings October 14, 2026 03:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The required containerd referrer-support patch remains unmerged, so the current RPM cannot activate the new profile.

1 open finding
1 resolved since last review

🧠 Review effort: Balanced

Comment thread acl/tests/ipe/run-ipe-audit-test.sh Outdated
Comment thread build_library/rpm/dracut_install.sh Outdated
Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
- fix handling of config validation by checking what the containerd binary supports before sending an error
- refactor erofs profile selection validation logic and move each check to its own function
- add unpack_config transfer config checks and tests
- add live VM test for config checking
Copilot AI balanced review requested due to automatic review settings October 16, 2026 00:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Unresolved validation issues and the unmerged containerd dependency require fixes and coordinated human validation.

3 open findings

🧠 Review effort: Balanced

Comment thread acl/tests/ipe/run-ipe-audit-test.sh
Copilot AI balanced review requested due to automatic review settings October 16, 2026 15:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Profile validation needs correction, and the initramfs-to-containerd integration warrants final human review.

2 open findings
2 resolved since last review

🧠 Review effort: Balanced

Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
Copilot AI balanced review requested due to automatic review settings October 16, 2026 15:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Nested-import precedence and explicit empty unpack configuration are not handled correctly.

4 open findings

🧠 Review effort: Balanced

Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
- add check for erofs differ field in erofs snapshotter config
- make naming more consistent for containerd-acl-profile.conf
Copilot AI balanced review requested due to automatic review settings October 16, 2026 16:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unpack configuration validation rejects supported automatic differ selection and misses explicitly empty unpack configurations.

5 open findings
1 resolved since last review

🧠 Review effort: Balanced

Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
Comment thread build_library/rpm/additional_files/containerd2/containerd-acl-select-profile Outdated
Copilot AI balanced review requested due to automatic review settings October 18, 2026 17:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Boot-time policy activation and containerd profile switching require final human integration validation against the supported base configurations and matching RPM.

No open issues 🎉

5 resolved since last review

Review effort: Balanced

@dallasd1
Dallas Delaney (dallasd1) merged commit 9fe43d2 into aclmain Oct 19, 2026
29 of 31 checks passed

This branch was successfully deployed

1 active deployment
development — 0186a980 Deployed Oct 18, 2026 by dallasd1 via Check if we need to update the SDK #156
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.

4 participants