Skip to content

Make Extra Resources convertable to json and yaml #148

@avarei

Description

@avarei

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

function-pkl's workaround

How could Crossplane help solve your problem?

I currently see two potential ways this could be solved

Option 1 (Breaking)

  1. add camelCased json tags to Requirements and sub structs
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions