mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Merge pull request #983 from Liujingfang1/exec
add the unstructured to ENV of exec plugins
This commit is contained in:
@@ -44,6 +44,10 @@ type ExecPlugin struct {
|
|||||||
// Each line of this file is treated as one argument
|
// Each line of this file is treated as one argument
|
||||||
argsFromFile string
|
argsFromFile string
|
||||||
|
|
||||||
|
// cfg hold the unstructured data which can be used
|
||||||
|
// to configure the plugin
|
||||||
|
cfg string
|
||||||
|
|
||||||
// resmap Factory to make resources
|
// resmap Factory to make resources
|
||||||
rf *resmap.Factory
|
rf *resmap.Factory
|
||||||
|
|
||||||
@@ -60,6 +64,12 @@ func (p *ExecPlugin) Config(
|
|||||||
p.ldr = ldr
|
p.ldr = ldr
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
data, err := yaml.Marshal(k)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
p.cfg = string(data)
|
||||||
|
|
||||||
p.argOneLiner, err = k.GetFieldValue("arg")
|
p.argOneLiner, err = k.GetFieldValue("arg")
|
||||||
if err != nil && !isNoFieldError(err) {
|
if err != nil && !isNoFieldError(err) {
|
||||||
return err
|
return err
|
||||||
@@ -77,7 +87,7 @@ func (p *ExecPlugin) Generate() (resmap.ResMap, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
cmd := exec.Command(p.name, args...)
|
cmd := exec.Command(p.name, args...)
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = p.getEnv()
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
output, err := cmd.Output()
|
output, err := cmd.Output()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -98,7 +108,7 @@ func (p *ExecPlugin) Transform(rm resmap.ResMap) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
cmd := exec.Command(p.name, args...)
|
cmd := exec.Command(p.name, args...)
|
||||||
cmd.Env = os.Environ()
|
cmd.Env = p.getEnv()
|
||||||
cmd.Stdin = bytes.NewReader(content)
|
cmd.Stdin = bytes.NewReader(content)
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
output, err := cmd.Output()
|
output, err := cmd.Output()
|
||||||
@@ -131,6 +141,12 @@ func (p *ExecPlugin) getArgs() ([]string, error) {
|
|||||||
return args, nil
|
return args, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *ExecPlugin) getEnv() []string {
|
||||||
|
env := os.Environ()
|
||||||
|
env = append(env, "KUSTOMIZE_PLUGIN_CONFIG_STRING="+p.cfg)
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
func isNoFieldError(e error) bool {
|
func isNoFieldError(e error) bool {
|
||||||
_, ok := e.(types.NoFieldError)
|
_, ok := e.(types.NoFieldError)
|
||||||
if ok {
|
if ok {
|
||||||
|
|||||||
Reference in New Issue
Block a user