the --config-file global flag was defined but not properly used by most commands. this fixes the flag to work consistently, allowing config to be stored separately from the repo. useful for Kubernetes deployments where config comes from a ConfigMap and data lives on a PersistentVolume. changes: - fsrepo: add InitWithUserConfig/OpenWithUserConfig that respect custom config paths - fsrepo: fix InitWithUserConfig to create version/datastore_spec even when config file already exists (pre-populated from ConfigMap) - commands: update all commands that open repo to use the new functions - daemon: add CONFIGURATION FILE MANAGEMENT section to help text explaining difference between --init-config (one-time copy) and --config-file (persistent external path) - init: clarify that default-config template preserves Identity
3.4 KiB
Kubo changelog v0.40
This release was brought to you by the Shipyard team.
v0.40.0
Overview
🔦 Highlights
Routing V1 HTTP API now exposed by default
The Routing V1 HTTP API is now exposed by default at http://127.0.0.1:8080/routing/v1. This allows light clients in browsers to use Kubo Gateway as a delegated routing backend instead of running a full DHT client. Support for IPIP-476: Delegated Routing DHT Closest Peers API is included. Can be disabled via Gateway.ExposeRoutingAPI.
Track total size when adding pins
Adds total size progress tracking of pinned nodes during ipfs pin add --progress. The output now shows the total size of the pinned dag.
Example output:
Fetched/Processed 336 nodes (83 MB)
Improved config management for Kubernetes and containers
The --config-file flag now works across all commands. You can store the IPFS config file separately from the repo, which is useful for:
- Kubernetes: Mount config from a ConfigMap while storing data on a PersistentVolume
- Containers: Keep config in a read-only layer while data lives in a volume
--init-config vs --config-file:
# --init-config: copies template to $IPFS_PATH/config (one-time)
$ ipfs init --init-config /etc/ipfs/template.json
# Result: config lives at ~/.ipfs/config
# Edits to /etc/ipfs/template.json have no effect after init
# --config-file: uses external path directly (persistent)
$ ipfs init --repo-dir ~/.ipfs --config-file /etc/ipfs/config
$ ipfs daemon --repo-dir ~/.ipfs --config-file /etc/ipfs/config
# Result: no config in ~/.ipfs, always reads /etc/ipfs/config
# ConfigMap updates take effect on daemon restart
When initializing with a pre-existing config file, the Identity and all settings are preserved.
📦️ Dependency updates
- update
go-libp2pto v0.46.0- Reduced WebRTC log noise by using debug level for pion errors (go-libp2p#3426).
- Fixed mDNS discovery on Windows and macOS by filtering addresses to reduce packet size (go-libp2p#3434).
- update
quic-goto v0.57.1 (incl. v0.56.0 + v0.57.0) - update
p2p-forgeto v0.7.0