function-sdk-go
function-sdk-go copied to clipboard
Make Extra Resources convertable to json and yaml
What problem are you facing?
Currently extra resources have a few problems that make them more difficult to work with for composition functions which convert the RunFunctionRequest into Yaml.
I ran into this issue in function-pkl and I also saw that function-go-templating had to implement a workaround. In both Projects we re-implement the struct to be able to convert it to and from yaml.
function-go-templating's workaround
How could Crossplane help solve your problem?
I currently see two potential ways this could be solved
Option 1 (Breaking)
- add camelCased json tags to Requirements and sub structs
- allow for both match_name and match_labels to be ANDed similar to K8s LabelSelector.
This would make them possible to be represented in yaml.
It would be breaking though. However I think currently most composition functions have not yet implemented this. So this would hopefully not affect most users.
Option 2 (Non breaking (i think))
implement custom methods for Marshalling und Unmarshalling
- MarshalJSON
- UnmarshalJSON
- MarshalYAML
- UnmarshalYAML
A non-breaking option could be to provide a Another option could be to provide