Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .kres.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ spec:
- nebula
- netbird
- newt
- nfs-utils
- nfsd
- nfsrahead
- nut-client
Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ If the field is marked as `Needs Maintainer`, it means that the package is curre
| metal-agent | Sidero Labs | NA |
| nebula | s e | [iamwacko](https://github.com/iamwacko) |
| netbird | Łukasz Szczepański | [l-szczepanski-speednet](https://github.com/l-szczepanski-speednet) |
| nfs-utils | Clément Nussbaumer | [clementnuss](https://github.com/clementnuss) |
| nut-client | Sidero Labs | NA |
| nvidia-container-toolkit-lts | Sidero Labs | NA |
| nivida-container-toolkit-production | Sidero Labs | NA |
Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-10-30T03:39:23Z by kres cd5a938.
# Generated on 2025-11-04T11:21:40Z by kres cd5a938.

# common variables

Expand Down Expand Up @@ -93,6 +93,7 @@ TARGETS += metal-agent
TARGETS += nebula
TARGETS += netbird
TARGETS += newt
TARGETS += nfs-utils
TARGETS += nfsd
TARGETS += nfsrahead
TARGETS += nut-client
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ tiers based on support level:
| [fuse3](storage/fuse3) | :green_square: core | [ghcr.io/siderolabs/fuse3](https://github.com/siderolabs/extensions/pkgs/container/fuse3) | `3.17.4` | This system extension provides fuse3 functionality. |
| [iscsi-tools](storage/iscsi-tools) | :green_square: core | [ghcr.io/siderolabs/iscsi-tools](https://github.com/siderolabs/extensions/pkgs/container/iscsi-tools) | `v0.2.0` | This system extension provides iscsi-tools. |
| [mdadm](storage/mdadm) | :white_large_square: contrib | [ghcr.io/siderolabs/mdadm](https://github.com/siderolabs/extensions/pkgs/container/mdadm) | `v4.4` | This system extension provides mdadm binary. |
| [nfs-utils](storage/nfs-utils) | :white_large_square: contrib | [ghcr.io/siderolabs/nfs-utils](https://github.com/siderolabs/extensions/pkgs/container/nfs-utils) | `v0.1.1` | This system extension provides rpcbind and rpc.statd for NFSv3 file locking support. rpcbind is a server that converts RPC program numbers into universal addresses. rpc.statd is the NSM (Network Status Monitor) service daemon that notifies NFS peers of restarts. These services are required for NFSv3 mounts with file locking support. |
| [nfsd](storage/nfsd) | :yellow_square: extra | [ghcr.io/siderolabs/nfsd](https://github.com/siderolabs/extensions/pkgs/container/nfsd) | `VERSION` | This system extension provides kernel module driver for NFSD built against a specific Talos version. |
| [nfsrahead](storage/nfsrahead) | :white_large_square: contrib | [ghcr.io/siderolabs/nfsrahead](https://github.com/siderolabs/extensions/pkgs/container/nfsrahead) | `2.8.3` | This system extension provides nfsrahead, a tool to configure the readahead for NFS mounts. |
| [zfs](storage/zfs) | :yellow_square: extra | [ghcr.io/siderolabs/zfs](https://github.com/siderolabs/extensions/pkgs/container/zfs) | `2.4.0-rc2-VERSION` | This system extension provides the ZFS kernel module, the ZFS utilities, and a service to import all ZFS pools on start and unmount all pools on stop. |
Expand Down
31 changes: 31 additions & 0 deletions storage/nfs-utils/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# nfs-utils

This extension provides `rpcbind` and `rpc.statd` daemons for NFSv3 file locking support.

## What's Included

- **rpcbind**: Converts RPC program numbers into universal addresses, required for RPC-based services
- **rpc.statd**: NSM (Network Status Monitor) service daemon that notifies NFS peers of host restarts
- **sm-notify**: Companion utility for rpc.statd

## Use Case

These services are essential for:
- NFSv3 mounts with file locking support
- Kubernetes environments using Trident or other NFS-based storage provisioners
- Any scenario requiring POSIX file locking on NFSv3 shares

## How It Works

The extension runs two containerized services:

1. **rpcbind**: Starts first and provides the RPC portmapper service
2. **rpc.statd**: Depends on rpcbind and provides NFS lock state monitoring

Both services start automatically and persist state across reboots in `/var/lib/nfs/statd` and `/var/lib/rpcbind`.

## References

- [rpcbind man page](https://linux.die.net/man/8/rpcbind)
- [rpc.statd man page](https://linux.die.net/man/8/rpc.statd)
- [Related Trident issue](https://github.com/NetApp/trident/issues/806#issuecomment-2399332314)
7 changes: 7 additions & 0 deletions storage/nfs-utils/files/netconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
udp tpi_clts v inet udp - -
tcp tpi_cots_ord v inet tcp - -
udp6 tpi_clts v inet6 udp - -
tcp6 tpi_cots_ord v inet6 tcp - -
rawip tpi_raw - inet - - -
local tpi_cots_ord - loopback - - -
unix tpi_cots_ord - loopback - - -
2 changes: 2 additions & 0 deletions storage/nfs-utils/files/passwd
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
root:x:0:0:root:/root:/bin/sh
nobody:x:65534:65534:nobody:/:/bin/false
Loading
Loading