diff --git a/actions/param_set.go b/actions/param_set.go index d7b706964be6ece2e4b814bddc4422bdc1d02f44..5eceef47307ad6c50a1a8e2264313f9e2801e5f9 100644 --- a/actions/param_set.go +++ b/actions/param_set.go @@ -16,6 +16,7 @@ package actions import ( + "strconv" "strings" "github.com/ksonnet/ksonnet/component" @@ -100,14 +101,18 @@ func NewParamSet(ksApp app.App, name, path, value string, opts ...ParamSetOpt) ( // Run runs the action. func (ps *ParamSet) Run() error { - value, err := params.DecodeValue(ps.rawValue) if err != nil { return errors.Wrap(err, "value is invalid") } + evaluatedValue := ps.rawValue + if _, ok := value.(string); ok { + evaluatedValue = strconv.Quote(ps.rawValue) + } + if ps.envName != "" { - return ps.setEnv(ps.app, ps.envName, ps.name, ps.rawPath, ps.rawValue) + return ps.setEnv(ps.app, ps.envName, ps.name, ps.rawPath, evaluatedValue) } path := strings.Split(ps.rawPath, ".") diff --git a/metadata/params/params.go b/metadata/params/params.go index da12d76f89dd78fa6830eb065bc4f1aedc09d204..014130a0062da1d015c4eaf84e19daad77d5b91f 100644 --- a/metadata/params/params.go +++ b/metadata/params/params.go @@ -63,6 +63,8 @@ func findComponentsObj(node ast.Node) (*ast.Object, error) { } } return nil, fmt.Errorf("Invalid params schema -- there must be a top-level object '%s'", componentsID) + case *ast.ApplyBrace: + return findComponentsObj(n.Right) } return nil, fmt.Errorf("Invalid params schema -- did not expect node type: %T", node) }