Fixes after runc libcontainer and docker update

- libcontainer renamed
  `github.com/opencontainers/runc/libcontainer/configs` to
  `github.com/opencontainers/runc/libcontainer/devices` so use the new
  references

- Update `dockershim` `ContainerCreate` call after docker update to
  v20.10.2
This commit is contained in:
David Porter 2021-03-08 17:02:51 -08:00
parent b5dd78da3d
commit 904cb67267
4 changed files with 16 additions and 13 deletions

View File

@ -31,6 +31,7 @@ import (
cgroupfs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2" cgroupfs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2"
cgroupsystemd "github.com/opencontainers/runc/libcontainer/cgroups/systemd" cgroupsystemd "github.com/opencontainers/runc/libcontainer/cgroups/systemd"
libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs" libcontainerconfigs "github.com/opencontainers/runc/libcontainer/configs"
libcontainerdevices "github.com/opencontainers/runc/libcontainer/devices"
"k8s.io/klog/v2" "k8s.io/klog/v2"
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
@ -468,13 +469,13 @@ func setResourcesV2(cgroupConfig *libcontainerconfigs.Cgroup) error {
if err := propagateControllers(cgroupConfig.Path); err != nil { if err := propagateControllers(cgroupConfig.Path); err != nil {
return err return err
} }
cgroupConfig.Resources.Devices = []*libcontainerconfigs.DeviceRule{ cgroupConfig.Resources.Devices = []*libcontainerdevices.Rule{
{ {
Type: 'a', Type: 'a',
Permissions: "rwm", Permissions: "rwm",
Allow: true, Allow: true,
Minor: libcontainerconfigs.Wildcard, Minor: libcontainerdevices.Wildcard,
Major: libcontainerconfigs.Wildcard, Major: libcontainerdevices.Wildcard,
}, },
} }
cgroupConfig.Resources.SkipDevices = true cgroupConfig.Resources.SkipDevices = true
@ -499,13 +500,13 @@ func setResourcesV2(cgroupConfig *libcontainerconfigs.Cgroup) error {
func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcontainerconfigs.Resources { func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcontainerconfigs.Resources {
resources := &libcontainerconfigs.Resources{ resources := &libcontainerconfigs.Resources{
Devices: []*libcontainerconfigs.DeviceRule{ Devices: []*libcontainerdevices.Rule{
{ {
Type: 'a', Type: 'a',
Permissions: "rwm", Permissions: "rwm",
Allow: true, Allow: true,
Minor: libcontainerconfigs.Wildcard, Minor: libcontainerdevices.Wildcard,
Major: libcontainerconfigs.Wildcard, Major: libcontainerdevices.Wildcard,
}, },
}, },
SkipDevices: true, SkipDevices: true,

View File

@ -38,6 +38,7 @@ import (
utilio "k8s.io/utils/io" utilio "k8s.io/utils/io"
utilpath "k8s.io/utils/path" utilpath "k8s.io/utils/path"
libcontainerdevices "github.com/opencontainers/runc/libcontainer/devices"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
utilerrors "k8s.io/apimachinery/pkg/util/errors" utilerrors "k8s.io/apimachinery/pkg/util/errors"
@ -392,13 +393,13 @@ func createManager(containerName string) (cgroups.Manager, error) {
Parent: "/", Parent: "/",
Name: containerName, Name: containerName,
Resources: &configs.Resources{ Resources: &configs.Resources{
Devices: []*configs.DeviceRule{ Devices: []*libcontainerdevices.Rule{
{ {
Type: 'a', Type: 'a',
Permissions: "rwm", Permissions: "rwm",
Allow: true, Allow: true,
Minor: configs.Wildcard, Minor: libcontainerdevices.Wildcard,
Major: configs.Wildcard, Major: libcontainerdevices.Wildcard,
}, },
}, },
SkipDevices: true, SkipDevices: true,

View File

@ -28,6 +28,7 @@ import (
"github.com/opencontainers/runc/libcontainer/cgroups" "github.com/opencontainers/runc/libcontainer/cgroups"
cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs" cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
"github.com/opencontainers/runc/libcontainer/configs" "github.com/opencontainers/runc/libcontainer/configs"
libcontainerdevices "github.com/opencontainers/runc/libcontainer/devices"
utilversion "k8s.io/apimachinery/pkg/util/version" utilversion "k8s.io/apimachinery/pkg/util/version"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/klog/v2" "k8s.io/klog/v2"
@ -126,10 +127,10 @@ func createCgroupManager(name string) (cgroups.Manager, error) {
Memory: int64(memoryLimit), Memory: int64(memoryLimit),
MemorySwap: -1, MemorySwap: -1,
SkipDevices: true, SkipDevices: true,
Devices: []*configs.DeviceRule{ Devices: []*libcontainerdevices.Rule{
{ {
Minor: configs.Wildcard, Minor: libcontainerdevices.Wildcard,
Major: configs.Wildcard, Major: libcontainerdevices.Wildcard,
Type: 'a', Type: 'a',
Permissions: "rwm", Permissions: "rwm",
Allow: true, Allow: true,

View File

@ -145,7 +145,7 @@ func (d *kubeDockerClient) CreateContainer(opts dockertypes.ContainerCreateConfi
if opts.HostConfig != nil && opts.HostConfig.ShmSize <= 0 { if opts.HostConfig != nil && opts.HostConfig.ShmSize <= 0 {
opts.HostConfig.ShmSize = defaultShmSize opts.HostConfig.ShmSize = defaultShmSize
} }
createResp, err := d.client.ContainerCreate(ctx, opts.Config, opts.HostConfig, opts.NetworkingConfig, opts.Name) createResp, err := d.client.ContainerCreate(ctx, opts.Config, opts.HostConfig, opts.NetworkingConfig, nil, opts.Name)
if ctxErr := contextError(ctx); ctxErr != nil { if ctxErr := contextError(ctx); ctxErr != nil {
return nil, ctxErr return nil, ctxErr
} }