crossplane / crossplane/crossplane
Conversion webhooks as first class citizens
- Dominant language
- Go
- Stars
- 12.1k
- Forks
- 1.3k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 46
Description
### What problem are you facing?
Crossplane now allows to configure conversion webhooks for XRDs. However, it provides no plumbing and no harness to make the conversions, and users are forced to do them in Go. That defeats the whole idea of a universal control plane. If I have to do a conversion webhook in Go, I can as well do the whole controller in Go.
Conversion is a basic necessity in K8s. Without conversion, you may never make breaking changes - you can't deprecate and remove fields, you can't introduce new required fields, basically you can't do anything close to a natural organic evolvement of your APIs. You are required to "get it right" the first time.
I consider this to be a major obstacle towards adoption goals.
### How could Crossplane help solve your problem?
Crossplane already has the concept of functions and pipelines. I can write code, go-templates and JSONPatch to manipulate with what the composition is producing.
Crossplane can provide a generic conversion webhook and a CRD, where crossplane user could define conversion logic just like the user is able to define composition logic today.
Contributor guide
Assessment
This issue has not been assessed yet.