From 6b22bd7a5d1d823c840e0403415dbfbfadd5627b Mon Sep 17 00:00:00 2001 From: charles-chenzz Date: Sat, 2 Sep 2023 10:58:41 +0800 Subject: [PATCH] api/resmap/factory.go: receive orderKeys in Factory's method --- api/resmap/factory.go | 34 ++++++++++++++++++++-------------- api/resmap/factory_test.go | 2 +- api/resmap/resmap.go | 2 +- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/api/resmap/factory.go b/api/resmap/factory.go index 9cc860749c..9e8579b5e6 100644 --- a/api/resmap/factory.go +++ b/api/resmap/factory.go @@ -79,7 +79,7 @@ func (rmF *Factory) NewResMapFromConfigMapArgs( kvLdr ifc.KvLoader, argList []types.ConfigMapArgs) (ResMap, error) { var resources []*resource.Resource for i := range argList { - res, err := rmF.resF.MakeConfigMap(kvLdr, &argList[i]) + res, _, err := rmF.resF.MakeConfigMap(kvLdr, &argList[i]) if err != nil { return nil, errors.WrapPrefixf(err, "NewResMapFromConfigMapArgs") } @@ -90,37 +90,43 @@ func (rmF *Factory) NewResMapFromConfigMapArgs( // FromConfigMapArgs creates a new ResMap containing one ConfigMap. func (rmF *Factory) FromConfigMapArgs( - kvLdr ifc.KvLoader, args types.ConfigMapArgs) (ResMap, error) { - res, err := rmF.resF.MakeConfigMap(kvLdr, &args) + kvLdr ifc.KvLoader, args types.ConfigMapArgs) (ResMap, []string, error) { + res, orderKeys, err := rmF.resF.MakeConfigMap(kvLdr, &args) if err != nil { - return nil, err + return nil, nil, err } - return rmF.FromResource(res), nil + return rmF.FromResource(res), orderKeys, nil } // NewResMapFromSecretArgs takes a SecretArgs slice, generates // secrets from each entry, and accumulates them in a ResMap. func (rmF *Factory) NewResMapFromSecretArgs( - kvLdr ifc.KvLoader, argsList []types.SecretArgs) (ResMap, error) { - var resources []*resource.Resource + kvLdr ifc.KvLoader, argsList []types.SecretArgs) (ResMap, []string, error) { + var ( + resources []*resource.Resource + orderKeys []string + ) for i := range argsList { - res, err := rmF.resF.MakeSecret(kvLdr, &argsList[i]) + res, keys, err := rmF.resF.MakeSecret(kvLdr, &argsList[i]) if err != nil { - return nil, errors.WrapPrefixf(err, "NewResMapFromSecretArgs") + return nil, nil, errors.WrapPrefixf(err, "NewResMapFromSecretArgs") } resources = append(resources, res) + orderKeys = append(orderKeys, keys...) } - return newResMapFromResourceSlice(resources) + + resMap, err := newResMapFromResourceSlice(resources) + return resMap, orderKeys, err } // FromSecretArgs creates a new ResMap containing one secret. func (rmF *Factory) FromSecretArgs( - kvLdr ifc.KvLoader, args types.SecretArgs) (ResMap, error) { - res, err := rmF.resF.MakeSecret(kvLdr, &args) + kvLdr ifc.KvLoader, args types.SecretArgs) (ResMap, []string, error) { + res, orderKeys, err := rmF.resF.MakeSecret(kvLdr, &args) if err != nil { - return nil, err + return nil, nil, err } - return rmF.FromResource(res), nil + return rmF.FromResource(res), orderKeys, nil } func newResMapFromResourceSlice( diff --git a/api/resmap/factory_test.go b/api/resmap/factory_test.go index 489c99424c..16f84d4075 100644 --- a/api/resmap/factory_test.go +++ b/api/resmap/factory_test.go @@ -247,7 +247,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) { fSys := filesys.MakeFsInMemory() fSys.Mkdir(filesys.SelfDir) - actual, err := rmF.NewResMapFromSecretArgs( + actual, _, err := rmF.NewResMapFromSecretArgs( kv.NewLoader( loader.NewFileLoaderAtRoot(fSys), valtest_test.MakeFakeValidator()), secrets) diff --git a/api/resmap/resmap.go b/api/resmap/resmap.go index ea913ba6ba..0d2dd964c1 100644 --- a/api/resmap/resmap.go +++ b/api/resmap/resmap.go @@ -30,7 +30,7 @@ type TransformerWithProperties struct { // A Generator creates an instance of ResMap. type Generator interface { - Generate() (ResMap, error) + Generate() (ResMap, []string, error) } // A GeneratorWithProperties contains a Generator and stores