Skip to content

Commit 89a88b9

Browse files
committed
Fix config loading
1 parent 7734ab5 commit 89a88b9

File tree

7 files changed

+65
-78
lines changed

7 files changed

+65
-78
lines changed

cmd/deploy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func (cmd *DeployCmd) Run(cobraCmd *cobra.Command, args []string) {
132132
}
133133

134134
// Dependencies
135-
err = dependency.DeployAll(config, generatedConfig.GetActive(), cmd.AllowCyclicDependencies, false, cmd.CreateImagePullSecrets, cmd.ForceDependencies, cmd.ForceBuild, cmd.BuildSequential, log.GetInstance())
135+
err = dependency.DeployAll(config, generatedConfig, cmd.AllowCyclicDependencies, false, cmd.CreateImagePullSecrets, cmd.ForceDependencies, cmd.ForceBuild, cmd.BuildSequential, log.GetInstance())
136136
if err != nil {
137137
log.Fatalf("Error deploying dependencies: %v", err)
138138
}

cmd/dev.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ func (cmd *DevCmd) Run(cobraCmd *cobra.Command, args []string) {
164164
func (cmd *DevCmd) buildAndDeploy(config *latest.Config, generatedConfig *generated.Config, client kubernetes.Interface, args []string) error {
165165
if cmd.SkipPipeline == false {
166166
// Dependencies
167-
err := dependency.DeployAll(config, generatedConfig.GetActive(), cmd.AllowCyclicDependencies, false, cmd.CreateImagePullSecrets, cmd.ForceDependencies, cmd.ForceBuild, cmd.BuildSequential, log.GetInstance())
167+
err := dependency.DeployAll(config, generatedConfig, cmd.AllowCyclicDependencies, false, cmd.CreateImagePullSecrets, cmd.ForceDependencies, cmd.ForceBuild, cmd.BuildSequential, log.GetInstance())
168168
if err != nil {
169169
log.Fatalf("Error deploying dependencies: %v", err)
170170
}
@@ -216,7 +216,7 @@ func (cmd *DevCmd) buildAndDeploy(config *latest.Config, generatedConfig *genera
216216
// Check if we should reload
217217
if _, ok := err.(*reloadError); ok {
218218
// Reload base config
219-
config, err = configutil.GetConfigFromPath(".", configutil.LoadedConfig, generatedConfig.GetActive())
219+
config, err = configutil.GetConfigFromPath(".", configutil.LoadedConfig, true, generatedConfig)
220220
if err != nil {
221221
return errors.Wrap(err, "load config")
222222
}

cmd/purge.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func (cmd *PurgeCmd) Run(cobraCmd *cobra.Command, args []string) {
8888

8989
// Purge dependencies
9090
if cmd.PurgeDependencies {
91-
err = dependency.PurgeAll(config, generatedConfig.GetActive(), cmd.AllowCyclicDependencies, log.GetInstance())
91+
err = dependency.PurgeAll(config, generatedConfig, cmd.AllowCyclicDependencies, log.GetInstance())
9292
if err != nil {
9393
log.Errorf("Error purging dependencies: %v", err)
9494
}

cmd/update/dependencies.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func (cmd *dependenciesCmd) RunDependencies(cobraCmd *cobra.Command, args []stri
5858
log.Fatalf("Error loading generated.yaml: %v", err)
5959
}
6060

61-
err = dependency.UpdateAll(config, generatedConfig.GetActive(), cmd.AllowCyclicDependencies, log.GetInstance())
61+
err = dependency.UpdateAll(config, generatedConfig, cmd.AllowCyclicDependencies, log.GetInstance())
6262
if err != nil {
6363
log.Fatal(err)
6464
}

pkg/devspace/config/configutil/get.go

Lines changed: 50 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ func GetConfig() *latest.Config {
112112
return config
113113
}
114114

115-
func loadBaseConfigFromPath(basePath string, loadConfig string, cache *generated.CacheConfig) (*latest.Config, *configs.ConfigDefinition, error) {
115+
func loadBaseConfigFromPath(basePath string, loadConfig string, loadOverwrites bool, generatedConfig *generated.Config, log log.Logger) (*latest.Config, *configs.ConfigDefinition, error) {
116116
var (
117117
config = latest.New().(*latest.Config)
118118
configRaw = latest.New().(*latest.Config)
@@ -159,7 +159,7 @@ func loadBaseConfigFromPath(basePath string, loadConfig string, cache *generated
159159
return nil, nil, fmt.Errorf("Error loading vars: %v", err)
160160
}
161161

162-
err = askQuestions(cache, vars)
162+
err = askQuestions(generatedConfig.GetActive(), vars)
163163
if err != nil {
164164
return nil, nil, fmt.Errorf("Error filling vars: %v", err)
165165
}
@@ -185,7 +185,7 @@ func loadBaseConfigFromPath(basePath string, loadConfig string, cache *generated
185185
}
186186

187187
// Ask questions
188-
err = askQuestions(cache, vars)
188+
err = askQuestions(generatedConfig.GetActive(), vars)
189189
if err != nil {
190190
return nil, nil, fmt.Errorf("Error filling vars: %v", err)
191191
}
@@ -198,28 +198,58 @@ func loadBaseConfigFromPath(basePath string, loadConfig string, cache *generated
198198
}
199199

200200
Merge(&config, deepCopy(configRaw))
201-
return config, configDefinition, nil
202-
}
203-
204-
// GetConfigFromPath loads the config from a given base path
205-
func GetConfigFromPath(basePath string, loadConfig string, cache *generated.CacheConfig) (*latest.Config, error) {
206-
config, configDefinition, err := loadBaseConfigFromPath(basePath, loadConfig, cache)
207-
if err != nil {
208-
return nil, err
209-
}
210201

211202
// Check if we should load overrides
212-
if configDefinition != nil {
213-
if configDefinition.Overrides != nil {
214-
for index, configWrapper := range *configDefinition.Overrides {
215-
overwriteConfig, err := loadConfigFromWrapper(basePath, configWrapper)
216-
if err != nil {
217-
return nil, fmt.Errorf("Error loading override config at index %d: %v", index, err)
203+
if loadOverwrites {
204+
if configDefinition != nil {
205+
if configDefinition.Overrides != nil {
206+
for index, configWrapper := range *configDefinition.Overrides {
207+
overwriteConfig, err := loadConfigFromWrapper(".", configWrapper)
208+
if err != nil {
209+
return nil, nil, fmt.Errorf("Error loading override config at index %d: %v", index, err)
210+
}
211+
212+
Merge(&config, overwriteConfig)
213+
}
214+
215+
log.Infof("Loaded config %s from %s with %d overrides", LoadedConfig, DefaultConfigsPath, len(*configDefinition.Overrides))
216+
} else {
217+
log.Infof("Loaded config %s from %s", LoadedConfig, DefaultConfigsPath)
218+
}
219+
} else {
220+
log.Infof("Loaded config from %s", DefaultConfigPath)
221+
}
222+
223+
// Exchange kube context if necessary, but only if we don't load the base config
224+
// we do this to avoid saving the kube context on commands like
225+
// devspace add deployment && devspace add image etc.
226+
if generatedConfig.CloudSpace != nil {
227+
if config.Cluster == nil || (config.Cluster.KubeContext == nil && config.Cluster.APIServer == nil) {
228+
if generatedConfig.CloudSpace.KubeContext == "" {
229+
return nil, nil, fmt.Errorf("No space configured\n\nPlease run: \n- `%s` to create a new space\n- `%s` to use an existing space\n- `%s` to list existing spaces", ansi.Color("devspace create space [NAME]", "white+b"), ansi.Color("devspace use space [NAME]", "white+b"), ansi.Color("devspace list spaces", "white+b"))
218230
}
219231

220-
Merge(&config, overwriteConfig)
232+
config.Cluster = &latest.Cluster{
233+
KubeContext: &generatedConfig.CloudSpace.KubeContext,
234+
}
221235
}
222236
}
237+
} else {
238+
if configDefinition != nil {
239+
log.Infof("Loaded config %s from %s", LoadedConfig, DefaultConfigsPath)
240+
} else {
241+
log.Infof("Loaded config %s", DefaultConfigPath)
242+
}
243+
}
244+
245+
return config, configDefinition, nil
246+
}
247+
248+
// GetConfigFromPath loads the config from a given base path
249+
func GetConfigFromPath(basePath string, loadConfig string, loadOverrides bool, generatedConfig *generated.Config) (*latest.Config, error) {
250+
config, _, err := loadBaseConfigFromPath(basePath, loadConfig, loadOverrides, generatedConfig, log.Discard)
251+
if err != nil {
252+
return nil, err
223253
}
224254

225255
err = validate(config)
@@ -248,7 +278,7 @@ func GetConfigWithoutDefaults(loadOverwrites bool) *latest.Config {
248278
LoadedConfig = generatedConfig.ActiveConfig
249279

250280
// Load base config
251-
config, configDefinition, err = loadBaseConfigFromPath(".", LoadedConfig, generatedConfig.GetActive())
281+
config, configDefinition, err = loadBaseConfigFromPath(".", LoadedConfig, loadOverwrites, generatedConfig, log.GetInstance())
252282
if err != nil {
253283
log.Fatal(err)
254284
}
@@ -258,49 +288,6 @@ func GetConfigWithoutDefaults(loadOverwrites bool) *latest.Config {
258288
LoadedConfig = ""
259289
}
260290

261-
// Check if we should load overrides
262-
if loadOverwrites {
263-
if configDefinition != nil {
264-
if configDefinition.Overrides != nil {
265-
for index, configWrapper := range *configDefinition.Overrides {
266-
overwriteConfig, err := loadConfigFromWrapper(".", configWrapper)
267-
if err != nil {
268-
log.Fatalf("Error loading override config at index %d: %v", index, err)
269-
}
270-
271-
Merge(&config, overwriteConfig)
272-
}
273-
274-
log.Infof("Loaded config %s from %s with %d overrides", LoadedConfig, DefaultConfigsPath, len(*configDefinition.Overrides))
275-
} else {
276-
log.Infof("Loaded config %s from %s", LoadedConfig, DefaultConfigsPath)
277-
}
278-
} else {
279-
log.Infof("Loaded config from %s", DefaultConfigPath)
280-
}
281-
282-
// Exchange kube context if necessary, but only if we don't load the base config
283-
// we do this to avoid saving the kube context on commands like
284-
// devspace add deployment && devspace add image etc.
285-
if generatedConfig.CloudSpace != nil {
286-
if config.Cluster == nil || (config.Cluster.KubeContext == nil && config.Cluster.APIServer == nil) {
287-
if generatedConfig.CloudSpace.KubeContext == "" {
288-
log.Fatalf("No space configured\n\nPlease run: \n- `%s` to create a new space\n- `%s` to use an existing space\n- `%s` to list existing spaces", ansi.Color("devspace create space [NAME]", "white+b"), ansi.Color("devspace use space [NAME]", "white+b"), ansi.Color("devspace list spaces", "white+b"))
289-
}
290-
291-
config.Cluster = &latest.Cluster{
292-
KubeContext: &generatedConfig.CloudSpace.KubeContext,
293-
}
294-
}
295-
}
296-
} else {
297-
if configDefinition != nil {
298-
log.Infof("Loaded config %s from %s", LoadedConfig, DefaultConfigsPath)
299-
} else {
300-
log.Infof("Loaded config %s", DefaultConfigPath)
301-
}
302-
}
303-
304291
// Save generated config
305292
err = generated.SaveConfig(generatedConfig)
306293
if err != nil {

pkg/devspace/dependency/dependency.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
)
2323

2424
// UpdateAll will update all dependencies if there are any
25-
func UpdateAll(config *latest.Config, cache *generated.CacheConfig, allowCyclic bool, log log.Logger) error {
25+
func UpdateAll(config *latest.Config, cache *generated.Config, allowCyclic bool, log log.Logger) error {
2626
if config == nil || config.Dependencies == nil || len(*config.Dependencies) == 0 {
2727
return nil
2828
}
@@ -50,7 +50,7 @@ func UpdateAll(config *latest.Config, cache *generated.CacheConfig, allowCyclic
5050
}
5151

5252
// DeployAll will deploy all dependencies if there are any
53-
func DeployAll(config *latest.Config, cache *generated.CacheConfig, allowCyclic, updateDependencies, createPullSecrets, forceDeployDependencies, forceBuild, forceDeploy bool, logger log.Logger) error {
53+
func DeployAll(config *latest.Config, cache *generated.Config, allowCyclic, updateDependencies, createPullSecrets, forceDeployDependencies, forceBuild, forceDeploy bool, logger log.Logger) error {
5454
if config == nil || config.Dependencies == nil || len(*config.Dependencies) == 0 {
5555
return nil
5656
}
@@ -101,7 +101,7 @@ func DeployAll(config *latest.Config, cache *generated.CacheConfig, allowCyclic,
101101
}
102102

103103
// PurgeAll purges all dependencies in reverse order
104-
func PurgeAll(config *latest.Config, cache *generated.CacheConfig, allowCyclic bool, logger log.Logger) error {
104+
func PurgeAll(config *latest.Config, cache *generated.Config, allowCyclic bool, logger log.Logger) error {
105105
if config == nil || config.Dependencies == nil || len(*config.Dependencies) == 0 {
106106
return nil
107107
}
@@ -159,7 +159,7 @@ type Dependency struct {
159159
GeneratedConfig *generated.Config
160160

161161
DependencyConfig *latest.DependencyConfig
162-
DependencyCache *generated.CacheConfig
162+
DependencyCache *generated.Config
163163
}
164164

165165
// Deploy deploys the dependency if necessary
@@ -171,11 +171,11 @@ func (d *Dependency) Deploy(createPullSecrets bool, forceDependencies, forceBuil
171171
}
172172

173173
// Check if we skip the dependency deploy
174-
if forceDependencies == false && directoryHash == d.DependencyCache.Dependencies[d.ID] {
174+
if forceDependencies == false && directoryHash == d.DependencyCache.GetActive().Dependencies[d.ID] {
175175
return nil
176176
}
177177

178-
d.DependencyCache.Dependencies[d.ID] = directoryHash
178+
d.DependencyCache.GetActive().Dependencies[d.ID] = directoryHash
179179

180180
// Switch current working directory
181181
currentWorkingDirectory, err := os.Getwd()
@@ -284,7 +284,7 @@ func (d *Dependency) Purge(log log.Logger) error {
284284
log.Errorf("Error saving generated.yaml: %v", err)
285285
}
286286

287-
delete(d.DependencyCache.Dependencies, d.ID)
287+
delete(d.DependencyCache.GetActive().Dependencies, d.ID)
288288
log.Donef("Purged dependency %s", d.ID)
289289
return nil
290290
}

pkg/devspace/dependency/resolver.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ type Resolver struct {
4141

4242
BasePath string
4343
BaseConfig *latest.Config
44-
BaseCache *generated.CacheConfig
44+
BaseCache *generated.Config
4545

4646
AllowCyclic bool
4747

4848
log log.Logger
4949
}
5050

5151
// NewResolver creates a new resolver for resolving dependencies
52-
func NewResolver(baseConfig *latest.Config, baseCache *generated.CacheConfig, allowCyclic bool, log log.Logger) (*Resolver, error) {
52+
func NewResolver(baseConfig *latest.Config, baseCache *generated.Config, allowCyclic bool, log log.Logger) (*Resolver, error) {
5353
var id string
5454

5555
basePath, err := filepath.Abs(".")
@@ -203,7 +203,7 @@ func (r *Resolver) resolveDependency(basePath string, dependency *latest.Depende
203203
}
204204

205205
// Load config
206-
dConfig, err := configutil.GetConfigFromPath(localPath, loadConfig, r.BaseCache)
206+
dConfig, err := configutil.GetConfigFromPath(localPath, loadConfig, true, r.BaseCache)
207207
if err != nil {
208208
return nil, fmt.Errorf("Error loading config for dependency %s: %v", ID, err)
209209
}

0 commit comments

Comments
 (0)