Skip to content

Commit

Permalink
Enable runc.v2 as the default runtime in test.
Browse files Browse the repository at this point in the history
Signed-off-by: Lantao Liu <lantaol@google.com>
  • Loading branch information
Random-Liu committed Apr 4, 2019
1 parent b23b406 commit fae4f79
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 12 deletions.
8 changes: 4 additions & 4 deletions cluster/gce/configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,6 @@ disabled_plugins = ["restart"]
[debug]
level = "${log_level}"
[plugins.linux]
shim = "${CONTAINERD_HOME}/usr/local/bin/containerd-shim"
runtime = "${CONTAINERD_HOME}/usr/local/sbin/runc"
[plugins.cri]
stream_server_address = "127.0.0.1"
stream_server_port = "0"
Expand All @@ -178,6 +174,10 @@ disabled_plugins = ["restart"]
conf_template = "${cni_template_path}"
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://mirror.gcr.io","https://registry-1.docker.io"]
[plugins.cri.containerd.default_runtime]
runtime_type = "io.containerd.runc.v2"
[plugins.cri.containerd.default_runtime.options]
BinaryName = "${CONTAINERD_HOME}/usr/local/sbin/runc"
EOF
chmod 644 "${config_path}"

Expand Down
10 changes: 7 additions & 3 deletions pkg/server/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,10 @@ const (
const (
// linuxRuntime is the legacy linux runtime for shim v1.
linuxRuntime = "io.containerd.runtime.v1.linux"
// runcRuntime is the runc runtime for shim v2.
runcRuntime = "io.containerd.runc.v1"
// runcRuntimeV1 is the runc v1 runtime for shim v2.
runcRuntimeV1 = "io.containerd.runc.v1"
// runcRuntimeV2 is the runc v2 runtime for shim v2.
runcRuntimeV2 = "io.containerd.runc.v2"
)

// makeSandboxName generates sandbox name from sandbox metadata. The name
Expand Down Expand Up @@ -427,7 +429,9 @@ func generateRuntimeOptions(r criconfig.Runtime, c criconfig.Config) (interface{
// getRuntimeOptionsType gets empty runtime options by the runtime type name.
func getRuntimeOptionsType(t string) interface{} {
switch t {
case runcRuntime:
case runcRuntimeV1:
fallthrough
case runcRuntimeV2:
return &runcoptions.Options{}
case linuxRuntime:
return &runctypes.RuncOptions{}
Expand Down
32 changes: 27 additions & 5 deletions pkg/server/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ systemd_cgroup = true
[containerd.default_runtime]
runtime_type = "` + linuxRuntime + `"
[containerd.runtimes.runc]
runtime_type = "` + runcRuntime + `"
runtime_type = "` + runcRuntimeV1 + `"
[containerd.runtimes.runcv2]
runtime_type = "` + runcRuntimeV2 + `"
`
nonNilOpts := `
systemd_cgroup = true
Expand All @@ -227,30 +229,41 @@ systemd_cgroup = true
Runtime = "default"
RuntimeRoot = "/default"
[containerd.runtimes.runc]
runtime_type = "` + runcRuntime + `"
runtime_type = "` + runcRuntimeV1 + `"
[containerd.runtimes.runc.options]
BinaryName = "runc"
Root = "/runc"
NoNewKeyring = true
[containerd.runtimes.runcv2]
runtime_type = "` + runcRuntimeV2 + `"
[containerd.runtimes.runcv2.options]
BinaryName = "runc"
Root = "/runcv2"
NoNewKeyring = true
`
var nilOptsConfig, nonNilOptsConfig criconfig.Config
_, err := toml.Decode(nilOpts, &nilOptsConfig)
require.NoError(t, err)
_, err = toml.Decode(nonNilOpts, &nonNilOptsConfig)
require.NoError(t, err)
require.Len(t, nilOptsConfig.Runtimes, 1)
require.Len(t, nonNilOptsConfig.Runtimes, 1)
require.Len(t, nilOptsConfig.Runtimes, 2)
require.Len(t, nonNilOptsConfig.Runtimes, 2)

for desc, test := range map[string]struct {
r criconfig.Runtime
c criconfig.Config
expectedOptions interface{}
}{
"when options is nil, should return nil option for non legacy runtime": {
"when options is nil, should return nil option for io.containerd.runc.v1": {
r: nilOptsConfig.Runtimes["runc"],
c: nilOptsConfig,
expectedOptions: nil,
},
"when options is nil, should return nil option for io.containerd.runc.v2": {
r: nilOptsConfig.Runtimes["runcv2"],
c: nilOptsConfig,
expectedOptions: nil,
},
"when options is nil, should use legacy fields for legacy runtime": {
r: nilOptsConfig.DefaultRuntime,
c: nilOptsConfig,
Expand All @@ -267,6 +280,15 @@ systemd_cgroup = true
NoNewKeyring: true,
},
},
"when options is not nil, should be able to decode for io.containerd.runc.v2": {
r: nonNilOptsConfig.Runtimes["runcv2"],
c: nonNilOptsConfig,
expectedOptions: &runcoptions.Options{
BinaryName: "runc",
Root: "/runcv2",
NoNewKeyring: true,
},
},
"when options is not nil, should be able to decode for legacy runtime": {
r: nonNilOptsConfig.DefaultRuntime,
c: nonNilOptsConfig,
Expand Down

0 comments on commit fae4f79

Please sign in to comment.