diff --git a/libcontainer/configs/cgroup_linux.go b/libcontainer/configs/cgroup_linux.go index 715ec1cb9a6..a1e7f0afd44 100644 --- a/libcontainer/configs/cgroup_linux.go +++ b/libcontainer/configs/cgroup_linux.go @@ -127,8 +127,8 @@ type Resources struct { // SkipDevices allows to skip configuring device permissions. // Used by e.g. kubelet while creating a parent cgroup (kubepods) - // common for many containers. + // common for many containers, and by runc update. // // NOTE it is impossible to start a container which has this flag set. - SkipDevices bool `json:"skip_devices"` + SkipDevices bool `json:"-"` } diff --git a/update.go b/update.go index ce89de083cc..253c086be0d 100644 --- a/update.go +++ b/update.go @@ -329,6 +329,13 @@ other options are ignored. config.IntelRdt.MemBwSchema = memBwSchema } + // XXX(kolyshkin@): currently "runc update" is unable to change + // device configuration, so add this to skip device update. + // This helps in case an extra plugin (nvidia GPU) applies some + // configuration on top of what runc does. + // Note this field is not saved into container's state.json. + config.Cgroups.SkipDevices = true + return container.Set(config) }, }