Skip to content

Commit 5cefed1

Browse files
committed
Ensure eager variable replacement happens for dependencies too
1 parent 9f66823 commit 5cefed1

3 files changed

Lines changed: 26 additions & 7 deletions

File tree

cmd/print.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,10 @@ func (cmd *PrintCmd) Run(f factory.Factory) error {
8888
log.Warnf("Unable to create new kubectl client: %v", err)
8989
}
9090

91-
localCache, err := configLoader.LoadLocalCache()
92-
if err != nil {
93-
return err
94-
}
91+
parser := loader.NewEagerParser()
9592

9693
// load config
97-
config, err := configLoader.LoadWithParser(context.Background(), localCache, client, loader.NewEagerParser(), configOptions, log)
94+
config, err := configLoader.LoadWithParser(context.Background(), nil, client, parser, configOptions, log)
9895
if err != nil {
9996
return err
10097
}
@@ -105,7 +102,7 @@ func (cmd *PrintCmd) Run(f factory.Factory) error {
105102
WithKubeClient(client)
106103

107104
// resolve dependencies
108-
dependencies, err := dependency.NewManager(ctx, configOptions).ResolveAll(ctx, dependency.ResolveOptions{})
105+
dependencies, err := dependency.NewManagerWithParser(ctx, configOptions, parser).ResolveAll(ctx, dependency.ResolveOptions{})
109106
if err != nil {
110107
log.Warnf("Error resolving dependencies: %v", err)
111108
}

pkg/devspace/dependency/manager.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ func NewManager(ctx devspacecontext.Context, configOptions *loader.ConfigOptions
3131
}
3232
}
3333

34+
func NewManagerWithParser(ctx devspacecontext.Context, configOptions *loader.ConfigOptions, parser loader.Parser) Manager {
35+
return &manager{
36+
resolver: NewResolver(ctx, configOptions).WithParser(parser),
37+
}
38+
}
39+
3440
type ResolveOptions struct {
3541
SkipDependencies []string
3642
Dependencies []string

pkg/devspace/dependency/resolver.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
// ResolverInterface defines the resolver interface that takes dependency configs and resolves them
2525
type ResolverInterface interface {
2626
Resolve(ctx devspacecontext.Context) ([]types.Dependency, error)
27+
WithParser(parser loader.Parser) ResolverInterface
2728
}
2829

2930
// Resolver implements the resolver interface
@@ -32,6 +33,7 @@ type resolver struct {
3233

3334
BaseCache localcache.Cache
3435
BaseConfig *latest.Config
36+
BaseParser loader.Parser
3537

3638
ConfigOptions *loader.ConfigOptions
3739
}
@@ -90,6 +92,16 @@ func (r *resolver) Resolve(ctx devspacecontext.Context) ([]types.Dependency, err
9092
return children, nil
9193
}
9294

95+
func (r *resolver) WithParser(parser loader.Parser) ResolverInterface {
96+
if r == nil {
97+
return nil
98+
}
99+
100+
n := *r
101+
n.BaseParser = parser
102+
return &n
103+
}
104+
93105
func (r *resolver) resolveRecursive(ctx devspacecontext.Context, basePath, parentConfigName string, currentDependency *Dependency, dependencies []*latest.DependencyConfig) error {
94106
if currentDependency != nil {
95107
currentDependency.children = []types.Dependency{}
@@ -206,7 +218,11 @@ func (r *resolver) resolveDependency(ctx devspacecontext.Context, dependencyConf
206218
return err
207219
}
208220

209-
dConfigWrapper, err = configLoader.Load(ctx.Context(), client, cloned, ctx.Log())
221+
if r.BaseParser == nil {
222+
dConfigWrapper, err = configLoader.Load(ctx.Context(), client, cloned, ctx.Log())
223+
} else {
224+
dConfigWrapper, err = configLoader.LoadWithParser(ctx.Context(), nil, client, r.BaseParser, cloned, ctx.Log())
225+
}
210226
if err != nil {
211227
return errors.Wrap(err, fmt.Sprintf("loading config for dependency %s", dependencyName))
212228
}

0 commit comments

Comments
 (0)