image_service: embed UnimplementedImageServiceServer for gRPC forward-compat#172
Conversation
…-compat Embed runtime.UnimplementedImageServiceServer in the imageService struct to satisfy the gRPC forward-compatibility requirement introduced in newer versions of k8s.io/cri-api. Without this, projects that compile nix-snapshotter against k8s >= 1.34 CRI API fail with: cannot use service (variable of type *imageService) as runtime.ImageServiceServer value: missing method mustEmbedUnimplementedImageServiceServer This is a no-op for existing functionality since all required interface methods are already implemented. Co-Authored-By: Joshua Perry <josh@6bit.com>
115c5b3 to
5bd6247
Compare
|
Thanks for looking at this @elpdt852! Got it rebased on master, as soon as this is merged I have a followup PR to fix the k3s and containerd integration, and one for the k3s repo to implement stargz-style snapshotter. |
|
Thanks @joshperry, exciting that you're picking this up. |
@elpdt852 Yeah! This is such a cool, underrated, project! I think that with nascent freeform AI agents like openclaw, of which I have my own similar nix-based framework partially working at joshperry/nuketown, that this could be a huge boon for rapidly deploying cloud-based agents that can mutate their own execution environment. That's why I'm interested in getting it pushed upstream anyway... Basically vercel for nixos derivations. FYI, nuketownada is my local workstation nuketown agent instance. |
Embed runtime.UnimplementedImageServiceServer in the imageService struct to satisfy the gRPC forward-compatibility requirement introduced in newer versions of k8s.io/cri-api. Without this, projects that compile nix-snapshotter against k8s >= 1.34 CRI API fail with:
cannot use service (variable of type *imageService) as
runtime.ImageServiceServer value: missing method
mustEmbedUnimplementedImageServiceServer
This is a no-op for existing functionality since all required interface methods are already implemented.
Working on updates to work with latest k3s and containerd including rootless. This is a prerequisite so that we don't have any blockers when going to k3s again.
Working on reviving k3s-io/k3s#9319