MCPcopy Index your code
hub / github.com/containers/nydus-storage-plugin

github.com/containers/nydus-storage-plugin @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
83 symbols 236 edges 17 files 29 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CRI-O/Podman Nydus Store Plugin

The project is an implementation of additional layer store plugin of CRI-O/Podman, it provides CRI-O/Podman with the ability to lazy mount nydus images.

⚠️ This project is still in progress, see more details in this proposal.

asciicast

Quick Start

  1. Build store plugin
$ git clone https://github.com/containers/nydus-storage-plugin.git
$ cd nydus-storage-plugin
$ make
  1. Install nydusd

Download nydus binaries from nydus release page, and then install with the command below:

$ tar xzvf nydus-static-$version-linux-amd64.tgz
$ sudo mv nydus-static/nydusd /usr/bin/nydusd
$ sudo mv nydus-static/nydus-image /usr/bin/nydus-image
  1. Configure podman

Replace /etc/containers/storage.conf with misc/storage.conf.

  1. Run store plugin

Copy misc/nydusd-config.json to /etc.

$ sudo bin/nydus-store --log-to-stdout --log-level info \
  --config-path /etc/nydusd-config.json \
  --root /var/lib/nydus-store
  1. Run container with nydus image
$ sudo podman run -it ghcr.io/dragonflyoss/image-service/nginx:nydus-latest echo hello word

For the list of pre-converted nydus images, see nydus packages, for more details about how to build nydus image, please refer to nydusify conversion tool and acceld.

Extension points exported contracts — how you extend this code

RegistryHosts (FuncType)
Ported from stargz-snapshotter, copyright The stargz-snapshotter Authors. https://github.com/containerd/stargz-snapshott
pkg/source/source.go
Credential (FuncType)
(no doc)
pkg/services/resolver/resolver.go

Core symbols most depended-on inside this repo

copyAttr
called by 10
pkg/fs/utils.go
newInodeWithID
called by 6
pkg/fs/fs.go
inc
called by 4
pkg/cache/lrucache.go
decreaseOnceFunc
called by 3
pkg/cache/lrucache.go
defaultDirAttr
called by 3
pkg/fs/utils.go
metadataDir
called by 3
pkg/manager/ref_pool.go
Add
called by 2
pkg/cache/lrucache.go
dec
called by 2
pkg/cache/lrucache.go

Shape

Method 40
Struct 21
Function 19
FuncType 2
Interface 1

Languages

Go100%

Modules by API surface

pkg/manager/ref_pool.go14 symbols
pkg/manager/manager.go12 symbols
pkg/cache/lrucache.go11 symbols
pkg/fs/fs.go10 symbols
pkg/services/resolver/resolver.go6 symbols
pkg/fs/utils.go6 symbols
pkg/fs/ref_node.go3 symbols
pkg/fs/layer_node.go3 symbols
pkg/fs/diff_node.go3 symbols
pkg/fs/blob_file.go3 symbols
pkg/utils/manifest.go2 symbols
pkg/fs/root_node.go2 symbols

For agents

$ claude mcp add nydus-storage-plugin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact