Open clux opened 1 year ago
Turns out we can't do this cleanly yet because we'd actually need to do that into impl from the pair (ApiResource, ApiCapabilities)
.
There is an ongoing (but bitrotted) PR that aims to consolidate these structs, but need to fix that up first.
What problem are you trying to solve?
Reading this blog post: https://metalbear.co/blog/writing-a-kubernetes-operator/ on how to set up an extension apiservice with kube, most of how this is done looks reasonably easy.
However, there's awkward step where it's necessary to convert our
Resource
to anAPIResource
. That bit is basically what you see in their source here: https://github.com/metalbear-co/farm-operator/blob/f7ae23f61daff4bdc9b9063796bc49057c20e914/example/step-3/src/main.rs#L14-L36i.e. manually converting between the two:
This came up in https://github.com/kube-rs/website/pull/34#issuecomment-1475905161
Describe the solution you'd like
The example above is converting using the
Resource
trait, but that is actually insufficient (hence the manually suppliedverbs
).The only place that has all that information for us is the
ApiResource
.This feels like a simple
Into<APIResource> for ApiResource
impl.If anyone wants to do this, it should be an easy one.
Note that CRD users via
kube-derive
will have access to their ownApiResource
without going through discovery (which crucially they can't do as they are the apiserver for this resource) by usingCustomResourceExt::api_resource
. So from there, a converter will fill in the rest.Target crate for feature
kube-core