Skip to content

Commit 841e34a

Browse files
committed
add
1 parent 8a195ab commit 841e34a

File tree

7 files changed

+113
-19
lines changed

7 files changed

+113
-19
lines changed

api/export/target.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package export
2+
3+
import (
4+
"fmt"
5+
6+
"sigs.k8s.io/kustomize/api/internal/accumulator"
7+
"sigs.k8s.io/kustomize/api/internal/target"
8+
"sigs.k8s.io/kustomize/api/resmap"
9+
)
10+
11+
type KustTarget target.KustTarget
12+
13+
func (kt *KustTarget) AccumulateTarget() (*accumulator.ResAccumulator, error) {
14+
internalKt := (*target.KustTarget)(kt)
15+
ra, err := internalKt.AccumulateTarget()
16+
if err != nil {
17+
return nil, fmt.Errorf("%w", err)
18+
}
19+
return ra, nil
20+
}
21+
22+
func (kt *KustTarget) Accumulate() (resmap.ResMap, error) {
23+
internalKt := (*target.KustTarget)(kt)
24+
_, err := internalKt.AccumulateTarget()
25+
if err != nil {
26+
return nil, fmt.Errorf("%w", err)
27+
}
28+
resmap, err := internalKt.MakeCustomizedResMap()
29+
if err != nil {
30+
return nil, fmt.Errorf("%w", err)
31+
}
32+
return resmap, nil
33+
}

api/internal/builtins/ResourceGenerator.go

Lines changed: 25 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/internal/target/kusttarget.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package target
66
import (
77
"encoding/json"
88
"fmt"
9+
"log"
910
"os"
1011
"strings"
1112

@@ -34,7 +35,7 @@ type KustTarget struct {
3435
ldr ifc.Loader
3536
validator ifc.Validator
3637
rFactory *resmap.Factory
37-
pLdr *loader.Loader
38+
pLdr *loader.Loader // plugin loader
3839
origin *resource.Origin
3940
}
4041

@@ -198,10 +199,10 @@ func (kt *KustTarget) AccumulateTarget() (
198199
// (or empty if the Component does not have a parent).
199200
func (kt *KustTarget) accumulateTarget(ra *accumulator.ResAccumulator) (resRa *accumulator.ResAccumulator, err error) {
200201
// read `resources`
201-
ra, err = kt.accumulateResources(ra, kt.kustomization.Resources) // it needs to remove
202-
if err != nil {
203-
return nil, errors.WrapPrefixf(err, "accumulating resources")
204-
}
202+
// ra, err = kt.accumulateResources(ra, kt.kustomization.Resources) // it needs to remove
203+
// if err != nil {
204+
// return nil, errors.WrapPrefixf(err, "accumulating resources")
205+
// }
205206

206207
tConfig, err := builtinconfig.MakeTransformerConfig(
207208
kt.ldr, kt.kustomization.Configurations)
@@ -562,6 +563,8 @@ func (kt *KustTarget) configureBuiltinPlugin(
562563
p resmap.Configurable, c interface{}, bpt builtinhelpers.BuiltinPluginType) (err error) {
563564
var y []byte
564565
if c != nil {
566+
j, err := json.Marshal(c)
567+
log.Printf("config json: %s", j)
565568
y, err = yaml.Marshal(c)
566569
if err != nil {
567570
return errors.WrapPrefixf(

api/internal/target/kusttarget_configplugin.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package target
55

66
import (
77
"fmt"
8+
"log"
89
"path/filepath"
910

1011
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
@@ -109,22 +110,30 @@ func (kt *KustTarget) configureBuiltinTransformers(tc *builtinconfig.Transformer
109110

110111
type gFactory func() resmap.GeneratorPlugin
111112

113+
type ResourceArgs struct {
114+
Resource string `json:"resource,omitempty" yaml:"resource,omitempty"`
115+
Kt *KustTarget `json:"kusttarget,omitempty" yaml:"kusttarget,omitempty"`
116+
}
117+
112118
var generatorConfigurators = map[builtinhelpers.BuiltinPluginType]func(
113119
kt *KustTarget,
114120
bpt builtinhelpers.BuiltinPluginType,
115121
factory gFactory) (result []resmap.Generator, err error){
116122
builtinhelpers.ResourceGenerator: func(kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f gFactory) (
117123
result []resmap.Generator, err error) {
118124
var c struct {
119-
resource string
125+
ResourceArgs
120126
}
121127
for _, args := range kt.kustomization.Resources {
122-
c.resource = args
128+
c.ResourceArgs.Resource = args
129+
c.ResourceArgs.Kt = kt
123130
p := f()
131+
124132
if err := kt.configureBuiltinPlugin(p, c, bpt); err != nil {
125133
return nil, err
126134
}
127135
result = append(result, p)
136+
log.Printf("configure Generator resource: %s kt: %s", c.Resource, c.Kt.kustFileName)
128137
}
129138
return
130139
},

api/resmap/factory.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,7 @@ func (rmF *Factory) NewResMapFromRNodeSlice(s []*yaml.RNode) (ResMap, error) {
143143
}
144144
return newResMapFromResourceSlice(rs)
145145
}
146+
147+
// func (rmF *Factory) FromResourceEntry(loader ifc.Loader, resource string, ktInterface interface{}) (ResMap, error) {
148+
// return nil, nil
149+
// }

plugin/builtin/resourcegenerator/ResourceGenerator_test.go

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,35 @@
33

44
package main_test
55

6-
import (
7-
"testing"
8-
)
6+
// func TestResourceGenerator(t *testing.T) {
7+
// th := kusttest_test.MakeEnhancedHarness(t).
8+
// PrepBuiltin("ResourceGenerator")
9+
// defer th.Reset()
910

10-
func TestResourceGenerator(t *testing.T) {
11-
}
11+
// th.WriteF("config.yaml", `
12+
// apiVersion: v1
13+
// kind: ConfigMap
14+
// metadata:
15+
// name: myMap
16+
// data:
17+
// COLOR: red
18+
// FRUIT: apple
19+
// `)
20+
// rm := th.LoadAndRunGenerator(`
21+
// apiVersion: builtin
22+
// kind: ResourceGenerator
23+
// metadata:
24+
// name: myMap
25+
// resource: config.yaml
26+
// `)
27+
28+
// th.AssertActualEqualsExpected(rm, `
29+
// apiVersion: v1
30+
// kind: ConfigMap
31+
// metadata:
32+
// name: myMap
33+
// data:
34+
// COLOR: red
35+
// FRUIT: apple
36+
// `)
37+
// }

plugin/builtin/resourcegenerator/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
gopkg.in/yaml.v2 v2.4.0 // indirect
2424
gopkg.in/yaml.v3 v3.0.1 // indirect
2525
k8s.io/kube-openapi v0.0.0-20230601164746-7562a1006961 // indirect
26-
sigs.k8s.io/kustomize/kyaml v0.14.2 // indirect
26+
sigs.k8s.io/kustomize/kyaml v0.14.2
2727
sigs.k8s.io/yaml v1.3.0 // indirect
2828
)
2929

0 commit comments

Comments
 (0)