diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 6b1dbdc081e..8636f866638 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -25,6 +25,7 @@ import ( "net/url" "os" "path" + sysruntime "runtime" "sort" "strings" "sync" @@ -775,8 +776,11 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, opt(klet) } - klet.appArmorValidator = apparmor.NewValidator(containerRuntime) - klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewAppArmorAdmitHandler(klet.appArmorValidator)) + if sysruntime.GOOS == "linux" { + // AppArmor is a Linux kernel security module and it does not support other operating systems. + klet.appArmorValidator = apparmor.NewValidator(containerRuntime) + klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewAppArmorAdmitHandler(klet.appArmorValidator)) + } klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewNoNewPrivsAdmitHandler(klet.containerRuntime)) klet.softAdmitHandlers.AddPodAdmitHandler(lifecycle.NewProcMountAdmitHandler(klet.containerRuntime))