diff --git a/loader/loader.go b/loader/loader.go index 7fe5efd6..d050b698 100644 --- a/loader/loader.go +++ b/loader/loader.go @@ -415,6 +415,7 @@ func load(ctx context.Context, configDetails types.ConfigDetails, opts *Options, WorkingDir: configDetails.WorkingDir, Environment: configDetails.Environment, } + delete(dict, "name") // project name set by yaml must be identified by caller as opts.projectName err = Transform(dict, project) if err != nil { return nil, err diff --git a/loader/loader_test.go b/loader/loader_test.go index d224c0ea..908b581b 100644 --- a/loader/loader_test.go +++ b/loader/loader_test.go @@ -781,7 +781,6 @@ networks: config, err := Load(buildConfigDetails(dict, env), func(options *Options) { options.SkipNormalization = true options.SkipConsistencyCheck = true - options.SetProjectName("test", true) }) assert.NilError(t, err) diff --git a/transform/external.go b/transform/external.go index 861a6ea8..1e50701b 100644 --- a/transform/external.go +++ b/transform/external.go @@ -37,14 +37,21 @@ func transformMaybeExternal(data any, p tree.Path) (any, error) { if !ok { return resource, nil } - name := resource["name"] - if ename, ok := external["name"]; ok { + name, named := resource["name"] + extname, extNamed := external["name"] + if extNamed { logrus.Warnf("%s: external.name is deprecated. Please set name and external: true", p) - if name != nil && ename != name { + if named && extname != name { return nil, fmt.Errorf("%s: name and external.name conflict; only use name", p) } - if name == nil { - resource["name"] = ename + } + if !named { + if extNamed { + // adopt (deprecated) external.name if set + resource["name"] = extname + } else { + // otherwise, just replicate the mapping key for convenience + resource["name"] = p } } resource["external"] = true