diff --git a/client-programs/pkg/cmd/admin_cluster_create_cmd.go b/client-programs/pkg/cmd/admin_cluster_create_cmd.go index 7d86e338..e6bcc7ed 100644 --- a/client-programs/pkg/cmd/admin_cluster_create_cmd.go +++ b/client-programs/pkg/cmd/admin_cluster_create_cmd.go @@ -66,7 +66,7 @@ func (o *AdminClusterCreateOptions) Run() error { var err error = nil if o.Config == "" { - fullConfig = config.NewDefaultInstallationConfig() + fullConfig, err = config.NewDefaultInstallationConfig() } else { fullConfig, err = config.NewInstallationConfigFromFile(o.Config) } diff --git a/client-programs/pkg/cmd/admin_config_view_cmd.go b/client-programs/pkg/cmd/admin_config_view_cmd.go index 777f4d1a..2adad53d 100644 --- a/client-programs/pkg/cmd/admin_config_view_cmd.go +++ b/client-programs/pkg/cmd/admin_config_view_cmd.go @@ -17,12 +17,23 @@ type AdminConfigViewOptions struct { } func (o *AdminConfigViewOptions) Run() error { - fullConfig, err := config.NewInstallationConfigFromFile(o.Config) + var fullConfig *config.InstallationConfig + var err error = nil + + if o.Config != "" { + fullConfig, err = config.NewInstallationConfigFromFile(o.Config) + } else { + fullConfig, err = config.NewDefaultInstallationConfig() + } if err != nil { return err } + if fullConfig.ClusterInfrastructure.Provider == "" { + fullConfig.ClusterInfrastructure.Provider = "kind" + } + // This augments the installation config with the secrets that are cached locally if o.WithLocalSecrets { if fullConfig.ClusterInfrastructure.Provider != "kind" { diff --git a/client-programs/pkg/cmd/admin_resolver_deploy_cmd.go b/client-programs/pkg/cmd/admin_resolver_deploy_cmd.go index 97864f76..20999856 100644 --- a/client-programs/pkg/cmd/admin_resolver_deploy_cmd.go +++ b/client-programs/pkg/cmd/admin_resolver_deploy_cmd.go @@ -13,17 +13,24 @@ type AdminResolverDeployOptions struct { } func (o *AdminResolverDeployOptions) Run() error { - config, err := config.NewInstallationConfigFromFile(o.Config) + var fullConfig *config.InstallationConfig + var err error = nil + + if o.Config != "" { + fullConfig, err = config.NewInstallationConfigFromFile(o.Config) + } else { + fullConfig, err = config.NewDefaultInstallationConfig() + } if err != nil { return err } if o.Domain != "" { - config.ClusterIngress.Domain = o.Domain + fullConfig.ClusterIngress.Domain = o.Domain } - return resolver.DeployResolver(config.ClusterIngress.Domain, config.LocalDNSResolver.TargetAddress, config.LocalDNSResolver.ExtraDomains) + return resolver.DeployResolver(fullConfig.ClusterIngress.Domain, fullConfig.LocalDNSResolver.TargetAddress, fullConfig.LocalDNSResolver.ExtraDomains) } func (p *ProjectInfo) NewAdminResolverDeployCmd() *cobra.Command { diff --git a/client-programs/pkg/config/installationconfig.go b/client-programs/pkg/config/installationconfig.go index 8b8ac1c0..28a5eb1c 100644 --- a/client-programs/pkg/config/installationconfig.go +++ b/client-programs/pkg/config/installationconfig.go @@ -293,7 +293,7 @@ type EducatesDomainStruct struct { ClusterIngress ClusterIngressConfig `yaml:"clusterIngress,omitempty"` } -func NewDefaultInstallationConfig() *InstallationConfig { +func newDefaultInstallationConfig() *InstallationConfig { return &InstallationConfig{ ClusterInfrastructure: ClusterInfrastructureConfig{ Provider: "", @@ -321,29 +321,35 @@ func NewDefaultInstallationConfig() *InstallationConfig { } } -func NewInstallationConfigFromFile(configFile string) (*InstallationConfig, error) { +func NewDefaultInstallationConfig() (*InstallationConfig, error) { config := &InstallationConfig{} - if configFile != "" { - data, err := os.ReadFile(configFile) + valuesFile := path.Join(utils.GetEducatesHomeDir(), "values.yaml") - if err != nil { - return nil, errors.Wrapf(err, "failed to read installation config file %s", configFile) - } + data, err := os.ReadFile(valuesFile) + if err == nil && len(data) != 0 { if err := yaml.UnmarshalStrict(data, &config); err != nil { - return nil, errors.Wrapf(err, "unable to parse installation config file %s", configFile) + return nil, errors.Wrapf(err, "unable to parse default config file %s", valuesFile) } } else { - valuesFile := path.Join(utils.GetEducatesHomeDir(), "values.yaml") + config = newDefaultInstallationConfig() + } - data, err := os.ReadFile(valuesFile) + return config, nil +} - if err == nil && len(data) != 0 { - if err := yaml.UnmarshalStrict(data, &config); err != nil { - return nil, errors.Wrapf(err, "unable to parse default config file %s", valuesFile) - } - } +func NewInstallationConfigFromFile(configFile string) (*InstallationConfig, error) { + config := &InstallationConfig{} + + data, err := os.ReadFile(configFile) + + if err != nil { + return nil, errors.Wrapf(err, "failed to read installation config file %s", configFile) + } + + if err := yaml.UnmarshalStrict(data, &config); err != nil { + return nil, errors.Wrapf(err, "unable to parse installation config file %s", configFile) } return config, nil