From c2938d10524ce89e3b3d5cd8cfa78627eb5f8116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Wei=C3=9Fe?= Date: Wed, 29 Mar 2023 09:43:11 +0200 Subject: [PATCH] Remove deprecated fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Weiße --- internal/config/config.go | 28 +++---------------- internal/config/config_doc.go | 49 +++------------------------------- internal/config/config_test.go | 1 - internal/config/validation.go | 20 -------------- 4 files changed, 7 insertions(+), 91 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index e58efd54e..6734bcebb 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -64,7 +64,7 @@ type Config struct { Image string `yaml:"image" validate:"required,version_compatibility"` // description: | // Name of the cluster. - Name string `yaml:"name" validate:"valid_name"` // TODO: v2.7: Use "required" validation for name + Name string `yaml:"name" validate:"valid_name,required"` // description: | // Size (in GB) of a node's disk to store the non-volatile state. StateDiskSizeGB int `yaml:"stateDiskSizeGB" validate:"min=0"` @@ -72,8 +72,8 @@ type Config struct { // Kubernetes version to be installed into the cluster. KubernetesVersion string `yaml:"kubernetesVersion" validate:"required,supported_k8s_version"` // description: | - // Microservice version to be installed into the cluster. Setting this value is optional until v2.7. Defaults to the version of the CLI. - MicroserviceVersion string `yaml:"microserviceVersion" validate:"omitempty,version_compatibility"` + // Microservice version to be installed into the cluster. Defaults to the version of the CLI. + MicroserviceVersion string `yaml:"microserviceVersion" validate:"required,version_compatibility"` // description: | // DON'T USE IN PRODUCTION: enable debug mode and use debug images. For usage, see: https://github.com/edgelesssys/constellation/blob/main/debugd/README.md DebugCluster *bool `yaml:"debugCluster" validate:"required"` @@ -83,25 +83,6 @@ type Config struct { // description: | // Supported cloud providers and their specific configurations. Provider ProviderConfig `yaml:"provider" validate:"dive"` - // description: | - // Configuration to apply during constellation upgrade. - // examples: - // - value: 'UpgradeConfig{ Image: "", Measurements: Measurements{} }' - Upgrade UpgradeConfig `yaml:"upgrade,omitempty" validate:"required"` -} - -// UpgradeConfig defines configuration used during constellation upgrade. -type UpgradeConfig struct { - // description: | - // Updated Constellation machine image to install on all nodes. - Image string `yaml:"image"` - // description: | - // Measurements of the updated image. - Measurements Measurements `yaml:"measurements"` - // description: | - // temporary field for upgrade migration - // TODO(AB#2654): Remove with refactoring upgrade plan command - CSP cloudprovider.Provider `yaml:"csp"` } // ProviderConfig are cloud-provider specific configuration values used by the CLI. @@ -639,9 +620,6 @@ func (c *Config) Validate(force bool) error { // Register provider validation validate.RegisterStructValidation(validateProvider, ProviderConfig{}) - // register custom validator that prints a deprecation warning. - validate.RegisterStructValidation(validateUpgradeConfig, UpgradeConfig{}) - err := validate.Struct(c) if err == nil { return nil diff --git a/internal/config/config_doc.go b/internal/config/config_doc.go index 182f8771f..7305345e7 100644 --- a/internal/config/config_doc.go +++ b/internal/config/config_doc.go @@ -12,7 +12,6 @@ import ( var ( ConfigDoc encoder.Doc - UpgradeConfigDoc encoder.Doc ProviderConfigDoc encoder.Doc AWSConfigDoc encoder.Doc AzureConfigDoc encoder.Doc @@ -25,7 +24,7 @@ func init() { ConfigDoc.Type = "Config" ConfigDoc.Comments[encoder.LineComment] = "Config defines configuration used by CLI." ConfigDoc.Description = "Config defines configuration used by CLI." - ConfigDoc.Fields = make([]encoder.Doc, 10) + ConfigDoc.Fields = make([]encoder.Doc, 9) ConfigDoc.Fields[0].Name = "version" ConfigDoc.Fields[0].Type = "string" ConfigDoc.Fields[0].Note = "" @@ -38,7 +37,7 @@ func init() { ConfigDoc.Fields[1].Comments[encoder.LineComment] = "Machine image version used to create Constellation nodes." ConfigDoc.Fields[2].Name = "name" ConfigDoc.Fields[2].Type = "string" - ConfigDoc.Fields[2].Note = "TODO: v2.7: Use \"required\" validation for name\n" + ConfigDoc.Fields[2].Note = "" ConfigDoc.Fields[2].Description = "Name of the cluster." ConfigDoc.Fields[2].Comments[encoder.LineComment] = "Name of the cluster." ConfigDoc.Fields[3].Name = "stateDiskSizeGB" @@ -54,8 +53,8 @@ func init() { ConfigDoc.Fields[5].Name = "microserviceVersion" ConfigDoc.Fields[5].Type = "string" ConfigDoc.Fields[5].Note = "" - ConfigDoc.Fields[5].Description = "Microservice version to be installed into the cluster. Setting this value is optional until v2.7. Defaults to the version of the CLI." - ConfigDoc.Fields[5].Comments[encoder.LineComment] = "Microservice version to be installed into the cluster. Setting this value is optional until v2.7. Defaults to the version of the CLI." + ConfigDoc.Fields[5].Description = "Microservice version to be installed into the cluster. Defaults to the version of the CLI." + ConfigDoc.Fields[5].Comments[encoder.LineComment] = "Microservice version to be installed into the cluster. Defaults to the version of the CLI." ConfigDoc.Fields[6].Name = "debugCluster" ConfigDoc.Fields[6].Type = "bool" ConfigDoc.Fields[6].Note = "" @@ -71,41 +70,6 @@ func init() { ConfigDoc.Fields[8].Note = "" ConfigDoc.Fields[8].Description = "Supported cloud providers and their specific configurations." ConfigDoc.Fields[8].Comments[encoder.LineComment] = "Supported cloud providers and their specific configurations." - ConfigDoc.Fields[9].Name = "upgrade" - ConfigDoc.Fields[9].Type = "UpgradeConfig" - ConfigDoc.Fields[9].Note = "" - ConfigDoc.Fields[9].Description = "Configuration to apply during constellation upgrade." - ConfigDoc.Fields[9].Comments[encoder.LineComment] = "Configuration to apply during constellation upgrade." - - ConfigDoc.Fields[9].AddExample("", UpgradeConfig{Image: "", Measurements: Measurements{}}) - - UpgradeConfigDoc.Type = "UpgradeConfig" - UpgradeConfigDoc.Comments[encoder.LineComment] = "UpgradeConfig defines configuration used during constellation upgrade." - UpgradeConfigDoc.Description = "UpgradeConfig defines configuration used during constellation upgrade." - - UpgradeConfigDoc.AddExample("", UpgradeConfig{Image: "", Measurements: Measurements{}}) - UpgradeConfigDoc.AppearsIn = []encoder.Appearance{ - { - TypeName: "Config", - FieldName: "upgrade", - }, - } - UpgradeConfigDoc.Fields = make([]encoder.Doc, 3) - UpgradeConfigDoc.Fields[0].Name = "image" - UpgradeConfigDoc.Fields[0].Type = "string" - UpgradeConfigDoc.Fields[0].Note = "" - UpgradeConfigDoc.Fields[0].Description = "Updated Constellation machine image to install on all nodes." - UpgradeConfigDoc.Fields[0].Comments[encoder.LineComment] = "Updated Constellation machine image to install on all nodes." - UpgradeConfigDoc.Fields[1].Name = "measurements" - UpgradeConfigDoc.Fields[1].Type = "Measurements" - UpgradeConfigDoc.Fields[1].Note = "" - UpgradeConfigDoc.Fields[1].Description = "Measurements of the updated image." - UpgradeConfigDoc.Fields[1].Comments[encoder.LineComment] = "Measurements of the updated image." - UpgradeConfigDoc.Fields[2].Name = "csp" - UpgradeConfigDoc.Fields[2].Type = "Provider" - UpgradeConfigDoc.Fields[2].Note = "" - UpgradeConfigDoc.Fields[2].Description = "temporary field for upgrade migration\nTODO(AB#2654): Remove with refactoring upgrade plan command" - UpgradeConfigDoc.Fields[2].Comments[encoder.LineComment] = "temporary field for upgrade migration" ProviderConfigDoc.Type = "ProviderConfig" ProviderConfigDoc.Comments[encoder.LineComment] = "ProviderConfig are cloud-provider specific configuration values used by the CLI." @@ -463,10 +427,6 @@ func (_ Config) Doc() *encoder.Doc { return &ConfigDoc } -func (_ UpgradeConfig) Doc() *encoder.Doc { - return &UpgradeConfigDoc -} - func (_ ProviderConfig) Doc() *encoder.Doc { return &ProviderConfigDoc } @@ -498,7 +458,6 @@ func GetConfigurationDoc() *encoder.FileDoc { Description: "Definitions for Constellation's user config file.\n\nThe config file is used by the CLI to create and manage a Constellation cluster.\n\nAll config relevant definitions, parsing and validation functions should go here.\n", Structs: []*encoder.Doc{ &ConfigDoc, - &UpgradeConfigDoc, &ProviderConfigDoc, &AWSConfigDoc, &AzureConfigDoc, diff --git a/internal/config/config_test.go b/internal/config/config_test.go index e929736ae..909775330 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -386,7 +386,6 @@ func TestConfigGeneratedDocsFresh(t *testing.T) { updateMsg := "remember to re-generate config docs! 🔨" assert.Len(ConfigDoc.Fields, reflect.ValueOf(Config{}).NumField(), updateMsg) - assert.Len(UpgradeConfigDoc.Fields, reflect.ValueOf(UpgradeConfig{}).NumField(), updateMsg) assert.Len(ProviderConfigDoc.Fields, reflect.ValueOf(ProviderConfig{}).NumField(), updateMsg) assert.Len(AWSConfigDoc.Fields, reflect.ValueOf(AWSConfig{}).NumField(), updateMsg) assert.Len(AzureConfigDoc.Fields, reflect.ValueOf(AzureConfig{}).NumField(), updateMsg) diff --git a/internal/config/validation.go b/internal/config/validation.go index a43a3e73a..f1f208fc4 100644 --- a/internal/config/validation.go +++ b/internal/config/validation.go @@ -426,20 +426,6 @@ func returnsTrue(_ validator.FieldLevel) bool { return true } -// validateUpgradeConfig prints a warning to STDERR and validates the field successfully. -func validateUpgradeConfig(sl validator.StructLevel) { - config, ok := sl.Current().Interface().(UpgradeConfig) - if !ok { - sl.ReportError(config, "upgrade", "UpgradeConfig", "malformed_upgrade_config", "") - } - // A valid `upgrade` section will always have a non-nil Measurements map. - // Only print a warning if the user actually specified an upgrade section. - if config.Image == "" && config.CSP == cloudprovider.Unknown && config.Measurements == nil { - return - } - fmt.Fprintln(os.Stderr, "WARNING: the config key `upgrade` will be deprecated in an upcoming version. Please check the documentation for more information.") -} - func registerValidateNameError(ut ut.Translator) error { return ut.Add("validate_name", "{0} must be no more than {1} characters long", true) } @@ -459,12 +445,6 @@ func (c *Config) translateValidateNameError(ut ut.Translator, fe validator.Field // Since this value may differ between providers, we can't simply use built-in validation. // This also allows us to eventually add more validation rules for constellation names if necessary. func (c *Config) validateName(fl validator.FieldLevel) bool { - // TODO: v2.7: remove fallback to defaultName and make name a required field - if c.Name == "" { - fmt.Fprintln(os.Stderr, "WARNING: the config key `name` is not set. This key will be required in the next version. Falling back to default name.") - c.Name = defaultName - } - if c.Provider.AWS != nil { return len(fl.Field().String()) <= constants.AWSConstellationNameLength }