diff --git a/pkg/linters/module/rules/module_yaml.go b/pkg/linters/module/rules/module_yaml.go index 80c1c078..0e15ed93 100644 --- a/pkg/linters/module/rules/module_yaml.go +++ b/pkg/linters/module/rules/module_yaml.go @@ -92,6 +92,7 @@ type DeckhouseModule struct { Requirements *ModuleRequirements `json:"requirements,omitempty"` Accessibility *ModuleAccessibility `json:"accessibility,omitempty"` Update *ModuleUpdate `json:"update,omitempty"` + Disable *ModuleDisable `json:"disable,omitempty"` } type ModuleDescriptions struct { @@ -99,6 +100,17 @@ type ModuleDescriptions struct { Russian string `json:"ru,omitempty"` } +type ModuleDisable struct { + Confirmation bool `json:"confirmation,omitempty"` + Message string `json:"message,omitempty"` + Messages ModuleDisableMessages `json:"messages,omitempty"` +} + +type ModuleDisableMessages struct { + English string `json:"en,omitempty"` + Russian string `json:"ru,omitempty"` +} + type ModuleRequirements struct { ModulePlatformRequirements `json:",inline"` ParentModules map[string]string `json:"modules,omitempty"` @@ -283,6 +295,10 @@ func (r *DefinitionFileRule) CheckDefinitionFile(modulePath string, errorList *e errorList.WithMaxLevel(maxLevel).Error("Field 'description' is deprecated, use 'descriptions.en' instead") } + if yml.Disable != nil && yml.Disable.Message != "" { + errorList.WithMaxLevel(maxLevel).Error("Field 'disable.message' is deprecated, use 'disable.messages' (with 'ru'/'en') instead") + } + if yml.Critical && yml.Weight == 0 { errorList.Error("Field 'weight' must not be zero for critical modules") }