cli: add version validation and force flag

Version validation checks that the configured versions
are not more than one minor version below the CLI's version.
The validation can be disabled using --force.
This is necessary for now during development as the CLI
does not have a prerelease version, as our images do.
This commit is contained in:
Otto Bittner 2023-01-31 11:45:31 +01:00
parent 3a7b829107
commit f204c24174
29 changed files with 590 additions and 61 deletions

View file

@ -73,9 +73,9 @@ func (c *createCmd) create(cmd *cobra.Command, creator cloudCreator, fileHandler
}
c.log.Debugf("Loading configuration file from %q", flags.configPath)
conf, err := config.New(fileHandler, flags.configPath)
conf, err := config.New(fileHandler, flags.configPath, flags.force)
if err != nil {
return displayConfigValidationErrors(cmd.ErrOrStderr(), err)
return config.DisplayValidationErrors(cmd.ErrOrStderr(), err)
}
c.log.Debugf("Checking configuration for warnings")
@ -201,11 +201,18 @@ func (c *createCmd) parseCreateFlags(cmd *cobra.Command) (createFlags, error) {
}
c.log.Debugf("Configuration path flag is %q", configPath)
force, err := cmd.Flags().GetBool("force")
if err != nil {
return createFlags{}, fmt.Errorf("parsing force argument: %w", err)
}
c.log.Debugf("force flag is %t", force)
return createFlags{
controllerCount: controllerCount,
workerCount: workerCount,
name: name,
configPath: configPath,
force: force,
yes: yes,
}, nil
}
@ -216,6 +223,7 @@ type createFlags struct {
workerCount int
name string
configPath string
force bool
yes bool
}