Open negz opened 9 months ago
I think this would probably include https://github.com/crossplane/docs/issues/478.
Another little thing: don't make status fields required.
This K8s API doc on "Changing the API" is probably also helpful here: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api_changes.md
This document is oriented at developers who want to change existing APIs
What's Missing?
One challenge folks getting started with Crossplane have is how to design their custom APIs - i.e. how to design XR OpenAPI schemas. It's hard to go from nothing to a serviceable API that can evolve over time without breaking changes.
I think the Crossplane maintainers will have some useful tips for this. A lot of our job is designing new APIs for Crossplane, and we've certainly made and learned mistakes with Crossplane's APIs. Kubernetes API conventions capture a lot of this and we could draw out some of the more important things called out in that document. I'd also include things like:
spec.databaseConfiguration
), could it be implemented a few different ways in future? If so, consider using atype
differentiator field (e.g.spec.databaseConfigurationType
) and nesting each type's configuration in its own object.name
).