Use DepProvider in tests to access kyaml impls.

This commit is contained in:
jregan
2020-11-21 14:49:44 -08:00
parent 7e01aec5a4
commit a5f3d5c823
21 changed files with 115 additions and 155 deletions

View File

@@ -5,10 +5,9 @@ import (
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
filtertest_test "sigs.k8s.io/kustomize/api/testutils/filtertest" filtertest_test "sigs.k8s.io/kustomize/api/testutils/filtertest"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
@@ -220,7 +219,7 @@ map:
for tn, tc := range testCases { for tn, tc := range testCases {
t.Run(tn, func(t *testing.T) { t.Run(tn, func(t *testing.T) {
factory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) factory := provider.NewDefaultDepProvider().GetResourceFactory()
referrer, err := factory.FromBytes([]byte(tc.input)) referrer, err := factory.FromBytes([]byte(tc.input))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -321,7 +320,7 @@ metadata:
for tn, tc := range testCases { for tn, tc := range testCases {
t.Run(tn, func(t *testing.T) { t.Run(tn, func(t *testing.T) {
factory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) factory := provider.NewDefaultDepProvider().GetResourceFactory()
referrer, err := factory.FromBytes([]byte(tc.input)) referrer, err := factory.FromBytes([]byte(tc.input))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@@ -732,7 +731,7 @@ ref:
for tn, tc := range testCases { for tn, tc := range testCases {
t.Run(tn, func(t *testing.T) { t.Run(tn, func(t *testing.T) {
factory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) factory := provider.NewDefaultDepProvider().GetResourceFactory()
referrer, err := factory.FromBytes([]byte(tc.input)) referrer, err := factory.FromBytes([]byte(tc.input))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)

View File

@@ -8,17 +8,14 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest" resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest"
) )
func TestNameReferenceHappyRun(t *testing.T) { func TestNameReferenceHappyRun(t *testing.T) {
rf := resource.NewFactory( m := resmaptest_test.NewRmBuilderDefault(t).AddWithName(
kunstruct.NewKunstructuredFactoryImpl())
m := resmaptest_test.NewRmBuilder(t, rf).AddWithName(
"cm1", "cm1",
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
@@ -261,7 +258,8 @@ func TestNameReferenceHappyRun(t *testing.T) {
}, },
}).ResMap() }).ResMap()
expected := resmaptest_test.NewSeededRmBuilder(t, rf, m.ShallowCopy()).ReplaceResource( expected := resmaptest_test.NewSeededRmBuilderDefault(
t, m.ShallowCopy()).ReplaceResource(
map[string]interface{}{ map[string]interface{}{
"group": "apps", "group": "apps",
"apiVersion": "v1", "apiVersion": "v1",
@@ -475,14 +473,12 @@ func TestNameReferenceHappyRun(t *testing.T) {
} }
func TestNameReferenceUnhappyRun(t *testing.T) { func TestNameReferenceUnhappyRun(t *testing.T) {
rf := resource.NewFactory(
kunstruct.NewKunstructuredFactoryImpl())
tests := []struct { tests := []struct {
resMap resmap.ResMap resMap resmap.ResMap
expectedErr string expectedErr string
}{ }{
{ {
resMap: resmaptest_test.NewRmBuilder(t, rf).Add( resMap: resmaptest_test.NewRmBuilderDefault(t).Add(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1", "apiVersion": "rbac.authorization.k8s.io/v1",
"kind": "ClusterRole", "kind": "ClusterRole",
@@ -502,7 +498,7 @@ func TestNameReferenceUnhappyRun(t *testing.T) {
}).ResMap(), }).ResMap(),
expectedErr: "is expected to be"}, expectedErr: "is expected to be"},
{ {
resMap: resmaptest_test.NewRmBuilder(t, rf).Add( resMap: resmaptest_test.NewRmBuilderDefault(t).Add(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1", "apiVersion": "rbac.authorization.k8s.io/v1",
"kind": "ClusterRole", "kind": "ClusterRole",
@@ -538,8 +534,7 @@ func TestNameReferenceUnhappyRun(t *testing.T) {
} }
func TestNameReferencePersistentVolumeHappyRun(t *testing.T) { func TestNameReferencePersistentVolumeHappyRun(t *testing.T) {
rf := resource.NewFactory( rf := provider.NewDefaultDepProvider().GetResourceFactory()
kunstruct.NewKunstructuredFactoryImpl())
v1 := rf.FromMapWithName( v1 := rf.FromMapWithName(
"volume1", "volume1",
@@ -664,9 +659,7 @@ const (
// object with the same original names (uniquename) in different namespaces // object with the same original names (uniquename) in different namespaces
// and with different current Id. // and with different current Id.
func TestNameReferenceNamespace(t *testing.T) { func TestNameReferenceNamespace(t *testing.T) {
rf := resource.NewFactory( m := resmaptest_test.NewRmBuilderDefault(t).
kunstruct.NewKunstructuredFactoryImpl())
m := resmaptest_test.NewRmBuilder(t, rf).
// Add ConfigMap with the same org name in noNs, "ns1" and "ns2" namespaces // Add ConfigMap with the same org name in noNs, "ns1" and "ns2" namespaces
AddWithName(orgname, map[string]interface{}{ AddWithName(orgname, map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
@@ -715,7 +708,7 @@ func TestNameReferenceNamespace(t *testing.T) {
AddWithNsAndName(ns1, orgname, deploymentMap(ns1, prefixedname, orgname, orgname)). AddWithNsAndName(ns1, orgname, deploymentMap(ns1, prefixedname, orgname, orgname)).
AddWithNsAndName(ns2, orgname, deploymentMap(ns2, suffixedname, orgname, orgname)).ResMap() AddWithNsAndName(ns2, orgname, deploymentMap(ns2, suffixedname, orgname, orgname)).ResMap()
expected := resmaptest_test.NewSeededRmBuilder(t, rf, m.ShallowCopy()). expected := resmaptest_test.NewSeededRmBuilderDefault(t, m.ShallowCopy()).
ReplaceResource(deploymentMap(defaultNs, modifiedname, modifiedname, modifiedname)). ReplaceResource(deploymentMap(defaultNs, modifiedname, modifiedname, modifiedname)).
ReplaceResource(deploymentMap(ns1, prefixedname, prefixedname, prefixedname)). ReplaceResource(deploymentMap(ns1, prefixedname, prefixedname, prefixedname)).
ReplaceResource(deploymentMap(ns2, suffixedname, suffixedname, suffixedname)).ResMap() ReplaceResource(deploymentMap(ns2, suffixedname, suffixedname, suffixedname)).ResMap()
@@ -735,9 +728,7 @@ func TestNameReferenceNamespace(t *testing.T) {
// object with the same original names (uniquename) in different namespaces // object with the same original names (uniquename) in different namespaces
// and with different current Id. // and with different current Id.
func TestNameReferenceClusterWide(t *testing.T) { func TestNameReferenceClusterWide(t *testing.T) {
rf := resource.NewFactory( m := resmaptest_test.NewRmBuilderDefault(t).
kunstruct.NewKunstructuredFactoryImpl())
m := resmaptest_test.NewRmBuilder(t, rf).
// Add ServiceAccount with the same org name in noNs, "ns1" and "ns2" namespaces // Add ServiceAccount with the same org name in noNs, "ns1" and "ns2" namespaces
AddWithName(orgname, map[string]interface{}{ AddWithName(orgname, map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
@@ -816,7 +807,7 @@ func TestNameReferenceClusterWide(t *testing.T) {
}, },
}}).ResMap() }}).ResMap()
expected := resmaptest_test.NewSeededRmBuilder(t, rf, m.ShallowCopy()). expected := resmaptest_test.NewSeededRmBuilderDefault(t, m.ShallowCopy()).
ReplaceResource( ReplaceResource(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1", "apiVersion": "rbac.authorization.k8s.io/v1",
@@ -898,9 +889,7 @@ func TestNameReferenceClusterWide(t *testing.T) {
// object with the same original names (uniquename) in different namespaces // object with the same original names (uniquename) in different namespaces
// and with different current Id. // and with different current Id.
func TestNameReferenceNamespaceTransformation(t *testing.T) { func TestNameReferenceNamespaceTransformation(t *testing.T) {
rf := resource.NewFactory( m := resmaptest_test.NewRmBuilderDefault(t).
kunstruct.NewKunstructuredFactoryImpl())
m := resmaptest_test.NewRmBuilder(t, rf).
AddWithNsAndName(ns4, orgname, map[string]interface{}{ AddWithNsAndName(ns4, orgname, map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Secret", "kind": "Secret",
@@ -964,7 +953,7 @@ func TestNameReferenceNamespaceTransformation(t *testing.T) {
}, },
}}).ResMap() }}).ResMap()
expected := resmaptest_test.NewSeededRmBuilder(t, rf, m.ShallowCopy()). expected := resmaptest_test.NewSeededRmBuilderDefault(t, m.ShallowCopy()).
ReplaceResource( ReplaceResource(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "rbac.authorization.k8s.io/v1", "apiVersion": "rbac.authorization.k8s.io/v1",
@@ -1026,9 +1015,7 @@ func TestNameReferenceNamespaceTransformation(t *testing.T) {
// It validates the change done is IsSameFuzzyNamespace which // It validates the change done is IsSameFuzzyNamespace which
// uses the IsNsEquals method instead of the simple == operator. // uses the IsNsEquals method instead of the simple == operator.
func TestNameReferenceCandidateSelection(t *testing.T) { func TestNameReferenceCandidateSelection(t *testing.T) {
rf := resource.NewFactory( m := resmaptest_test.NewRmBuilderDefault(t).
kunstruct.NewKunstructuredFactoryImpl())
m := resmaptest_test.NewRmBuilder(t, rf).
AddWithName("cm1", map[string]interface{}{ AddWithName("cm1", map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -1045,7 +1032,7 @@ func TestNameReferenceCandidateSelection(t *testing.T) {
AddWithName("deploy1", deploymentMap("", "p1-deploy1", "cm1", "secret1")). AddWithName("deploy1", deploymentMap("", "p1-deploy1", "cm1", "secret1")).
ResMap() ResMap()
expected := resmaptest_test.NewSeededRmBuilder(t, rf, m.ShallowCopy()). expected := resmaptest_test.NewSeededRmBuilderDefault(t, m.ShallowCopy()).
ReplaceResource(deploymentMap("", "p1-deploy1", "p1-cm1-hash", "p1-secret1-hash")). ReplaceResource(deploymentMap("", "p1-deploy1", "p1-cm1-hash", "p1-secret1-hash")).
ResMap() ResMap()

View File

@@ -7,10 +7,8 @@ import (
"reflect" "reflect"
"testing" "testing"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest" resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
@@ -46,8 +44,7 @@ func TestRefVarTransformer(t *testing.T) {
{Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/interface"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/interface"},
{Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/num"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/num"},
}, },
res: resmaptest_test.NewRmBuilder( res: resmaptest_test.NewRmBuilderDefault(t).
t, resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -77,8 +74,7 @@ func TestRefVarTransformer(t *testing.T) {
}}).ResMap(), }}).ResMap(),
}, },
expected: expected{ expected: expected{
res: resmaptest_test.NewRmBuilder( res: resmaptest_test.NewRmBuilderDefault(t).
t, resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -116,8 +112,7 @@ func TestRefVarTransformer(t *testing.T) {
fs: []types.FieldSpec{ fs: []types.FieldSpec{
{Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/slice"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/slice"},
}, },
res: resmaptest_test.NewRmBuilder( res: resmaptest_test.NewRmBuilderDefault(t).
t, resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -138,8 +133,7 @@ func TestRefVarTransformer(t *testing.T) {
fs: []types.FieldSpec{ fs: []types.FieldSpec{
{Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/nil"}, {Gvk: resid.Gvk{Version: "v1", Kind: "ConfigMap"}, Path: "data/nil"},
}, },
res: resmaptest_test.NewRmBuilder( res: resmaptest_test.NewRmBuilderDefault(t).
t, resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",
@@ -151,8 +145,7 @@ func TestRefVarTransformer(t *testing.T) {
}}).ResMap(), }}).ResMap(),
}, },
expected: expected{ expected: expected{
res: resmaptest_test.NewRmBuilder( res: resmaptest_test.NewRmBuilderDefault(t).
t, resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "ConfigMap", "kind": "ConfigMap",

View File

@@ -12,7 +12,7 @@ import (
. "sigs.k8s.io/kustomize/api/internal/accumulator" . "sigs.k8s.io/kustomize/api/internal/accumulator"
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
@@ -20,16 +20,14 @@ import (
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
func makeResAccumulator(t *testing.T) (*ResAccumulator, *resource.Factory) { func makeResAccumulator(t *testing.T) *ResAccumulator {
ra := MakeEmptyAccumulator() ra := MakeEmptyAccumulator()
err := ra.MergeConfig(builtinconfig.MakeDefaultConfig()) err := ra.MergeConfig(builtinconfig.MakeDefaultConfig())
if err != nil { if err != nil {
t.Fatalf("unexpected err: %v", err) t.Fatalf("unexpected err: %v", err)
} }
rf := resource.NewFactory(
kunstruct.NewKunstructuredFactoryImpl())
err = ra.AppendAll( err = ra.AppendAll(
resmaptest_test.NewRmBuilder(t, rf). resmaptest_test.NewRmBuilderDefault(t).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",
@@ -66,11 +64,11 @@ func makeResAccumulator(t *testing.T) (*ResAccumulator, *resource.Factory) {
if err != nil { if err != nil {
t.Fatalf("unexpected err: %v", err) t.Fatalf("unexpected err: %v", err)
} }
return ra, rf return ra
} }
func TestResolveVarsHappy(t *testing.T) { func TestResolveVarsHappy(t *testing.T) {
ra, _ := makeResAccumulator(t) ra := makeResAccumulator(t)
err := ra.MergeVars([]types.Var{ err := ra.MergeVars([]types.Var{
{ {
Name: "SERVICE_ONE", Name: "SERVICE_ONE",
@@ -99,7 +97,7 @@ func TestResolveVarsHappy(t *testing.T) {
} }
func TestResolveVarsOneUnused(t *testing.T) { func TestResolveVarsOneUnused(t *testing.T) {
ra, _ := makeResAccumulator(t) ra := makeResAccumulator(t)
err := ra.MergeVars([]types.Var{ err := ra.MergeVars([]types.Var{
{ {
Name: "SERVICE_ONE", Name: "SERVICE_ONE",
@@ -140,11 +138,10 @@ func expectLog(t *testing.T, log bytes.Buffer, expect string) {
} }
func TestResolveVarsVarNeedsDisambiguation(t *testing.T) { func TestResolveVarsVarNeedsDisambiguation(t *testing.T) {
ra, rf := makeResAccumulator(t) ra := makeResAccumulator(t)
rm0 := resmap.New() rm0 := resmap.New()
err := rm0.Append( err := rm0.Append(
rf.FromMap( provider.NewDefaultDepProvider().GetResourceFactory().FromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "v1", "apiVersion": "v1",
"kind": "Service", "kind": "Service",
@@ -213,8 +210,7 @@ func makeVarToNamepaceAndPath(
} }
func TestResolveVarConflicts(t *testing.T) { func TestResolveVarConflicts(t *testing.T) {
rf := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) rf := provider.NewDefaultDepProvider().GetResourceFactory()
// create configmaps in foo and bar namespaces with `data.provider` values. // create configmaps in foo and bar namespaces with `data.provider` values.
fooAws := makeNamespacedConfigMapWithDataProviderValue("foo", "aws") fooAws := makeNamespacedConfigMapWithDataProviderValue("foo", "aws")
barAws := makeNamespacedConfigMapWithDataProviderValue("bar", "aws") barAws := makeNamespacedConfigMapWithDataProviderValue("bar", "aws")
@@ -261,7 +257,7 @@ func TestResolveVarConflicts(t *testing.T) {
} }
func TestResolveVarsGoodResIdBadField(t *testing.T) { func TestResolveVarsGoodResIdBadField(t *testing.T) {
ra, _ := makeResAccumulator(t) ra := makeResAccumulator(t)
err := ra.MergeVars([]types.Var{ err := ra.MergeVars([]types.Var{
{ {
Name: "SERVICE_ONE", Name: "SERVICE_ONE",
@@ -286,7 +282,7 @@ func TestResolveVarsGoodResIdBadField(t *testing.T) {
} }
func TestResolveVarsUnmappableVar(t *testing.T) { func TestResolveVarsUnmappableVar(t *testing.T) {
ra, _ := makeResAccumulator(t) ra := makeResAccumulator(t)
err := ra.MergeVars([]types.Var{ err := ra.MergeVars([]types.Var{
{ {
Name: "SERVICE_THREE", Name: "SERVICE_THREE",
@@ -310,7 +306,7 @@ func TestResolveVarsUnmappableVar(t *testing.T) {
} }
func TestResolveVarsWithNoambiguation(t *testing.T) { func TestResolveVarsWithNoambiguation(t *testing.T) {
ra1, rf := makeResAccumulator(t) ra1 := makeResAccumulator(t)
err := ra1.MergeVars([]types.Var{ err := ra1.MergeVars([]types.Var{
{ {
Name: "SERVICE_ONE", Name: "SERVICE_ONE",
@@ -327,7 +323,7 @@ func TestResolveVarsWithNoambiguation(t *testing.T) {
// Create another accumulator having a resource with different prefix // Create another accumulator having a resource with different prefix
ra2 := MakeEmptyAccumulator() ra2 := MakeEmptyAccumulator()
m := resmaptest_test.NewRmBuilder(t, rf). m := resmaptest_test.NewRmBuilderDefault(t).
Add(map[string]interface{}{ Add(map[string]interface{}{
"apiVersion": "apps/v1", "apiVersion": "apps/v1",
"kind": "Deployment", "kind": "Deployment",

View File

@@ -7,14 +7,13 @@ import (
"sort" "sort"
"strings" "strings"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resource"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/yaml" "sigs.k8s.io/yaml"
) )
var fileReader = kunstruct.NewKunstructuredFactoryImpl()
// This document is meant to be used at the elasticsearch document type. // This document is meant to be used at the elasticsearch document type.
// Fields are serialized as-is to elasticsearch, where indices are built // Fields are serialized as-is to elasticsearch, where indices are built
// to facilitate text search queries. Identifiers, Values, FilePath, // to facilitate text search queries. Identifiers, Values, FilePath,
@@ -42,6 +41,7 @@ type KustomizationDocument struct {
Kinds []string `json:"kinds,omitempty"` Kinds []string `json:"kinds,omitempty"`
Identifiers []string `json:"identifiers,omitempty"` Identifiers []string `json:"identifiers,omitempty"`
Values []string `json:"values,omitempty"` Values []string `json:"values,omitempty"`
resFactory *resource.Factory
} }
type set map[string]struct{} type set map[string]struct{}
@@ -52,6 +52,7 @@ func (doc *KustomizationDocument) Copy() *KustomizationDocument {
Kinds: doc.Kinds, Kinds: doc.Kinds,
Identifiers: doc.Identifiers, Identifiers: doc.Identifiers,
Values: doc.Values, Values: doc.Values,
resFactory: provider.NewDefaultDepProvider().GetResourceFactory(),
} }
} }
@@ -150,7 +151,7 @@ func (doc *KustomizationDocument) readBytes() ([]map[string]interface{}, error)
} }
configs := make([]map[string]interface{}, 0) configs := make([]map[string]interface{}, 0)
ks, err := fileReader.SliceFromBytes(data) ks, err := doc.resFactory.SliceFromBytes(data)
if err != nil { if err != nil {
return nil, fmt.Errorf("unable to parse resource: %v", err) return nil, fmt.Errorf("unable to parse resource: %v", err)
} }

View File

@@ -13,12 +13,10 @@ import (
. "sigs.k8s.io/kustomize/api/internal/plugins/execplugin" . "sigs.k8s.io/kustomize/api/internal/plugins/execplugin"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/internal/plugins/utils" "sigs.k8s.io/kustomize/api/internal/plugins/utils"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
fLdr "sigs.k8s.io/kustomize/api/loader" fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
) )
func TestExecPluginConfig(t *testing.T) { func TestExecPluginConfig(t *testing.T) {
@@ -33,10 +31,8 @@ s/$BAR/bar baz/g
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
rf := resmap.NewFactory( pvd := provider.NewDefaultDepProvider()
resource.NewFactory( rf := resmap.NewFactory(pvd.GetResourceFactory(), pvd.GetMerginator())
kunstruct.NewKunstructuredFactoryImpl()), nil)
v := valtest_test.MakeFakeValidator()
pluginConfig := rf.RF().FromMap( pluginConfig := rf.RF().FromMap(
map[string]interface{}{ map[string]interface{}{
"apiVersion": "someteam.example.com/v1", "apiVersion": "someteam.example.com/v1",
@@ -62,7 +58,7 @@ s/$BAR/bar baz/g
if err != nil { if err != nil {
t.Fatalf("unexpected err: %v", err) t.Fatalf("unexpected err: %v", err)
} }
p.Config(resmap.NewPluginHelpers(ldr, v, rf), yaml) p.Config(resmap.NewPluginHelpers(ldr, pvd.GetFieldValidator(), rf), yaml)
expected := "someteam.example.com/v1/sedtransformer/SedTransformer" expected := "someteam.example.com/v1/sedtransformer/SedTransformer"
if !strings.HasSuffix(p.Path(), expected) { if !strings.HasSuffix(p.Path(), expected) {

View File

@@ -8,11 +8,10 @@ import (
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
. "sigs.k8s.io/kustomize/api/internal/plugins/loader" . "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
@@ -51,8 +50,8 @@ func TestLoader(t *testing.T) {
BuildGoPlugin("builtin", "", "SecretGenerator"). BuildGoPlugin("builtin", "", "SecretGenerator").
BuildGoPlugin("someteam.example.com", "v1", "SomeServiceGenerator") BuildGoPlugin("someteam.example.com", "v1", "SomeServiceGenerator")
defer th.Reset() defer th.Reset()
rmF := resmap.NewFactory(resource.NewFactory( p := provider.NewDefaultDepProvider()
kunstruct.NewKunstructuredFactoryImpl()), nil) rmF := resmap.NewFactory(p.GetResourceFactory(), p.GetMerginator())
fLdr, err := loader.NewLoader( fLdr, err := loader.NewLoader(
loader.RestrictionRootOnly, loader.RestrictionRootOnly,
filesys.Separator, filesys.MakeFsInMemory()) filesys.Separator, filesys.MakeFsInMemory())

View File

@@ -10,8 +10,8 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
@@ -64,7 +64,7 @@ func strptr(s string) *string {
} }
func TestUpdateResourceOptions(t *testing.T) { func TestUpdateResourceOptions(t *testing.T) {
rf := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) rf := provider.NewDefaultDepProvider().GetResourceFactory()
in := resmap.New() in := resmap.New()
expected := resmap.New() expected := resmap.New()
cases := []struct { cases := []struct {
@@ -108,7 +108,7 @@ func TestUpdateResourceOptions(t *testing.T) {
} }
func TestUpdateResourceOptionsWithInvalidHashAnnotationValues(t *testing.T) { func TestUpdateResourceOptionsWithInvalidHashAnnotationValues(t *testing.T) {
rf := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) rf := provider.NewDefaultDepProvider().GetResourceFactory()
cases := []string{ cases := []string{
"", "",
"FaLsE", "FaLsE",

View File

@@ -10,7 +10,7 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
@@ -76,8 +76,7 @@ commonLabels:
} }
kt := makeKustTargetWithRf( kt := makeKustTargetWithRf(
t, th.GetFSys(), "/", t, th.GetFSys(), "/", provider.NewDefaultDepProvider())
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
for tn, tc := range testCases { for tn, tc := range testCases {
t.Run(tn, func(t *testing.T) { t.Run(tn, func(t *testing.T) {
th.WriteK("/", tc.content) th.WriteK("/", tc.content)
@@ -148,7 +147,8 @@ metadata:
{"op": "add", "path": "/spec/replica", "value": "3"} {"op": "add", "path": "/spec/replica", "value": "3"}
]`) ]`)
resFactory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()) pvd := provider.NewDefaultDepProvider()
resFactory := pvd.GetResourceFactory()
resources := []*resource.Resource{ resources := []*resource.Resource{
resFactory.FromMapWithName("dply1", map[string]interface{}{ resFactory.FromMapWithName("dply1", map[string]interface{}{
@@ -244,8 +244,7 @@ metadata:
} }
} }
kt := makeKustTargetWithRf( kt := makeKustTargetWithRf(t, th.GetFSys(), "/whatever", pvd)
t, th.GetFSys(), "/whatever", resFactory)
err := kt.Load() err := kt.Load()
if err != nil { if err != nil {
t.Fatalf("unexpected Resources error %v", err) t.Fatalf("unexpected Resources error %v", err)

View File

@@ -7,14 +7,12 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/internal/k8sdeps/merge"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/internal/target" "sigs.k8s.io/kustomize/api/internal/target"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
fLdr "sigs.k8s.io/kustomize/api/loader" fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
) )
@@ -22,9 +20,7 @@ func makeAndLoadKustTarget(
t *testing.T, t *testing.T,
fSys filesys.FileSystem, fSys filesys.FileSystem,
root string) *target.KustTarget { root string) *target.KustTarget {
kt := makeKustTargetWithRf( kt := makeKustTargetWithRf(t, fSys, root, provider.NewDefaultDepProvider())
t, fSys, root,
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
if err := kt.Load(); err != nil { if err := kt.Load(); err != nil {
t.Fatalf("Unexpected load error %v", err) t.Fatalf("Unexpected load error %v", err)
} }
@@ -35,13 +31,12 @@ func makeKustTargetWithRf(
t *testing.T, t *testing.T,
fSys filesys.FileSystem, fSys filesys.FileSystem,
root string, root string,
resourceFactory *resource.Factory) *target.KustTarget { pvd *provider.DepProvider) *target.KustTarget {
ldr, err := fLdr.NewLoader(fLdr.RestrictionRootOnly, root, fSys) ldr, err := fLdr.NewLoader(fLdr.RestrictionRootOnly, root, fSys)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
rf := resmap.NewFactory( rf := resmap.NewFactory(pvd.GetResourceFactory(), pvd.GetMerginator())
resourceFactory, merge.NewMerginator(resourceFactory))
pc := konfig.DisabledPluginConfig() pc := konfig.DisabledPluginConfig()
return target.NewKustTarget( return target.NewKustTarget(
ldr, ldr,

View File

@@ -20,6 +20,10 @@ func DefaultKustomizationFileName() string {
} }
const ( const (
// FlagEnableKyamlDefaultValue is the default value for the --enable_kyaml
// flag. This value is also used in unit tests. See provider.DepProvider.
FlagEnableKyamlDefaultValue = false
// An environment variable to consult for kustomization // An environment variable to consult for kustomization
// configuration data. See: // configuration data. See:
// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

View File

@@ -11,9 +11,9 @@ import (
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/internal/target" "sigs.k8s.io/kustomize/api/internal/target"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/krusty/internal/provider"
fLdr "sigs.k8s.io/kustomize/api/loader" fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provenance" "sigs.k8s.io/kustomize/api/provenance"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )

View File

@@ -11,6 +11,7 @@ import (
"sigs.k8s.io/kustomize/api/internal/wrappy" "sigs.k8s.io/kustomize/api/internal/wrappy"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/k8sdeps/validator" "sigs.k8s.io/kustomize/api/k8sdeps/validator"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
) )
@@ -138,6 +139,7 @@ import (
// If you're reading this, plan not done. // If you're reading this, plan not done.
// //
type DepProvider struct { type DepProvider struct {
kFactory ifc.KunstructuredFactory
resourceFactory *resource.Factory resourceFactory *resource.Factory
merginator resmap.Merginator merginator resmap.Merginator
fieldValidator ifc.Validator fieldValidator ifc.Validator
@@ -147,6 +149,7 @@ func makeK8sdepBasedInstances() *DepProvider {
kf := kunstruct.NewKunstructuredFactoryImpl() kf := kunstruct.NewKunstructuredFactoryImpl()
rf := resource.NewFactory(kf) rf := resource.NewFactory(kf)
return &DepProvider{ return &DepProvider{
kFactory: kf,
resourceFactory: rf, resourceFactory: rf,
merginator: merge.NewMerginator(rf), merginator: merge.NewMerginator(rf),
fieldValidator: validator.NewKustValidator(), fieldValidator: validator.NewKustValidator(),
@@ -157,6 +160,7 @@ func makeKyamlBasedInstances() *DepProvider {
kf := &wrappy.WNodeFactory{} kf := &wrappy.WNodeFactory{}
rf := resource.NewFactory(kf) rf := resource.NewFactory(kf)
return &DepProvider{ return &DepProvider{
kFactory: kf,
resourceFactory: rf, resourceFactory: rf,
merginator: kmerge.NewMerginator(rf), merginator: kmerge.NewMerginator(rf),
fieldValidator: validate.NewFieldValidator(), fieldValidator: validate.NewFieldValidator(),
@@ -170,6 +174,14 @@ func NewDepProvider(useKyaml bool) *DepProvider {
return makeK8sdepBasedInstances() return makeK8sdepBasedInstances()
} }
func NewDefaultDepProvider() *DepProvider {
return NewDepProvider(konfig.FlagEnableKyamlDefaultValue)
}
func (dp *DepProvider) GetKunstructuredFactory() ifc.KunstructuredFactory {
return dp.kFactory
}
func (dp *DepProvider) GetResourceFactory() *resource.Factory { func (dp *DepProvider) GetResourceFactory() *resource.Factory {
return dp.resourceFactory return dp.resourceFactory
} }

View File

@@ -10,7 +10,7 @@ import (
"strings" "strings"
"testing" "testing"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
. "sigs.k8s.io/kustomize/api/resmap" . "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
@@ -18,8 +18,7 @@ import (
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
var rf = resource.NewFactory( var rf = provider.NewDefaultDepProvider().GetResourceFactory()
kunstruct.NewKunstructuredFactoryImpl())
var rmF = NewFactory(rf, nil) var rmF = NewFactory(rf, nil)
func doAppend(t *testing.T, w ResMap, r *resource.Resource) { func doAppend(t *testing.T, w ResMap, r *resource.Resource) {

View File

@@ -1,18 +1,5 @@
/* // Copyright 2020 The Kubernetes Authors.
Copyright 2018 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package resource_test package resource_test
@@ -20,14 +7,13 @@ import (
"reflect" "reflect"
"testing" "testing"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resid" "sigs.k8s.io/kustomize/api/resid"
. "sigs.k8s.io/kustomize/api/resource" . "sigs.k8s.io/kustomize/api/resource"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
var factory = NewFactory( var factory = provider.NewDefaultDepProvider().GetResourceFactory()
kunstruct.NewKunstructuredFactoryImpl())
var testConfigMap = factory.FromMap( var testConfigMap = factory.FromMap(
map[string]interface{}{ map[string]interface{}{

View File

@@ -8,13 +8,11 @@ import (
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/internal/k8sdeps/merge"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader" pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
fLdr "sigs.k8s.io/kustomize/api/loader" fLdr "sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
) )
@@ -46,11 +44,9 @@ func MakeEnhancedHarness(t *testing.T) *HarnessEnhanced {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
resourceFactory := resource.NewFactory( p := provider.NewDefaultDepProvider()
kunstruct.NewKunstructuredFactoryImpl()) resourceFactory := p.GetResourceFactory()
resmapFactory := resmap.NewFactory( resmapFactory := resmap.NewFactory(resourceFactory, p.GetMerginator())
resourceFactory,
merge.NewMerginator(resourceFactory))
result := &HarnessEnhanced{ result := &HarnessEnhanced{
Harness: MakeHarness(t), Harness: MakeHarness(t),

View File

@@ -6,6 +6,7 @@ package resmaptest_test
import ( import (
"testing" "testing"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
) )
@@ -25,6 +26,15 @@ func NewRmBuilder(t *testing.T, rf *resource.Factory) *rmBuilder {
return NewSeededRmBuilder(t, rf, resmap.New()) return NewSeededRmBuilder(t, rf, resmap.New())
} }
func NewRmBuilderDefault(t *testing.T) *rmBuilder {
return NewSeededRmBuilderDefault(t, resmap.New())
}
func NewSeededRmBuilderDefault(t *testing.T, m resmap.ResMap) *rmBuilder {
return NewSeededRmBuilder(
t, provider.NewDefaultDepProvider().GetResourceFactory(), m)
}
func (rm *rmBuilder) Add(m map[string]interface{}) *rmBuilder { func (rm *rmBuilder) Add(m map[string]interface{}) *rmBuilder {
return rm.AddR(rm.rf.FromMap(m)) return rm.AddR(rm.rf.FromMap(m))
} }

View File

@@ -6,9 +6,8 @@ import (
"fmt" "fmt"
"os" "os"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
"sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/fn/framework"
"sigs.k8s.io/yaml" "sigs.k8s.io/yaml"
) )
@@ -16,9 +15,10 @@ import (
//nolint //nolint
func main() { func main() {
var plugin resmap.Configurable var plugin resmap.Configurable
resmapFactory := newResMapFactory() p := provider.NewDefaultDepProvider()
resmapFactory := resmap.NewFactory(p.GetResourceFactory(), p.GetMerginator())
pluginHelpers := newPluginHelpers(resmapFactory) pluginHelpers := resmap.NewPluginHelpers(
nil, p.GetFieldValidator(), resmapFactory)
resourceList := &framework.ResourceList{} resourceList := &framework.ResourceList{}
resourceList.FunctionConfig = map[string]interface{}{} resourceList.FunctionConfig = map[string]interface{}{}
@@ -65,17 +65,6 @@ func main() {
} }
} }
//nolint
func newPluginHelpers(resmapFactory *resmap.Factory) *resmap.PluginHelpers {
return resmap.NewPluginHelpers(nil, nil, resmapFactory)
}
//nolint
func newResMapFactory() *resmap.Factory {
resourceFactory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())
return resmap.NewFactory(resourceFactory, nil)
}
//nolint //nolint
func getDataFromFunctionConfig(fc interface{}) (interface{}, error) { func getDataFromFunctionConfig(fc interface{}) (interface{}, error) {
f, ok := fc.(map[string]interface{}) f, ok := fc.(map[string]interface{})

View File

@@ -5,17 +5,18 @@ package build
import ( import (
"github.com/spf13/pflag" "github.com/spf13/pflag"
"sigs.k8s.io/kustomize/api/konfig"
) )
var ( var (
flagEnableKyamlValue = false flagEnableKyamlValue = konfig.FlagEnableKyamlDefaultValue
) )
func addFlagEnableKyaml(set *pflag.FlagSet) { func addFlagEnableKyaml(set *pflag.FlagSet) {
set.BoolVar( set.BoolVar(
&flagEnableKyamlValue, &flagEnableKyamlValue,
"enable_kyaml", // flag name "enable_kyaml", // flag name
false, // default value konfig.FlagEnableKyamlDefaultValue, // default value
"enable dependence on kyaml instead of k8sdeps.", // help "enable dependence on kyaml instead of k8sdeps.", // help
) )
} }

View File

@@ -8,14 +8,12 @@ import (
"flag" "flag"
"os" "os"
"sigs.k8s.io/kustomize/cmd/config/configcobra"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/k8sdeps/validator"
"sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/cmd/config/completion" "sigs.k8s.io/kustomize/cmd/config/completion"
"sigs.k8s.io/kustomize/cmd/config/configcobra"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/build" "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/build"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/create" "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/create"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit" "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit"
@@ -36,13 +34,13 @@ Manages declarative configuration of Kubernetes.
See https://sigs.k8s.io/kustomize See https://sigs.k8s.io/kustomize
`, `,
} }
uf := kunstruct.NewKunstructuredFactoryImpl() pvd := provider.NewDefaultDepProvider()
v := validator.NewKustValidator()
c.AddCommand( c.AddCommand(
completion.NewCommand(), completion.NewCommand(),
build.NewCmdBuild(stdOut), build.NewCmdBuild(stdOut),
edit.NewCmdEdit(fSys, v, uf), edit.NewCmdEdit(
create.NewCmdCreate(fSys, uf), fSys, pvd.GetFieldValidator(), pvd.GetKunstructuredFactory()),
create.NewCmdCreate(fSys, pvd.GetKunstructuredFactory()),
version.NewCmdVersion(stdOut), version.NewCmdVersion(stdOut),
openapi.NewCmdOpenAPI(stdOut), openapi.NewCmdOpenAPI(stdOut),
) )

View File

@@ -8,12 +8,12 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct" "sigs.k8s.io/kustomize/api/provider"
"sigs.k8s.io/kustomize/api/types" "sigs.k8s.io/kustomize/api/types"
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile" "sigs.k8s.io/kustomize/kustomize/v3/internal/commands/kustfile"
) )
var factory = kunstruct.NewKunstructuredFactoryImpl() var factory = provider.NewDefaultDepProvider().GetKunstructuredFactory()
func readKustomizationFS(t *testing.T, fSys filesys.FileSystem) *types.Kustomization { func readKustomizationFS(t *testing.T, fSys filesys.FileSystem) *types.Kustomization {
kf, err := kustfile.NewKustomizationFile(fSys) kf, err := kustfile.NewKustomizationFile(fSys)