Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
This commit is contained in:
parent
d08b338e06
commit
d3f0e86d68
11 changed files with 239 additions and 0 deletions
4
.env
4
.env
|
@ -35,6 +35,10 @@ REST_GW_IMAGE=truecloudlab/frostfs-rest-gw
|
|||
S3_GW_VERSION=0.27.0-rc.1-30-gce929468
|
||||
S3_GW_IMAGE=truecloudlab/frostfs-s3-gw
|
||||
|
||||
# Lifecycler
|
||||
S3_LIFECYCLER_VERSION=755083e36f
|
||||
S3_LIFECYCLER_IMAGE=truecloudlab/frostfs-s3-lifecycler
|
||||
|
||||
# FrostFS LOCODE database
|
||||
LOCODE_DB_URL=https://git.frostfs.info/attachments/a2e8def7-52b6-49f1-89cd-a056712e8e54
|
||||
#LOCODE_DB_PATH=/path/to/locode_db
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
http_gate
|
||||
s3_gate
|
||||
rest_gate
|
||||
s3_lifecycler
|
||||
|
|
66
services/s3_lifecycler/.env
Normal file
66
services/s3_lifecycler/.env
Normal file
|
@ -0,0 +1,66 @@
|
|||
# Basenet settings
|
||||
LOCAL_DOMAIN=frostfs.devenv
|
||||
IPV4_PREFIX=192.168.130
|
||||
CA_CERTS_TRUSTED_STORE=/etc/ssl/certs
|
||||
|
||||
# Bastion image
|
||||
BASTION_VERSION=10
|
||||
BASTION_IMAGE=debian
|
||||
|
||||
# NeoGo privnet
|
||||
NEOGO_VERSION=0.101.1
|
||||
NEOGO_IMAGE=nspccdev/neo-go
|
||||
|
||||
# FrostFS InnerRing nodes
|
||||
IR_VERSION=365a7ca0
|
||||
IR_IMAGE=truecloudlab/frostfs-ir
|
||||
|
||||
# FrostFS Storage nodes
|
||||
NODE_VERSION=365a7ca0
|
||||
NODE_IMAGE=truecloudlab/frostfs-storage
|
||||
|
||||
# NATS Server
|
||||
NATS_VERSION=2.7.2
|
||||
NATS_IMAGE=nats
|
||||
|
||||
# HTTP Gate
|
||||
HTTP_GW_VERSION=0.27.0-rc.1-15-g1776db28
|
||||
HTTP_GW_IMAGE=truecloudlab/frostfs-http-gw
|
||||
|
||||
# REST Gate
|
||||
REST_GW_VERSION=c9c85e90
|
||||
REST_GW_IMAGE=truecloudlab/frostfs-rest-gw
|
||||
|
||||
# S3 Gate
|
||||
S3_GW_VERSION=0.27.0-rc.1-30-gce929468
|
||||
S3_GW_IMAGE=truecloudlab/frostfs-s3-gw
|
||||
|
||||
# Lifecycler
|
||||
S3_LIFECYCLER_VERSION=0.1.3
|
||||
S3_LIFECYCLER_IMAGE=truecloudlab/frostfs-s3-lifecycler
|
||||
|
||||
# FrostFS LOCODE database
|
||||
LOCODE_DB_URL=https://git.frostfs.info/attachments/a2e8def7-52b6-49f1-89cd-a056712e8e54
|
||||
#LOCODE_DB_PATH=/path/to/locode_db
|
||||
|
||||
# FrostFS CLI binary
|
||||
FROSTFS_CLI_URL=https://http.t5.fs.neo.org/7sm9csjtRLpr4c9QD55q9JJM73v79ohuAhTzP4fYRHFz/BbngJDdRJEDJTJk7qptq3SxKqrJqtvVYWU6R5AaFGbtG
|
||||
#FROSTFS_CLI_PATH=/path/to/frostfs-cli-binary
|
||||
|
||||
# FrostFS ADM tool binary
|
||||
FROSTFS_ADM_VERSION=eca5c210
|
||||
FROSTFS_ADM_URL=https://http.t5.fs.neo.org/7sm9csjtRLpr4c9QD55q9JJM73v79ohuAhTzP4fYRHFz/2GxarAjGUb3RevxvqFGYT3hDQxNNaHzK6aFxhJCAMehq
|
||||
#FROSTFS_ADM_PATH=/path/to/frostfs-adm-binary
|
||||
|
||||
# Compiled FrostFS Smart Contracts
|
||||
FROSTFS_CONTRACTS_VERSION=8537293e
|
||||
FROSTFS_CONTRACTS_URL=https://http.t5.fs.neo.org/7sm9csjtRLpr4c9QD55q9JJM73v79ohuAhTzP4fYRHFz/6ccZoj4HxoN1G1qvJAX2Qw9p2D6qdyzAjNMaNkEKYQpA
|
||||
#FROSTFS_CONTRACTS_PATH=/path/to/unpacked/frostfs-contracts-dir
|
||||
|
||||
# Jaeger tracing
|
||||
JAEGER_VERSION=1.42.0
|
||||
JAEGER_IMAGE=jaegertracing/all-in-one
|
||||
|
||||
# Prometheus monitoring
|
||||
PROMETHEUS_VERSION=v2.43.0
|
||||
PROMETHEUS_IMAGE=prom/prometheus
|
2
services/s3_lifecycler/.hosts
Normal file
2
services/s3_lifecycler/.hosts
Normal file
|
@ -0,0 +1,2 @@
|
|||
IPV4_PREFIX.82 s3.LOCAL_DOMAIN
|
||||
IPV4_PREFIX.82 *.s3.LOCAL_DOMAIN
|
0
services/s3_lifecycler/.int_test.env
Normal file
0
services/s3_lifecycler/.int_test.env
Normal file
0
services/s3_lifecycler/.s3_lifecycler.env
Normal file
0
services/s3_lifecycler/.s3_lifecycler.env
Normal file
29
services/s3_lifecycler/cfg/config.yml
Normal file
29
services/s3_lifecycler/cfg/config.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
logger:
|
||||
level: debug
|
||||
|
||||
prometheus:
|
||||
enabled: true
|
||||
address: :9090
|
||||
|
||||
# Interval to check node health
|
||||
rebalance_interval: 30s
|
||||
|
||||
# Timeout to check node health during rebalance
|
||||
healthcheck_timeout: 15s
|
||||
|
||||
# Timeout to connect to a node
|
||||
connect_timeout: 10s
|
||||
|
||||
# Limits for processing of clients' requests
|
||||
max_clients_count: 100
|
||||
|
||||
# Deadline after which the gate sends error `RequestTimeout` to a client
|
||||
max_clients_deadline: 30s
|
||||
|
||||
resolve_order:
|
||||
- nns
|
||||
|
||||
# Wallet configuration
|
||||
wallet:
|
||||
path: /wallet.json # Path to wallet
|
||||
passphrase: "s3" # Passphrase to decrypt wallet
|
58
services/s3_lifecycler/docker-compose.yml
Normal file
58
services/s3_lifecycler/docker-compose.yml
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
|
||||
version: "2.4"
|
||||
services:
|
||||
s3_lifecycler:
|
||||
image: ${S3_LIFECYCLER_IMAGE}:${S3_LIFECYCLER_VERSION}
|
||||
domainname: ${LOCAL_DOMAIN}
|
||||
hostname: s3_lifecycler
|
||||
container_name: s3_lifecycler
|
||||
restart: on-failure
|
||||
networks:
|
||||
s3_lifecycler_int:
|
||||
internet:
|
||||
ipv4_address: ${IPV4_PREFIX}.84
|
||||
volumes:
|
||||
- ./wallet.json:/wallet.json
|
||||
- ./tls.key:/tls.key
|
||||
- ./tls.crt:/tls.crt
|
||||
- ./../../vendor/hosts:/etc/hosts
|
||||
- ./cfg:/etc/frostfs/s3-lifecycler
|
||||
stop_signal: SIGKILL
|
||||
env_file: [ ".env", ".s3_lifecycler.env", ".int_test.env" ]
|
||||
command: [ "frostfs-s3-lifecycler", "--config", "/etc/frostfs/s3-lifecycler/config.yml" ]
|
||||
environment:
|
||||
- S3_LIFECYCLER_CREDENTIAL_USE=wallets
|
||||
- S3_LIFECYCLER_CREDENTIAL_SOURCE_WALLETS_0_PATH=./wallet.json
|
||||
- S3_LIFECYCLER_CREDENTIAL_SOURCE_WALLETS_0_ADDRESS=NTt1rxvmEDxEuuogLxs2xgxA71qhVaUcN7
|
||||
- S3_LIFECYCLER_CREDENTIAL_SOURCE_WALLETS_0_PASSPHRASE="cycle"
|
||||
- S3_LIFECYCLER_LIFECYCLE_JOB_FETCHER_BUFFER=1000
|
||||
- S3_LIFECYCLER_LIFECYCLE_EXECUTOR_POOL_SIZE=100
|
||||
- S3_LIFECYCLER_LIFECYCLE_SERVICES=031a6c6fbbdf02ca351745fa86b9ba5a9452d785ac4f7fc2b7548ca2a46c4fcf4a
|
||||
- S3_LIFECYCLER_RPC_ENDPOINT=http://morph-chain.${LOCAL_DOMAIN}:30333
|
||||
- S3_LIFECYCLER_MORPH_RPC_ENDPOINT_0_ADDRESS="wss://rpc1.morph.frostfs.info:40341/ws"
|
||||
- S3_LIFECYCLER_MORPH_RPC_ENDPOINT_0_PRIORITY=0
|
||||
- S3_LIFECYCLER_MORPH_RPC_ENDPOINT_0_TRUSTED_CA_LIST="/path/to/ca.pem"
|
||||
- S3_LIFECYCLER_MORPH_RPC_ENDPOINT_0_CERTIFICATE="/path/to/cert"
|
||||
- S3_LIFECYCLER_MORPH_RPC_ENDPOINT_0_KEY="/path/to/key"
|
||||
- S3_LIFECYCLER_MORPH_RECONNECT_CLIENTS_INTERVAL=30s
|
||||
- S3_LIFECYCLER_MORPH_RECONNECT_DIAL_TIMEOUT=5s
|
||||
- S3_LIFECYCLER_MORPH_CONTRACT_NETMAP=netmap.frostfs
|
||||
- S3_LIFECYCLER_MORPH_CONTRACT_FROSTFSID=frostfsid.frostfs
|
||||
- S3_LIFECYCLER_MORPH_CONTRACT_CONTAINER=container.frostfs
|
||||
- S3_LIFECYCLER_PEERS_0_ADDRESS=s01.${LOCAL_DOMAIN}:8080
|
||||
- S3_LIFECYCLER_PEERS_0_WEIGHT=0.2
|
||||
- S3_LIFECYCLER_PEERS_1_ADDRESS=s02.${LOCAL_DOMAIN}:8080
|
||||
- S3_LIFECYCLER_PEERS_1_WEIGHT=0.2
|
||||
- S3_LIFECYCLER_PEERS_2_ADDRESS=s03.${LOCAL_DOMAIN}:8080
|
||||
- S3_LIFECYCLER_PEERS_2_WEIGHT=0.2
|
||||
- S3_LIFECYCLER_PEERS_3_ADDRESS=s04.${LOCAL_DOMAIN}:8080
|
||||
- S3_LIFECYCLER_PEERS_3_WEIGHT=0.2
|
||||
- S3_LIFECYCLER_SERVER_0_ADDRESS=s3.${LOCAL_DOMAIN}:8080
|
||||
- S3_LIFECYCLER_LISTEN_DOMAINS=s3.${LOCAL_DOMAIN}
|
||||
|
||||
networks:
|
||||
s3_lifecycler_int:
|
||||
internet:
|
||||
external: true
|
||||
name: basenet_internet
|
22
services/s3_lifecycler/tls.crt
Normal file
22
services/s3_lifecycler/tls.crt
Normal file
|
@ -0,0 +1,22 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDpDCCAowCCQDXZEH0aQRqFzANBgkqhkiG9w0BAQsFADCBkzELMAkGA1UEBhMC
|
||||
UlUxFjAUBgNVBAgMDVN0LlBldGVyc2J1cmcxGTAXBgNVBAcMEFNhaW50IFBldGVy
|
||||
c2J1cmcxDjAMBgNVBAoMBU5TUENDMREwDwYDVQQLDAhOZW8gU1BDQzERMA8GA1UE
|
||||
AwwIbnNwY2MucnUxGzAZBgkqhkiG9w0BCQEWDG9wc0Buc3BjYy5ydTAeFw0yMDA3
|
||||
MTMxNTQyMzZaFw0zMDA3MTExNTQyMzZaMIGTMQswCQYDVQQGEwJSVTEWMBQGA1UE
|
||||
CAwNU3QuUGV0ZXJzYnVyZzEZMBcGA1UEBwwQU2FpbnQgUGV0ZXJzYnVyZzEOMAwG
|
||||
A1UECgwFTlNQQ0MxETAPBgNVBAsMCE5lbyBTUENDMREwDwYDVQQDDAhuc3BjYy5y
|
||||
dTEbMBkGCSqGSIb3DQEJARYMb3BzQG5zcGNjLnJ1MIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEAwqo2l4fS0U6wZCLh7VjQn1LXN8pZlVaA62C+g1SwoWV2
|
||||
Q5qM8FDihWj3UBO3F+6vUVJl8N5S0JroxxU6L48Wmshei145SLSl/F28tsk7Bbuz
|
||||
NOchonlelW77Xr6l7cDJBWUWGkDoq6a/S6w6jjCGhZq+X0gyS5nZ4HTouVNv2oFK
|
||||
eeJGtueLsS4zoVovrHdLSYdZH9/yC+E1WVCzQB+vdUF/vJLTuULgqncLV0sELmRl
|
||||
+xsnnAV/REJswtCmKgrmAv9pMebBw5EEgROTGazdToWdD5X44xTlHjUb1bMuF9tL
|
||||
YtUMdLxXceXZFhYhiTBO7ev9awKaNYslbxh+goJo1wIDAQABMA0GCSqGSIb3DQEB
|
||||
CwUAA4IBAQBDEGhAyOtfsNwbZ0oZIw06e0JXCmri+8jsn5Ly/yHU0+ecHgMA5AAQ
|
||||
AG2QRpZZtZCtD/Cj4i6nSTWbRhS0FgqY998p5Lnh/AXTZHBx0t3LKJupN59CIjCK
|
||||
1eMEfQChoAZg66oO/obAFkq72gj8gpagMY9vFNVcszmse3FWrvlKmO1TwTEh+CzM
|
||||
7wbmiL/ujm0lIf44pp0U4qYFcSimSDqbwOfeDPif9lMinzylDxMfaAKBHBHPj5Vt
|
||||
fX8dgf6MIqyz51u/2G0gHfXMDxXec8huYKt2EtPyavh6kFxxGvcA15m6seJTcu+h
|
||||
6WzeQFa2NBg7Z3ai4DiPXirNtcHWeqxK
|
||||
-----END CERTIFICATE-----
|
27
services/s3_lifecycler/tls.key
Normal file
27
services/s3_lifecycler/tls.key
Normal file
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAwqo2l4fS0U6wZCLh7VjQn1LXN8pZlVaA62C+g1SwoWV2Q5qM
|
||||
8FDihWj3UBO3F+6vUVJl8N5S0JroxxU6L48Wmshei145SLSl/F28tsk7BbuzNOch
|
||||
onlelW77Xr6l7cDJBWUWGkDoq6a/S6w6jjCGhZq+X0gyS5nZ4HTouVNv2oFKeeJG
|
||||
tueLsS4zoVovrHdLSYdZH9/yC+E1WVCzQB+vdUF/vJLTuULgqncLV0sELmRl+xsn
|
||||
nAV/REJswtCmKgrmAv9pMebBw5EEgROTGazdToWdD5X44xTlHjUb1bMuF9tLYtUM
|
||||
dLxXceXZFhYhiTBO7ev9awKaNYslbxh+goJo1wIDAQABAoIBAEIp3mJEjPgNOdDf
|
||||
NlEYpdfxLStOQIKMo0bdXAOBToOc28SAjDTGGSflFGIIQWwF+Vq3meRzfExgyouY
|
||||
AG3XwYQcZF4USX4XwG71YUXzQXdiY7ewc3Mos2gxD4kVXYpgwzJtOET2GN72zwAm
|
||||
asSXY7GXdesmu8mMYkxzEAKlhFgMj+bGE/4QQUBKG9ylGIdo07zmU6rAsVhnwQTb
|
||||
LE3cf+AxCeTVA7OsJCUUR4S9qsgXUN1WeaV8LNg0lYx8UTu1xlbrpSjx7B4eYy6J
|
||||
FGJWuT9b3X+cBLcGk3BzheUAfqBG2UFDxUCt0grqmmTBkB850MtCDhffhPjxxrD7
|
||||
KrwAcpECgYEA6HApn2VtWI/tDYCbNix6yxeqq73fO3ng6yFry1u7EYvl8hJXBgR4
|
||||
b6kAVc3y/9pZO/5D23dHl1PQtnU5401/j6dQrb8A2TMqZ1vA8XIdIMjOiVjZtYMF
|
||||
nXzmf78PEbw9jWlDVARJdAwkJeuDI4/HVvgiDAh3zxx5F8uDVP16/r8CgYEA1mXS
|
||||
9owfLIPtPSxyMJoGU0jP7OP+HVwlKkXpvg7uBtINKSDW4UU4rnpIGW5MohR3ACWO
|
||||
ReFliOnGA5FXBp9GzkbJ+wIYovPIsGuBdxSsBlPY1S0yPlo30hr7E6cK3B3EuxDg
|
||||
SkbJcWp2EwXYEIyEcopbVUTTlBO3wmBFgm/Ps+kCgYA/+Kar9OlMR4hRgAS3uzQs
|
||||
cx4I2F/46YlKjU8yj9ODd8JYhk2nHVHcQWITO3RWkEyg41DftQtiDbJSlR7SfUDP
|
||||
U5gzyW69WISiH7GRgfucS0f0qxx4BVBlULvLitTl5631HnRmSivBIZpNSW01O1v8
|
||||
hpwwPaBjww1czCkgGgdg1wKBgQCkaSdTW/bX+z9lpvzWWnc5TN/uSJRpTW1Osphh
|
||||
4C8WWeQvwvglfiDOZAWAQv5PWKQ9H4+v9P4Y9TSdLcpv0JrKuqxPabcc1xfyei6o
|
||||
89hLbecc6vDZsfOWkowx8Oo6DDX+Qh3Nt+TorXxocBXV8vvqnkEV7ZbWuhwz2gHT
|
||||
2gyMaQKBgEE7rNzm8Q03IqQ08eYaRw8gWz8EpLeVebrGqtoH9AR5cd4OeTeZAEqc
|
||||
iPehXctke2pUgS47XgG98G7Yg3E9UuOYM+H2nzQCoT7jrM0dZrVGZ0ty7z1a8QGe
|
||||
UrjaAC/cyIGdszhf0Rf3qA7450nit9Txh+ilLiumgnUezl+eJXyI
|
||||
-----END RSA PRIVATE KEY-----
|
30
services/s3_lifecycler/wallet.json
Normal file
30
services/s3_lifecycler/wallet.json
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"accounts": [
|
||||
{
|
||||
"address": "NTt1rxvmEDxEuuogLxs2xgxA71qhVaUcN7",
|
||||
"key": "6PYR3XurAyTzVeDG5WV2Z8vnGdySw3mTLuKjr6Nwo7tae64SJ7XjZSMMPQ",
|
||||
"label": "lifecycler",
|
||||
"contract": {
|
||||
"script": "DCED9z0M+WSGfXZGxYLj1yYwmgxJXE/kNA4+oWNi0q1uKCdBVuezJw==",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "parameter0",
|
||||
"type": "Signature"
|
||||
}
|
||||
],
|
||||
"deployed": false
|
||||
},
|
||||
"lock": false,
|
||||
"isDefault": false
|
||||
}
|
||||
],
|
||||
"scrypt": {
|
||||
"n": 16384,
|
||||
"r": 8,
|
||||
"p": 8
|
||||
},
|
||||
"extra": {
|
||||
"Tokens": null
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue