Skip to content

Conversation

@lidel
Copy link
Member

@lidel lidel commented Dec 20, 2025

Caution

Opening this as a draft PoC just to see if there is interest / value in correctly wiring up --config-file
Context: https://discuss.ipfs.tech/t/kubo-doesnt-appear-to-honor-the-config-file-option/19927

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

todo

  • test. many tests.
  • (TBD) tests to confirm ipfs init and ipfs daemon --init with and without --config-flag error if config already exists (and maybe add --force to override, if necessary)

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants