# Examples of correct configuration file structures Here are files in all supported formats and with all possible configuration values of FrostFS applications. See [node.yaml](node.yaml) for configuration notes. All parameters are correct, however, they are for informational purposes only. It is not recommended transferring these configs for real application launches. ## Config files - Storage node - JSON: `node.json` - YAML: `node.yaml` - Inner ring - YAML: `ir.yaml` - CLI - YAML: `cli.yaml` ### Multiple configs You can split your configuration to several files. For example, you can use separate yaml file for each shard or each service (pprof, prometheus). You must use `--config-dir` flag to process several configs: ```shell $ ./bin/frotsfs-node --config ./config/example/node.yaml --config-dir ./dir/with/additional/configs ``` When the `--config-dir` flag set, the application: * reads all `*.y[a]ml` files from provided directory, * use Viper's [MergeConfig](https://pkg.go.dev/github.com/spf13/viper#MergeConfig) functionality to produce the final configuration, * files are being processing in alphanumerical order so that `01.yaml` may be extended with contents of `02.yaml`, so if a field is specified in multiple files, the latest occurrence takes effect. So if we have the following files: ```yaml # 00.yaml logger: level: debug pprof: enabled: true address: localhost:6060 prometheus: enabled: true address: localhost:9090 ``` ```yaml # dir/01.yaml logger: level: info pprof: enabled: false ``` ```yaml # dir/02.yaml logger: level: warn prometheus: address: localhost:9091 ``` and provide the following flags: ```shell $ ./bin/frotsfs-node --config 00.yaml --config-dir dir ``` result config will be: ```yaml logger: level: warn pprof: enabled: false address: localhost:6060 prometheus: enabled: true address: localhost:9091 ``` ## Environment variables - Storage node: `node.env` - Inner ring: `ir.env`