Skip to content

feat: add config file support to configure docker images#92

Open
KatyaRyazantseva wants to merge 18 commits intoblockblaz:mainfrom
KatyaRyazantseva:add-config-file
Open

feat: add config file support to configure docker images#92
KatyaRyazantseva wants to merge 18 commits intoblockblaz:mainfrom
KatyaRyazantseva:add-config-file

Conversation

@KatyaRyazantseva
Copy link
Contributor

@KatyaRyazantseva KatyaRyazantseva commented Jan 16, 2026

Adds a configuration file system to customize Docker images for lean clients without modifying the codebase.

Related to #83

Key changes:

  • Add --configFile flag to specify custom image overrides
  • Default images in validator-config.yaml
  • Example template in user-config.yml.example
  • Merges configs into deploy-validator-config.yaml for deployment
  • Both local and ansible deployments read from the deploy-validator-config.yaml generated for every deploy similar to nodes.yaml and other auto-generated files.
  • Updated README with usage examples

Usage:

# Use custom images
NETWORK_DIR=local-devnet ./spin-node.sh --configFile user-config.yml

@g11tech
Copy link
Member

g11tech commented Jan 22, 2026

instead of adding it as a extra flag why don't we make it madatory for network folders (local-network, ansible-network) to have a clients-config.yaml file where this can be specified and read from? also remove individual images reads from client cmds, so its not an override but the original place to specify

@ch4r10t33r
Copy link
Contributor

instead of adding it as a extra flag why don't we make it madatory for network folders (local-network, ansible-network) to have a clients-config.yaml file where this can be specified and read from? also remove individual images reads from client cmds, so its not an override but the original place to specify

The idea behind this custom parameter was to switch to a new image (for local testing) without having to change the client-cmd.sh.

@KatyaRyazantseva
Copy link
Contributor Author

instead of adding it as a extra flag why don't we make it madatory for network folders (local-network, ansible-network) to have a clients-config.yaml file where this can be specified and read from? also remove individual images reads from client cmds, so its not an override but the original place to specify

The long-term goal is to make quickstart possible to run just by pulling the docker image. In this case, we won't have the whole repo available and will need to pass the config file as a parameter. Additionally, the config file may have a custom name and path depending on the user's setup.

Additionally, I'm not a fan of having two separate config files. I would prefer to refactor this (either now or later) into a single file that maintains the separation through structure, for example:

local:
  metrics-port: 8081
  ip: "127.0.0.1"
ansible:
  metrics-port: 8086
  ip: "45.134.126.203"

This approach would use corresponding defaults for each section. Whenever users need to change something on the local or ansible side, they can configure it in one file without duplicating other parameters.

@KatyaRyazantseva
Copy link
Contributor Author

@g11tech @ch4r10t33r my suggestion: If --configFile (user-config.yml) is provided, ignore the --node flag and deploy only the nodes listed in the config file. This avoids confusion about flag overriding. Plus, the config file is more visual - a user can see at a glance which nodes will be deployed without needing extra flags. If someone uses a config file, they likely want that specific configuration.

@KatyaRyazantseva KatyaRyazantseva marked this pull request as ready for review February 9, 2026 23:00
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.

3 participants