If we support #194 and #195, and we want to do #186 and #187, then one option would be to stop supporting plugins as a separate top-level 'thing' and instead allow references to call user provided functions.
i.e. plugins simply provide some set of simple functions which you can pass parameters to. Here # is shorthand for all outputs of all dependencies, but for most plugins you're likely to want more specific values (for either deps or outputs).
Why is this useful?
it's considerably clearer what's going on in terms of kubernetes objects than using plugins as they stand
we go back to the state of Smith only supporting 'objects' in the spec (no additional nesting/confusion)
we're closer to supporting schema based validation (if using functions in ServiceInstance objects)
Yes, we do make the references more complex, and yes, this is looking more like what RPS does (in terms of jmespath functions and more complex references)... we could just use jmespath here ;) Just saying.
If we support #194 and #195, and we want to do #186 and #187, then one option would be to stop supporting plugins as a separate top-level 'thing' and instead allow references to call user provided functions.
e.g. rather than doing:
One would instead do:
i.e. plugins simply provide some set of simple functions which you can pass parameters to. Here # is shorthand for all outputs of all dependencies, but for most plugins you're likely to want more specific values (for either deps or outputs).
Why is this useful?
Yes, we do make the references more complex, and yes, this is looking more like what RPS does (in terms of jmespath functions and more complex references)... we could just use jmespath here ;) Just saying.