Switch all our tests to version 2

Also warn when someone uses version 1

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
Davanum Srinivas 2021-04-11 19:49:37 -04:00
parent 2a2d779594
commit 9ad087947d
No known key found for this signature in database
GPG Key ID: 80D83A796103BF59
8 changed files with 28 additions and 18 deletions

View File

@ -427,8 +427,9 @@ jobs:
BDIR="$(mktemp -d -p $PWD)"
mkdir -p ${BDIR}/{root,state}
cat > ${BDIR}/config.toml <<EOF
[plugins.cri.containerd.default_runtime]
runtime_type = "${TEST_RUNTIME}"
version = 2
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "${TEST_RUNTIME}"
EOF
sudo ls /etc/cni/net.d
sudo PATH=$PATH BDIR=$BDIR /usr/local/bin/containerd -a ${BDIR}/c.sock --config ${BDIR}/config.toml --root ${BDIR}/root --state ${BDIR}/state --log-level debug &> ${BDIR}/containerd-cri.log &

View File

@ -294,7 +294,8 @@ The daemon's configuration file, commonly located in `/etc/containerd/config.tom
is versioned and backwards compatible. The `version` field in the config
file specifies the config's version. If no version number is specified inside
the config file then it is assumed to be a version 1 config and parsed as such.
Use `version = 2` to enable version 2 config.
Please use `version = 2` to enable version 2 config as version 1 has been
deprecated.
### Not Covered
@ -324,3 +325,4 @@ The deprecated features are shown in the following table:
|----------------------------------------------------------------------|---------------------|----------------------------|
| Runtime V1 API and implementation (`io.containerd.runtime.v1.linux`) | containerd v1.4 | containerd v2.0 |
| Runc V1 implementation of Runtime V2 (`io.containerd.runc.v1`) | containerd v1.4 | containerd v2.0 |
| config.toml `version = 1` | containerd v1.5 | containerd v2.0 |

View File

@ -120,7 +120,7 @@ var configCommand = cli.Command{
func platformAgnosticDefaultConfig() *srvconfig.Config {
return &srvconfig.Config{
Version: 1,
Version: 2,
Root: defaults.DefaultRootDir,
State: defaults.DefaultStateDir,
GRPC: srvconfig.GRPCConfig{

View File

@ -503,12 +503,12 @@ func createShimDebugConfig() string {
os.Exit(1)
}
defer f.Close()
if _, err := f.WriteString("version = 1\n"); err != nil {
if _, err := f.WriteString("version = 2\n"); err != nil {
fmt.Fprintf(os.Stderr, "Failed to write to config file %s: %s\n", f.Name(), err)
os.Exit(1)
}
if _, err := f.WriteString("[plugins.linux]\n\tshim_debug = true\n"); err != nil {
if _, err := f.WriteString("[plugins.\"io.containerd.runtime.v1.linux\"]\n\tshim_debug = true\n"); err != nil {
fmt.Fprintf(os.Stderr, "Failed to write to config file %s: %s\n", f.Name(), err)
os.Exit(1)
}

View File

@ -129,9 +129,9 @@ func TestDaemonRuntimeRoot(t *testing.T) {
}
}()
configTOML := `
version = 1
version = 2
[plugins]
[plugins.cri]
[plugins."io.containerd.grpc.v1.cri"]
stream_server_port = "0"
`
@ -227,7 +227,7 @@ func TestDaemonCustomCgroup(t *testing.T) {
customCgroup := fmt.Sprintf("%d", time.Now().Nanosecond())
configTOML := `
version = 1
version = 2
[cgroup]
path = "` + customCgroup + `"`

View File

@ -30,14 +30,15 @@ if [ -z "${CONTAINERD_CONFIG_FILE}" ]; then
truncate --size 0 "${config_file}"
if command -v sestatus >/dev/null 2>&1; then
cat >>${config_file} <<EOF
[plugins.cri]
version=2
[plugins."io.containerd.grpc.v1.cri"]
enable_selinux = true
EOF
fi
if [ -n "${CONTAINERD_RUNTIME}" ]; then
cat >>${config_file} <<EOF
[plugins.cri.containerd.default_runtime]
runtime_type="${CONTAINERD_RUNTIME}"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "${CONTAINERD_RUNTIME}"
EOF
fi
CONTAINERD_CONFIG_FILE="${config_file}"

View File

@ -23,6 +23,7 @@ import (
"github.com/imdario/mergo"
"github.com/pelletier/go-toml"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/plugin"
@ -94,8 +95,9 @@ func (c *Config) GetVersion() int {
// ValidateV2 validates the config for a v2 file
func (c *Config) ValidateV2() error {
if c.GetVersion() != 2 {
return nil
version := c.GetVersion()
if version < 2 {
logrus.Warnf("deprecated version : `%d`, please switch to version `2`", version)
}
for _, p := range c.DisabledPlugins {
if len(strings.Split(p, ".")) < 4 {
@ -258,7 +260,11 @@ func LoadConfig(path string, out *Config) error {
out.Imports = append(out.Imports, path)
}
return out.ValidateV2()
err := out.ValidateV2()
if err != nil {
return errors.Wrapf(err, "failed to load TOML from %s", path)
}
return nil
}
// loadConfigFile decodes a TOML file at the given path

View File

@ -185,8 +185,8 @@ imports = ["data1.toml", "data2.toml"]
func TestDecodePlugin(t *testing.T) {
data := `
version = 1
[plugins.linux]
version = 2
[plugins."io.containerd.runtime.v1.linux"]
shim_debug = true
`
@ -203,7 +203,7 @@ version = 1
assert.NilError(t, err)
pluginConfig := map[string]interface{}{}
_, err = out.Decode(&plugin.Registration{ID: "linux", Config: &pluginConfig})
_, err = out.Decode(&plugin.Registration{Type: "io.containerd.runtime.v1", ID: "linux", Config: &pluginConfig})
assert.NilError(t, err)
assert.Equal(t, true, pluginConfig["shim_debug"])
}