You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have two types of dependency on containerd. An IPC-level one (based on GRPC protocol-level compatibility), and a library-level one (consuming containerd golang packages)
We should create an upstream GitHub issue as that will take a long time
We should fork containerd to make the changes to overlay snapshotter so that it's embedabble
We can point to this fork to greatly reduce code in pkg/nix/nix.go without breaking our IPC-level dependency (i.e. we can build nix-snapshotter against the fork but still run as a snapshotter for a release version of containerd)
So at a high-level, nix-snapshotter is basically overlayfs snapshotter but with additional support for nix layers.
Currently there's a lot of code duplication between
pkg/nix/nix.go
and the overlayfs snapshotter from containerd: https://github.com/containerd/containerd/blob/main/snapshots/overlay/overlay.goThis is because we use private members like
o.ms
:to handle the metadata layer's bolt transactions.
If we look around the remote snapshotter ecosystem, you'll see this is duplicated the same way:
https://github.com/containerd/stargz-snapshotter/blob/main/snapshot/snapshot.go
We should consider upstreaming a refactor to make it possible to embed it, thus deleting a lot of code from
pkg/nix/nix.go
.The text was updated successfully, but these errors were encountered: