mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-09-18 13:22:17 +00:00
Further isolate unstructured with factories.
This commit is contained in:
@@ -47,12 +47,14 @@ type KustTarget struct {
|
||||
hash ifc.Hash
|
||||
ldr ifc.Loader
|
||||
fSys fs.FileSystem
|
||||
rf *resmap.Factory
|
||||
tcfg *transformerconfig.TransformerConfig
|
||||
}
|
||||
|
||||
// NewKustTarget returns a new instance of KustTarget primed with a Loader.
|
||||
func NewKustTarget(
|
||||
ldr ifc.Loader, fSys fs.FileSystem,
|
||||
rf *resmap.Factory,
|
||||
tcfg *transformerconfig.TransformerConfig,
|
||||
d ifc.Decoder, h ifc.Hash) (*KustTarget, error) {
|
||||
content, err := ldr.Load(constants.KustomizationFileName)
|
||||
@@ -70,6 +72,7 @@ func NewKustTarget(
|
||||
kustomization: &k,
|
||||
ldr: ldr,
|
||||
fSys: fSys,
|
||||
rf: rf,
|
||||
tcfg: tcfg,
|
||||
decoder: d,
|
||||
hash: h,
|
||||
@@ -146,10 +149,10 @@ func (kt *KustTarget) loadCustomizedResMap() (resmap.ResMap, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
patches, err := resource.NewSliceFromPatches(
|
||||
kt.ldr, kt.kustomization.PatchesStrategicMerge, kt.decoder)
|
||||
patches, err := kt.rf.RF().SliceFromPatches(
|
||||
kt.ldr, kt.kustomization.PatchesStrategicMerge)
|
||||
if err != nil {
|
||||
errs.Append(errors.Wrap(err, "NewSliceFromPatches"))
|
||||
errs.Append(errors.Wrap(err, "SliceFromPatches"))
|
||||
}
|
||||
|
||||
if len(errs.Get()) > 0 {
|
||||
@@ -183,13 +186,13 @@ func (kt *KustTarget) loadCustomizedResMap() (resmap.ResMap, error) {
|
||||
|
||||
func (kt *KustTarget) generateConfigMapsAndSecrets(
|
||||
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
|
||||
cms, err := resmap.NewResMapFromConfigMapArgs(
|
||||
cms, err := kt.rf.NewResMapFromConfigMapArgs(
|
||||
configmapandsecret.NewConfigMapFactory(kt.fSys, kt.ldr),
|
||||
kt.kustomization.ConfigMapGenerator)
|
||||
if err != nil {
|
||||
errs.Append(errors.Wrap(err, "NewResMapFromConfigMapArgs"))
|
||||
}
|
||||
secrets, err := resmap.NewResMapFromSecretArgs(
|
||||
secrets, err := kt.rf.NewResMapFromSecretArgs(
|
||||
configmapandsecret.NewSecretFactory(kt.fSys, kt.ldr.Root()),
|
||||
kt.kustomization.SecretGenerator)
|
||||
if err != nil {
|
||||
@@ -201,8 +204,8 @@ func (kt *KustTarget) generateConfigMapsAndSecrets(
|
||||
// Gets Bases and Resources as advertised.
|
||||
func (kt *KustTarget) loadResMapFromBasesAndResources() (resmap.ResMap, error) {
|
||||
bases, errs := kt.loadCustomizedBases()
|
||||
resources, err := resmap.NewResMapFromFiles(
|
||||
kt.ldr, kt.kustomization.Resources, kt.decoder)
|
||||
resources, err := kt.rf.FromFiles(
|
||||
kt.ldr, kt.kustomization.Resources)
|
||||
if err != nil {
|
||||
errs.Append(errors.Wrap(err, "rawResources failed to read Resources"))
|
||||
}
|
||||
@@ -223,7 +226,8 @@ func (kt *KustTarget) loadCustomizedBases() (resmap.ResMap, *interror.Kustomizat
|
||||
errs.Append(errors.Wrap(err, "couldn't make ldr for "+path))
|
||||
continue
|
||||
}
|
||||
target, err := NewKustTarget(ldr, kt.fSys, kt.tcfg, kt.decoder, kt.hash)
|
||||
target, err := NewKustTarget(
|
||||
ldr, kt.fSys, kt.rf, kt.tcfg, kt.decoder, kt.hash)
|
||||
if err != nil {
|
||||
errs.Append(errors.Wrap(err, "couldn't make target for "+path))
|
||||
continue
|
||||
@@ -252,7 +256,8 @@ func (kt *KustTarget) loadBasesAsFlatList() ([]*KustTarget, error) {
|
||||
errs.Append(err)
|
||||
continue
|
||||
}
|
||||
target, err := NewKustTarget(ldr, kt.fSys, kt.tcfg, kt.decoder, kt.hash)
|
||||
target, err := NewKustTarget(
|
||||
ldr, kt.fSys, kt.rf, kt.tcfg, kt.decoder, kt.hash)
|
||||
if err != nil {
|
||||
errs.Append(err)
|
||||
continue
|
||||
@@ -268,7 +273,7 @@ func (kt *KustTarget) loadBasesAsFlatList() ([]*KustTarget, error) {
|
||||
// newTransformer makes a Transformer that does everything except resolve generated names.
|
||||
func (kt *KustTarget) newTransformer(patches []*resource.Resource) (transformers.Transformer, error) {
|
||||
var r []transformers.Transformer
|
||||
t, err := transformers.NewPatchTransformer(patches)
|
||||
t, err := transformers.NewPatchTransformer(patches, kt.rf.RF())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -88,6 +88,9 @@ metadata:
|
||||
]`
|
||||
)
|
||||
|
||||
var rf = resmap.NewFactory(resource.NewFactory(
|
||||
k8sdeps.NewKustKunstructuredFactory(k8sdeps.NewKustDecoder())))
|
||||
|
||||
func makeLoader1(t *testing.T) ifc.Loader {
|
||||
ldr := loadertest.NewFakeLoader("/testpath")
|
||||
err := ldr.AddFile("/testpath/"+constants.KustomizationFileName, []byte(kustomizationContent1))
|
||||
@@ -116,7 +119,7 @@ var ns = gvk.Gvk{Version: "v1", Kind: "Namespace"}
|
||||
|
||||
func TestResources1(t *testing.T) {
|
||||
expected := resmap.ResMap{
|
||||
resid.NewResIdWithPrefixNamespace(deploy, "dply1", "foo-", "ns1"): resource.NewFromMap(
|
||||
resid.NewResIdWithPrefixNamespace(deploy, "dply1", "foo-", "ns1"): rf.RF().FromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "apps/v1",
|
||||
"kind": "Deployment",
|
||||
@@ -149,7 +152,7 @@ func TestResources1(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}),
|
||||
resid.NewResIdWithPrefixNamespace(cmap, "literalConfigMap", "foo-", "ns1"): resource.NewFromMap(
|
||||
resid.NewResIdWithPrefixNamespace(cmap, "literalConfigMap", "foo-", "ns1"): rf.RF().FromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "v1",
|
||||
"kind": "ConfigMap",
|
||||
@@ -168,7 +171,7 @@ func TestResources1(t *testing.T) {
|
||||
"DB_PASSWORD": "somepw",
|
||||
},
|
||||
}).SetBehavior(ifc.BehaviorCreate),
|
||||
resid.NewResIdWithPrefixNamespace(secret, "secret", "foo-", "ns1"): resource.NewFromMap(
|
||||
resid.NewResIdWithPrefixNamespace(secret, "secret", "foo-", "ns1"): rf.RF().FromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Secret",
|
||||
@@ -188,7 +191,7 @@ func TestResources1(t *testing.T) {
|
||||
"DB_PASSWORD": base64.StdEncoding.EncodeToString([]byte("somepw")),
|
||||
},
|
||||
}).SetBehavior(ifc.BehaviorCreate),
|
||||
resid.NewResIdWithPrefixNamespace(ns, "ns1", "foo-", ""): resource.NewFromMap(
|
||||
resid.NewResIdWithPrefixNamespace(ns, "ns1", "foo-", ""): rf.RF().FromMap(
|
||||
map[string]interface{}{
|
||||
"apiVersion": "v1",
|
||||
"kind": "Namespace",
|
||||
@@ -207,7 +210,7 @@ func TestResources1(t *testing.T) {
|
||||
fakeFs := fs.MakeFakeFS()
|
||||
fakeFs.Mkdir("/")
|
||||
kt, err := NewKustTarget(
|
||||
l, fakeFs, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
l, fakeFs, rf, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
k8sdeps.NewKustDecoder(), k8sdeps.NewKustHash())
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected construction error %v", err)
|
||||
@@ -232,7 +235,7 @@ func TestResourceNotFound(t *testing.T) {
|
||||
fakeFs := fs.MakeFakeFS()
|
||||
fakeFs.Mkdir("/")
|
||||
kt, err := NewKustTarget(
|
||||
l, fakeFs, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
l, fakeFs, rf, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
k8sdeps.NewKustDecoder(), k8sdeps.NewKustHash())
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected construction error %v", err)
|
||||
@@ -255,7 +258,7 @@ func TestSecretTimeout(t *testing.T) {
|
||||
fakeFs := fs.MakeFakeFS()
|
||||
fakeFs.Mkdir("/")
|
||||
kt, err := NewKustTarget(
|
||||
l, fakeFs, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
l, fakeFs, rf, transformerconfig.MakeDefaultTransformerConfig(),
|
||||
k8sdeps.NewKustDecoder(), k8sdeps.NewKustHash())
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected construction error %v", err)
|
||||
|
||||
Reference in New Issue
Block a user