cri: add deprecation warning for configs

Signed-off-by: Samuel Karp <samuelkarp@google.com>
This commit is contained in:
Samuel Karp 2023-11-01 17:34:03 -07:00
parent 35924bccc0
commit a596d09ec9
No known key found for this signature in database
GPG Key ID: 997C5A3CD3167CB5
3 changed files with 48 additions and 0 deletions

View File

@ -401,6 +401,11 @@ func ValidatePluginConfig(ctx context.Context, c *PluginConfig) ([]deprecation.W
log.G(ctx).Warning("`mirrors` is deprecated, please use `config_path` instead") log.G(ctx).Warning("`mirrors` is deprecated, please use `config_path` instead")
} }
if len(c.Registry.Configs) != 0 {
warnings = append(warnings, deprecation.CRIRegistryConfigs)
log.G(ctx).Warning("`configs` is deprecated, please use `config_path` instead")
}
// Validation for deprecated auths options and mapping it to configs. // Validation for deprecated auths options and mapping it to configs.
if len(c.Registry.Auths) != 0 { if len(c.Registry.Auths) != 0 {
if c.Registry.Configs == nil { if c.Registry.Configs == nil {

View File

@ -147,6 +147,45 @@ func TestValidateConfig(t *testing.T) {
}, },
warnings: []deprecation.Warning{deprecation.CRIRegistryMirrors}, warnings: []deprecation.Warning{deprecation.CRIRegistryMirrors},
}, },
"deprecated configs": {
config: &PluginConfig{
ContainerdConfig: ContainerdConfig{
DefaultRuntimeName: RuntimeDefault,
Runtimes: map[string]Runtime{
RuntimeDefault: {},
},
},
Registry: Registry{
Configs: map[string]RegistryConfig{
"gcr.io": {
Auth: &AuthConfig{
Username: "test",
},
},
},
},
},
expected: &PluginConfig{
ContainerdConfig: ContainerdConfig{
DefaultRuntimeName: RuntimeDefault,
Runtimes: map[string]Runtime{
RuntimeDefault: {
Sandboxer: string(ModePodSandbox),
},
},
},
Registry: Registry{
Configs: map[string]RegistryConfig{
"gcr.io": {
Auth: &AuthConfig{
Username: "test",
},
},
},
},
},
warnings: []deprecation.Warning{deprecation.CRIRegistryConfigs},
},
"privileged_without_host_devices_all_devices_allowed without privileged_without_host_devices": { "privileged_without_host_devices_all_devices_allowed without privileged_without_host_devices": {
config: &PluginConfig{ config: &PluginConfig{
ContainerdConfig: ContainerdConfig{ ContainerdConfig: ContainerdConfig{

View File

@ -29,6 +29,8 @@ const (
CRIRegistryMirrors Warning = Prefix + "cri-registry-mirrors" CRIRegistryMirrors Warning = Prefix + "cri-registry-mirrors"
// CRIRegistryAuths is a warning for the use of the `auths` property // CRIRegistryAuths is a warning for the use of the `auths` property
CRIRegistryAuths Warning = Prefix + "cri-registry-auths" CRIRegistryAuths Warning = Prefix + "cri-registry-auths"
// CRIRegistryConfigs is a warning for the use of the `configs` property
CRIRegistryConfigs Warning = Prefix + "cri-registry-configs"
) )
var messages = map[Warning]string{ var messages = map[Warning]string{
@ -39,6 +41,8 @@ var messages = map[Warning]string{
"Use `config_path` instead.", "Use `config_path` instead.",
CRIRegistryAuths: "The `auths` property of `[plugins.\"io.containerd.grpc.v1.cri\".registry]` is deprecated since containerd v1.3 and will be removed in containerd v2.0." + CRIRegistryAuths: "The `auths` property of `[plugins.\"io.containerd.grpc.v1.cri\".registry]` is deprecated since containerd v1.3 and will be removed in containerd v2.0." +
"Use `ImagePullSecrets` instead.", "Use `ImagePullSecrets` instead.",
CRIRegistryConfigs: "The `configs` property of `[plugins.\"io.containerd.grpc.v1.cri\".registry]` is deprecated since containerd v1.5 and will be removed in containerd v2.0." +
"Use `config_path` instead.",
} }
// Valid checks whether a given Warning is valid // Valid checks whether a given Warning is valid