Skip to content

Commit 3a0a35b

Browse files
committed
Revert "Don't check for apparmor_parser to be present"
This reverts commit 1acca8b. As stated in the Godoc, this function is intended to check for presence of `apparmor_parser`. Changing this regressed the public API of containerd, and directly contradicts the way that this function is consumed inside of containerd itself: * https://github.com/containerd/containerd/blob/fdfdc9bfc0f865a43c88171110615d1510fad3bc/pkg/apparmor/apparmor.go#L20 * https://github.com/containerd/containerd/blob/fdfdc9bfc0f865a43c88171110615d1510fad3bc/pkg/cri/sbserver/helpers_linux.go#L85 * https://github.com/containerd/containerd/blob/fdfdc9bfc0f865a43c88171110615d1510fad3bc/pkg/cri/server/helpers_linux.go#L144 This has lead to a number of painful regressions and attempted fixes in Moby: * moby/moby#44900 * moby/moby#44902 * moby/moby#44970 While reverting this late into the life of 1.6 and at the start of the life of 1.7 is likely painful, I think this is ultimately the best path to take, as containerd is subject to the same failure to start containers with an AppArmor kernel when `apparmor_parser` is missing as Moby. Signed-off-by: Bjorn Neergaard <[email protected]> (cherry picked from commit a326510) Signed-off-by: Bjorn Neergaard <[email protected]>
1 parent c553746 commit 3a0a35b

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

pkg/apparmor/apparmor_linux.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ func hostSupports() bool {
3535
checkAppArmor.Do(func() {
3636
// see https://github.com/opencontainers/runc/blob/0d49470392206f40eaab3b2190a57fe7bb3df458/libcontainer/apparmor/apparmor_linux.go
3737
if _, err := os.Stat("/sys/kernel/security/apparmor"); err == nil && os.Getenv("container") == "" {
38-
buf, err := os.ReadFile("/sys/module/apparmor/parameters/enabled")
39-
appArmorSupported = err == nil && len(buf) > 1 && buf[0] == 'Y'
38+
if _, err = os.Stat("/sbin/apparmor_parser"); err == nil {
39+
buf, err := os.ReadFile("/sys/module/apparmor/parameters/enabled")
40+
appArmorSupported = err == nil && len(buf) > 1 && buf[0] == 'Y'
41+
}
4042
}
4143
})
4244
return appArmorSupported

0 commit comments

Comments
 (0)