GoogleCloudPlatform / metacontroller

Lightweight Kubernetes controllers as a service
https://metacontroller.app/
Apache License 2.0
792 stars 105 forks source link

Metacontroller Roadmap (2018) #9

Open enisoc opened 6 years ago

enisoc commented 6 years ago

This is a tentative outline of future plans for Metacontroller.

See the project board for the status of individual tasks. The backlog there is split into three columns:

Q1 2018

Q2 2018

Q3 2018

Q4 2018

bgrant0607 commented 6 years ago

Have you thought about a meta admission controller for validation, defaulting, and policy enforcement?

enisoc commented 6 years ago

I have thought about those, but I don't think they would have much in common with Metacontroller other than the general principle of offering limited, declarative interfaces as an alternative to writing code with full control. Metacontroller is the result of applying that principle specifically to reconciliation loops; admission control plugins are a different model (synchronous decisions) so I would see meta-admission as a separate project/binary.

I think PodPreset is an example of applying this principle to a subset of policy enforcement. The other examples I've thought about include more opinionated, declarative interfaces for CRD validation/defaulting/conversion. For example, core k8s might never support conversion operations other than no-op and field rename, but if support for webhook conversion lands, it will be possible to write a meta-conversion-webhook that lets you do more things declaratively like scalar<->vector, type conversion, split/join, shift/transpose nesting levels, etc.

Similarly, with dynamic admission webhooks, it's possible today to create meta-validation and meta-defaulting that offers an alternative interface to OpenAPIV3.