Skycfg cannot natively be used to return objects which do not have a protobuf representation (this is by design). This causes problems when Skycfg is heavily used for the generation of Kubernetes specs, because custom resource definition objects cannot be applied to the Kubernetes API server as raw protobufs. Adds a MainNonProtobuf entrypoint function which enables invoking the Skycfg library in a way which effectively just treats it as a wrapper for pure Starlark without expecting it to return protos, so that use of proto-returned objects and non-proto custom-handled objects can be both be supported by this library without significant change to caller semantics.
The flatten lists option did not support multiple levels of nesting. Adds support for flattening returned protos or strings when the WithFlattenLists() ExecOption is used.
This PR addresses these concerns:
MainNonProtobuf
entrypoint function which enables invoking the Skycfg library in a way which effectively just treats it as a wrapper for pure Starlark without expecting it to return protos, so that use of proto-returned objects and non-proto custom-handled objects can be both be supported by this library without significant change to caller semantics.WithFlattenLists()
ExecOption is used.