88 "strings"
99
1010 "github.com/hashicorp/vault/api"
11- "sigs.k8s.io/kustomize/v3/pkg/ifc "
12- "sigs.k8s.io/kustomize/v3/pkg /resmap"
13- "sigs.k8s.io/kustomize/v3/pkg /types"
11+ "sigs.k8s.io/kustomize/api/kv "
12+ "sigs.k8s.io/kustomize/api /resmap"
13+ "sigs.k8s.io/kustomize/api /types"
1414 "sigs.k8s.io/yaml"
1515)
1616
@@ -21,23 +21,23 @@ type vaultSecret struct {
2121}
2222
2323type secretSpec struct {
24- Secrets []vaultSecret `json:"secrets,omitempty" yaml:"secrets,omitempty"`
25- Options * types.GeneratorOptions `json:"options,omitempty" yaml:"options,omitempty"`
24+ Secrets []vaultSecret `json:"secrets,omitempty" yaml:"secrets,omitempty"`
25+ Options * types.GeneratorOptions `json:"options,omitempty" yaml:"options,omitempty"`
26+ Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"`
2627}
2728
2829type plugin struct {
29- rf * resmap.Factory
30- ldr ifc.Loader
31- Spec secretSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
30+ h * resmap.PluginHelpers
3231 types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
32+ Spec secretSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
3333 VaultClient * api.Client
3434}
3535
3636//nolint: golint
3737//noinspection GoUnusedGlobalVariable
3838var KustomizePlugin plugin
3939
40- func (p * plugin ) Config (ldr ifc. Loader , rf * resmap.Factory , c []byte ) error {
40+ func (p * plugin ) Config (h * resmap.PluginHelpers , c []byte ) error {
4141 vaultAddr , ok := os .LookupEnv ("VAULT_ADDR" )
4242 if ! ok {
4343 return errors .New ("missing `VAULT_ADDR` env var: required" )
@@ -59,9 +59,8 @@ func (p *plugin) Config(ldr ifc.Loader, rf *resmap.Factory, c []byte) error {
5959
6060 client .SetToken (vaultToken )
6161
62- p .rf = rf
63- p .ldr = ldr
6462 p .VaultClient = client
63+ p .h = h
6564
6665 return yaml .Unmarshal (c , p )
6766}
@@ -70,6 +69,8 @@ func (p *plugin) Generate() (resmap.ResMap, error) {
7069 args := types.SecretArgs {}
7170 args .Name = p .Name
7271 args .Namespace = p .Namespace
72+ args .Behavior = p .Spec .Behavior
73+ args .Options = p .Spec .Options
7374
7475 for _ , secret := range p .Spec .Secrets {
7576 value , err := p .getSecretFromVault (secret .Path , secret .Key )
@@ -88,7 +89,9 @@ func (p *plugin) Generate() (resmap.ResMap, error) {
8889 args .LiteralSources = append (args .LiteralSources , entry )
8990 }
9091
91- return p .rf .FromSecretArgs (p .ldr , p .Spec .Options , args )
92+ rf := p .h .ResmapFactory ()
93+
94+ return rf .FromSecretArgs (kv .NewLoader (p .h .Loader (), p .h .Validator ()), args )
9295}
9396
9497func getVaultToken () (string , error ) {
0 commit comments