"'Tim Hockin' via wg-device-management"
<
wg-device-...@kubernetes.io> writes:
> As the clock keeps ticking, I have spent a lot of time thinking about 1.31
> and what is plausible to deliver. I feel like we have 2 goals here that we
> are mixing together. First is the "transport layer" for how devices are
> described, requested, and assigned. It needs to be pretty general-purpose
> and to cover a lot of use-cases. Second is a "user-experience layer" which
> mitigates some of the complexity from the generality of the transport
> layer. My own mind keeps flipping between the two, and I feel like I am
> running in circles.
>
> What if we thought of them more as distinct problems? In some ways, it
> could be moving closer to the 1.30 model. More directly, the discussions
> so far have given me high confidence we can do a (somewhat complex but
> directionally correct) transport layer which lands in 1.31 without much
> focus on UX, while I have diminishing confidence that we can do a good UX
> AND a transport layer in 1.31, without ANOTHER major shift in 1.32.
A lot of the discussions around
https://github.com/kubernetes-sigs/wg-device-management/tree/main/k8srm-prototype
and now
https://github.com/kubernetes-sigs/wg-device-management/pull/14
have indeed been around UX. Because we were so focused on that, we
didn't discuss some potentially useful functionality like scoring.
With
https://github.com/kubernetes-sigs/wg-device-management/pull/14, I
was leaning more towards "let's be flexible" than "let's make this
nice", both when it comes to functionality (for example, allowing claims
to reference multiple classes instead of just one) and future extensions
(using one-of structs to have a safe way of adding new functionality
that isn't silently ignored by old components).
Perhaps I have gone too far with the flexibility (multi-inheritance is
contentious), but I am feeling confident that it can be implemented
despite that flexibility if we agree on that API at least in principle
soonish (this week or next).
> So, what I think I am proposing is that we focus on the expressivity of the
> capacity and claim aspects - make sure that the things we really need to
> allow are allowed and that scheduling and auto scaling can be made to
> work. I'm not saying to ignore UX, but maybe it's OK to assume that it will come
> on top of the transport, perhaps in the form of more domain-centric CRDs,
> which I know I previously argued against, but maybe I am coming around
> to.
Sounds good to me.
--
Best Regards
Patrick Ohly
Cloud Software Architect