From b5fb2a9543904ede5ac40525ab385e50d4d6f482 Mon Sep 17 00:00:00 2001
From: Pavel Karpy
Date: Thu, 24 Nov 2022 15:24:52 +0300
Subject: [PATCH] [#241] node: Provide common params with `.yml` file
Signed-off-by: Pavel Karpy
---
services/storage/.storage.env | 89 -----------------------------
services/storage/cfg/config.yml | 81 ++++++++++++++++++++++++++
services/storage/docker-compose.yml | 8 +++
3 files changed, 89 insertions(+), 89 deletions(-)
create mode 100644 services/storage/cfg/config.yml
diff --git a/services/storage/.storage.env b/services/storage/.storage.env
index 50c0d6f..e69de29 100644
--- a/services/storage/.storage.env
+++ b/services/storage/.storage.env
@@ -1,89 +0,0 @@
-# Logger section
-## Minimum enabled logging level
-## Default: info
-NEOFS_LOGGER_LEVEL=debug
-
-# Profiler section
-NEOFS_PPROF_ENABLED=true
-## Server address. Empty value disables profiler
-NEOFS_PPROF_ADDRESS=:6060
-## Timeout to shut down the HTTP server
-## Default: 30s
-#NEOFS_PROFILER_SHUTDOWN_TIMEOUT=1m
-
-# Application metrics section
-NEOFS_PROMETHEUS_ENABLED=true
-## Server address. Empty value disables metrics gathering
-NEOFS_PROMETHEUS_ADDRESS=:9090
-## Timeout to shut down the HTTP server
-## Default: 30s
-#NEOFS_METRICS_SHUTDOWN_TIMEOUT=1m
-
-# Morph section
-## Endpoints of sidechain RPC nodes (comma-separated)
-## Default: empty list (invalid)
-NEOFS_MORPH_RPC_ENDPOINT_0_ADDRESS=ws://morph-chain:30333/ws
-## Dial timeout to connect to notification endpoint
-## Default: 5s
-#NEOFS_MORPH_DIAL_TIMEOUT=1m
-# Configure side chain caches (negative value to disable)
-#NEOFS_MORPH_CACHE_TTL=15s
-
-# Cache of API clients section
-## Dial timeout to connect to remote API server
-## Default: 5s
-#NEOFS_APICLIENT_DIAL_TIMEOUT=1m
-
-# Common storage node attribute
-NEOFS_NODE_ATTRIBUTE_0=User-Agent:FrostFS\/0.33
-
-NEOFS_NODE_NOTIFICATION_ENABLED=true
-NEOFS_NODE_NOTIFICATION_ENDPOINT=tls://nats.frostfs.devenv:4222
-NEOFS_NODE_NOTIFICATION_DEFAULT_TOPIC=test
-NEOFS_NODE_NOTIFICATION_CERTIFICATE=/etc/frostfs-node/nats.tls.cert
-NEOFS_NODE_NOTIFICATION_KEY=/etc/frostfs-node/nats.tls.key
-NEOFS_NODE_NOTIFICATION_CA=/etc/frostfs-node/nats.ca.crt
-
-# Tree section
-NEOFS_TREE_ENABLED=True
-
-# Object section
-## Worker pool capacity of API Object.Put client calls
-## Default: 10
-#NEOFS_OBJECT_PUT_POOL_SIZE_REMOTE=100
-#NEOFS_OBJECT_PUT_POOL_SIZE_LOCAL=100
-
-# Policer section
-## Timeout of Object.Head calls by Policer
-## Default: 5s
-#NEOFS_POLICER_HEAD_TIMEOUT=1m
-
-# Replicator section
-## Timeout of Object.Put calls by Replicator
-## Default: 5s
-#NEOFS_REPLICATOR_PUT_TIMEOUT=1m
-
-# Storage engine configuration
-NEOFS_STORAGE_SHARD_0_WRITECACHE_ENABLED=false
-NEOFS_STORAGE_SHARD_0_WRITECACHE_PATH=/storage/wc0
-NEOFS_STORAGE_SHARD_0_METABASE_PATH=/storage/meta0
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_TYPE=blobovnicza
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_PATH=/storage/blobovnicza0
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_DEPTH=2
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_WIDTH=4
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_TYPE=fstree
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_PATH=/storage/fstree0
-NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_DEPTH=2
-NEOFS_STORAGE_SHARD_0_PILORAMA_PATH=/storage/pilorama0
-
-NEOFS_STORAGE_SHARD_1_WRITECACHE_ENABLED=false
-NEOFS_STORAGE_SHARD_1_WRITECACHE_PATH=/storage/wc1
-NEOFS_STORAGE_SHARD_1_METABASE_PATH=/storage/meta1
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_TYPE=blobovnicza
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_PATH=/storage/blobovnicza1
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_DEPTH=2
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_WIDTH=4
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_TYPE=fstree
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_PATH=/storage/fstree1
-NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_DEPTH=2
-NEOFS_STORAGE_SHARD_1_PILORAMA_PATH=/storage/pilorama1
diff --git a/services/storage/cfg/config.yml b/services/storage/cfg/config.yml
new file mode 100644
index 0000000..49b587f
--- /dev/null
+++ b/services/storage/cfg/config.yml
@@ -0,0 +1,81 @@
+# Logger section
+logger:
+ level: debug # Minimum enabled logging level
+
+# Profiler section
+pprof:
+ enabled: true
+ address: :6060 # Server address
+ shutdown_timeout: 15s # Timeout for profiling HTTP server graceful shutdown
+
+# Application metrics section
+prometheus:
+ enabled: true
+ address: :9090 # Server address
+ shutdown_timeout: 15s # Timeout for metrics HTTP server graceful shutdown
+
+# Morph section
+morph:
+ dial_timeout: 30s # Timeout for side chain NEO RPC client connection
+ rpc_endpoint: # Side chain NEO RPC endpoints
+ - address: ws://morph-chain:30333/ws
+ priority: 1
+
+# Common storage node settings
+node:
+ attribute_0: "User-Agent:FrostFS/0.34"
+ notification:
+ enabled: true # Turn on object notification service
+ endpoint: "tls://nats.frostfs.devenv:4222" # Notification server endpoint
+ timeout: "6s" # Timeout for object notification client connection
+ default_topic: "test" # Default topic for object notifications if not found in object's meta
+ certificate: "/etc/frostfs-node/nats.tls.cert" # Path to TLS certificate
+ key: "/etc/frostfs-node/nats.tls.key" # Path to TLS key
+ ca: "/etc/frostfs-node/nats.ca.crt" # Path to optional CA certificate
+
+# Tree section
+tree:
+ enabled: true
+
+# Storage engine configuration
+storage:
+ shard:
+ 0:
+ writecache:
+ enabled: false
+ path: /storage/wc0 # Write-cache root directory
+
+ metabase:
+ path: /storage/meta0 # Path to the metabase
+
+ blobstor:
+ - type: blobovnicza
+ path: /storage/blobovnicza0 # Blobovnicza root directory
+ depth: 2
+ width: 4
+ - type: fstree
+ path: /storage/fstree0 # FSTree root directory
+ depth: 2
+
+ pilorama:
+ path: /storage/pilorama0 # Path to the pilorama database
+
+ 1:
+ writecache:
+ enabled: false
+ path: /storage/wc1 # Write-cache root directory
+
+ metabase:
+ path: /storage/meta1 # Path to the metabase
+
+ blobstor:
+ - type: blobovnicza
+ path: /storage/blobovnicza1 # Blobovnicza root directory
+ depth: 2
+ width: 4
+ - type: fstree
+ path: /storage/fstree1 # FSTree root directory
+ depth: 2
+
+ pilorama:
+ path: /storage/pilorama1 # Path to the pilorama database
diff --git a/services/storage/docker-compose.yml b/services/storage/docker-compose.yml
index 3e94644..27eceb7 100644
--- a/services/storage/docker-compose.yml
+++ b/services/storage/docker-compose.yml
@@ -23,8 +23,10 @@ services:
- ../nats/client-cert.pem:/etc/frostfs-node/nats.tls.cert
- ../nats/client-key.pem:/etc/frostfs-node/nats.tls.key
- ../nats/ca-cert.pem:/etc/frostfs-node/nats.ca.crt
+ - ./cfg:/etc/frostfs/storage
stop_signal: SIGKILL
env_file: [ ".env", ".storage.env", ".int_test.env" ]
+ command: [ "frostfs-node", "--config", "/etc/frostfs/storage/config.yml" ]
environment:
- NEOFS_NODE_WALLET_PATH=./wallet.json
- NEOFS_NODE_WALLET_PASSWORD=
@@ -61,8 +63,10 @@ services:
- ../nats/client-cert.pem:/etc/frostfs-node/nats.tls.cert
- ../nats/client-key.pem:/etc/frostfs-node/nats.tls.key
- ../nats/ca-cert.pem:/etc/frostfs-node/nats.ca.crt
+ - ./cfg:/etc/frostfs/storage
stop_signal: SIGKILL
env_file: [ ".env", ".storage.env", ".int_test.env" ]
+ command: [ "frostfs-node", "--config", "/etc/frostfs/storage/config.yml" ]
environment:
- NEOFS_NODE_WALLET_PATH=./wallet.json
- NEOFS_NODE_WALLET_PASSWORD=
@@ -99,8 +103,10 @@ services:
- ../nats/client-cert.pem:/etc/frostfs-node/nats.tls.cert
- ../nats/client-key.pem:/etc/frostfs-node/nats.tls.key
- ../nats/ca-cert.pem:/etc/frostfs-node/nats.ca.crt
+ - ./cfg:/etc/frostfs/storage
stop_signal: SIGKILL
env_file: [ ".env", ".storage.env", ".int_test.env" ]
+ command: [ "frostfs-node", "--config", "/etc/frostfs/storage/config.yml" ]
environment:
- NEOFS_NODE_WALLET_PATH=./wallet.json
- NEOFS_NODE_WALLET_PASSWORD=
@@ -138,8 +144,10 @@ services:
- ../nats/client-cert.pem:/etc/frostfs-node/nats.tls.cert
- ../nats/client-key.pem:/etc/frostfs-node/nats.tls.key
- ../nats/ca-cert.pem:/etc/frostfs-node/nats.ca.crt
+ - ./cfg:/etc/frostfs/storage
stop_signal: SIGKILL
env_file: [ ".env", ".storage.env", ".int_test.env" ]
+ command: [ "frostfs-node", "--config", "/etc/frostfs/storage/config.yml" ]
environment:
- NEOFS_NODE_WALLET_PATH=./wallet.json
- NEOFS_NODE_WALLET_PASSWORD=