Add secret generator.

This commit is contained in:
jregan
2019-04-06 18:27:14 -07:00
parent 1623f1e4c0
commit ffc16d51e0
10 changed files with 178 additions and 21 deletions

View File

@@ -0,0 +1,62 @@
// +build plugin
package main
import (
"fmt"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/types"
)
type plugin struct {
ldr ifc.Loader
rf *resmap.Factory
options types.GeneratorOptions
args types.SecretArgs
}
var KustomizePlugin plugin
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, k ifc.Kunstructured) error {
p.ldr = ldr
p.rf = rf
var err error
// TODO: Should validate this.
p.args.Behavior, err = k.GetFieldValue("behavior")
if err != nil {
return err
}
envFiles, err := k.GetStringSlice("envFiles")
if err != nil {
return err
}
if len(envFiles) > 2 {
// TODO: refactor to allow this
return fmt.Errorf("cannot yet accept more than one envFile")
}
if len(envFiles) > 0 {
p.args.EnvSource = envFiles[0]
}
p.args.FileSources, err = k.GetStringSlice("valueFiles")
if err != nil {
return err
}
p.args.LiteralSources, err = k.GetStringSlice("literals")
if err != nil {
return err
}
return nil
}
func (p *plugin) Generate() (resmap.ResMap, error) {
argsList := make([]types.SecretArgs, 1)
argsList[0] = p.args
return p.rf.NewResMapFromSecretArgs(p.ldr, &p.options, argsList)
}

View File

@@ -15,7 +15,8 @@ type plugin struct{}
var KustomizePlugin plugin
func (p *plugin) Config(k ifc.Kunstructured) error {
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, k ifc.Kunstructured) error {
return nil
}

View File

@@ -33,7 +33,8 @@ spec:
app: dev
`
func (p *plugin) Config(k ifc.Kunstructured) error {
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, k ifc.Kunstructured) error {
var err error
p.ServiceName, err = k.GetFieldValue("service")
if err != nil {

View File

@@ -24,7 +24,8 @@ type plugin struct {
var KustomizePlugin plugin
func (p *plugin) Config(k ifc.Kunstructured) error {
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, k ifc.Kunstructured) error {
var err error
p.prefix, err = k.GetFieldValue("prefix")
if err != nil {