forked from TrueCloudLab/frostfs-node
85 lines
1.9 KiB
Markdown
85 lines
1.9 KiB
Markdown
# 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`
|