[#48] Add S3 Lifecycler
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
This commit is contained in:
parent
13bec4ff0d
commit
fe05390238
8 changed files with 78 additions and 0 deletions
1
.env
1
.env
|
@ -6,4 +6,5 @@ AIO_VERSION=1.7.0-nightly.2
|
||||||
FROSTFS_CORE_TAG=0.44.0-rc.7
|
FROSTFS_CORE_TAG=0.44.0-rc.7
|
||||||
FROSTFS_HTTP_GATE_TAG=0.31.0-rc.4
|
FROSTFS_HTTP_GATE_TAG=0.31.0-rc.4
|
||||||
FROSTFS_S3_GATE_TAG=0.31.0-rc.4
|
FROSTFS_S3_GATE_TAG=0.31.0-rc.4
|
||||||
|
FROSTFS_S3_LIFECYCLER_TAG=0.1.3
|
||||||
NEOGO_TAG=0.106.0
|
NEOGO_TAG=0.106.0
|
||||||
|
|
|
@ -5,6 +5,7 @@ ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
|
||||||
ARG FROSTFS_CORE_TAG=dev
|
ARG FROSTFS_CORE_TAG=dev
|
||||||
ARG FROSTFS_HTTP_GATE_TAG=dev
|
ARG FROSTFS_HTTP_GATE_TAG=dev
|
||||||
ARG FROSTFS_S3_GATE_TAG=dev
|
ARG FROSTFS_S3_GATE_TAG=dev
|
||||||
|
ARG FROSTFS_S3_LIFECYCLER_TAG=dev
|
||||||
ARG NEOGO_TAG=dev
|
ARG NEOGO_TAG=dev
|
||||||
|
|
||||||
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
|
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
|
||||||
|
@ -14,6 +15,7 @@ FROM ${FROSTFS_FORGEJO_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
|
||||||
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
|
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
|
||||||
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
|
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
|
||||||
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
|
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
|
||||||
|
FROM ${FROSTFS_HUB_IMAGE}-s3-lifecycler:${FROSTFS_S3_LIFECYCLER_TAG} AS frostfs-s3-lifecycler
|
||||||
|
|
||||||
# Executable image
|
# Executable image
|
||||||
FROM alpine AS frostfs-aio
|
FROM alpine AS frostfs-aio
|
||||||
|
@ -35,6 +37,7 @@ COPY --from=frostfs-storage /bin/frostfs-node /usr/bin/frostfs-node
|
||||||
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
|
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
|
||||||
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
||||||
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
||||||
|
COPY --from=frostfs-s3-lifecycler /bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
|
||||||
|
|
||||||
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
||||||
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
||||||
|
@ -53,6 +56,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
|
||||||
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
||||||
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
||||||
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
||||||
|
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
|
||||||
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
||||||
COPY ./sn/wallet.json /config/wallet-sn.json
|
COPY ./sn/wallet.json /config/wallet-sn.json
|
||||||
COPY ./sn/config.yaml /config/config-sn.yaml
|
COPY ./sn/config.yaml /config/config-sn.yaml
|
||||||
|
|
|
@ -5,6 +5,7 @@ ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
|
||||||
ARG FROSTFS_CORE_TAG=dev
|
ARG FROSTFS_CORE_TAG=dev
|
||||||
ARG FROSTFS_HTTP_GATE_TAG=dev
|
ARG FROSTFS_HTTP_GATE_TAG=dev
|
||||||
ARG FROSTFS_S3_GATE_TAG=dev
|
ARG FROSTFS_S3_GATE_TAG=dev
|
||||||
|
ARG FROSTFS_S3_LIFECYCLER_TAG=dev
|
||||||
ARG NEOGO_TAG=dev
|
ARG NEOGO_TAG=dev
|
||||||
|
|
||||||
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
|
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
|
||||||
|
@ -13,6 +14,7 @@ FROM ${FROSTFS_FORGEJO_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
|
||||||
FROM ${FROSTFS_FORGEJO_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
|
FROM ${FROSTFS_FORGEJO_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
|
||||||
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
|
FROM ${FROSTFS_FORGEJO_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
|
||||||
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
|
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
|
||||||
|
FROM ${FROSTFS_HUB_IMAGE}-s3-lifecycler:${FROSTFS_S3_LIFECYCLER_TAG} AS frostfs-s3-lifecycler
|
||||||
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
|
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
|
||||||
|
|
||||||
# Executable image
|
# Executable image
|
||||||
|
@ -35,6 +37,7 @@ COPY --from=frostfs-storage /bin/frostfs-node /usr/bin/frostfs-node
|
||||||
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
|
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
|
||||||
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
||||||
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
||||||
|
COPY --from=frostfs-s3-lifecycler /bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
|
||||||
|
|
||||||
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
||||||
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
||||||
|
@ -53,6 +56,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
|
||||||
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
||||||
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
||||||
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
||||||
|
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
|
||||||
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
||||||
COPY ./sn/wallet.json /config/wallet-sn.json
|
COPY ./sn/wallet.json /config/wallet-sn.json
|
||||||
COPY ./sn/config.yaml /config/config-sn.yaml
|
COPY ./sn/config.yaml /config/config-sn.yaml
|
||||||
|
|
|
@ -19,6 +19,7 @@ COPY ./bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
|
||||||
COPY ./bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
COPY ./bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
|
||||||
COPY ./bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
COPY ./bin/frostfs-http-gw /usr/bin/frostfs-http-gw
|
||||||
COPY ./bin/issue-creds.sh /usr/bin/issue-creds.sh
|
COPY ./bin/issue-creds.sh /usr/bin/issue-creds.sh
|
||||||
|
COPY ./bin/frostfs-s3-lifecycler /usr/bin/frostfs-s3-lifecycler
|
||||||
|
|
||||||
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
|
||||||
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
|
||||||
|
@ -37,6 +38,7 @@ COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
|
||||||
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
|
||||||
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
|
||||||
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
|
||||||
|
COPY ./s3-lifecycler/s3-lc-config.yaml /config/s3-lc-config.yaml
|
||||||
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
|
||||||
COPY ./sn/wallet.json /config/wallet-sn.json
|
COPY ./sn/wallet.json /config/wallet-sn.json
|
||||||
COPY ./sn/config.yaml /config/config-sn.yaml
|
COPY ./sn/config.yaml /config/config-sn.yaml
|
||||||
|
|
3
Makefile
3
Makefile
|
@ -34,6 +34,7 @@ image-aio:
|
||||||
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
||||||
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
||||||
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
||||||
|
--build-arg FROSTFS_S3_LIFECYCLER_TAG=$(FROSTFS_S3_LIFECYCLER_TAG) \
|
||||||
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
||||||
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
||||||
|
|
||||||
|
@ -46,6 +47,7 @@ image-aio-local:
|
||||||
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
||||||
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
||||||
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
||||||
|
--build-arg FROSTFS_S3_LIFECYCLER_TAG=$(FROSTFS_S3_LIFECYCLER_TAG) \
|
||||||
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
||||||
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
||||||
|
|
||||||
|
@ -58,6 +60,7 @@ image-aio-custom:
|
||||||
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
|
||||||
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
|
||||||
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
|
||||||
|
--build-arg FROSTFS_S3_LIFECYCLER_TAG=$(FROSTFS_S3_LIFECYCLER_TAG) \
|
||||||
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
|
||||||
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ files for:
|
||||||
- frostfs-s3-gw
|
- frostfs-s3-gw
|
||||||
- frostfs-s3-authmate
|
- frostfs-s3-authmate
|
||||||
- frostfs-http-gw
|
- frostfs-http-gw
|
||||||
|
- frostfs-s3-lifecycler
|
||||||
|
|
||||||
Entrypoint script starts blockchain, inner ring, storage, s3, and http gateway
|
Entrypoint script starts blockchain, inner ring, storage, s3, and http gateway
|
||||||
services and configures it in the initial start.
|
services and configures it in the initial start.
|
||||||
|
@ -117,6 +118,7 @@ Put all the needed pre-built binaries to the `frostfs-aio/bin/`:
|
||||||
- frostfs-s3-gw
|
- frostfs-s3-gw
|
||||||
- frostfs-s3-authmate
|
- frostfs-s3-authmate
|
||||||
- frostfs-http-gw
|
- frostfs-http-gw
|
||||||
|
- frostfs-s3-lifecycler
|
||||||
|
|
||||||
Make sure they all have the `x` right for the execution enabled.
|
Make sure they all have the `x` right for the execution enabled.
|
||||||
Build frostfs-aio image using pre-built local binaries for all the services.
|
Build frostfs-aio image using pre-built local binaries for all the services.
|
||||||
|
|
|
@ -66,6 +66,7 @@ runServices() {
|
||||||
done
|
done
|
||||||
|
|
||||||
/usr/bin/frostfs-s3-gw --config /config/s3-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-gw &
|
/usr/bin/frostfs-s3-gw --config /config/s3-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-gw &
|
||||||
|
/usr/bin/frostfs-s3-lifecycler --config /config/s3-lc-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-lifecycler &
|
||||||
/usr/bin/frostfs-http-gw --config /config/http-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-http-gw &
|
/usr/bin/frostfs-http-gw --config /config/http-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-http-gw &
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
61
s3-lifecycler/s3-lc-config.yaml
Normal file
61
s3-lifecycler/s3-lc-config.yaml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# Wallet address, path to the wallet must be set as cli parameter or environment variable
|
||||||
|
wallet:
|
||||||
|
path: /wallets/wallet1.json # Path to wallet
|
||||||
|
address: NhCHDEtGgSph1v6PmjFC1gtzJWNKtNSadk # Account address. If omitted default one will be used.
|
||||||
|
passphrase: "" # Passphrase to decrypt wallet. If you're using a wallet without a password, place '' here.
|
||||||
|
|
||||||
|
logger:
|
||||||
|
level: debug # Log level.
|
||||||
|
destination: stdout # Logging destination.
|
||||||
|
sampling:
|
||||||
|
enabled: false
|
||||||
|
initial: 100
|
||||||
|
thereafter: 100
|
||||||
|
interval: 1s
|
||||||
|
|
||||||
|
morph:
|
||||||
|
rpc_endpoint:
|
||||||
|
- address: ws://localhost:30333/ws
|
||||||
|
priority: 1
|
||||||
|
reconnect_clients_interval: 30s
|
||||||
|
dial_timeout: 5s
|
||||||
|
contract:
|
||||||
|
netmap: netmap.frostfs
|
||||||
|
frostfsid: frostfsid.frostfs
|
||||||
|
container: container.frostfs
|
||||||
|
|
||||||
|
credential:
|
||||||
|
use: wallets
|
||||||
|
source:
|
||||||
|
wallets:
|
||||||
|
- path: /wallets/wallet1.json
|
||||||
|
address: NhCHDEtGgSph1v6PmjFC1gtzJWNKtNSadk
|
||||||
|
passphrase: ""
|
||||||
|
- path: /wallets/wallet2.json
|
||||||
|
address: NivQRezLwGP8xFPr87DD5XaYGUKK3BMsTa
|
||||||
|
passphrase: ""
|
||||||
|
- path: /wallets/wallet3.json
|
||||||
|
address: NR8qvrREk1eCeQJce9zBaDyPE3PHGZfT6t
|
||||||
|
passphrase: ""
|
||||||
|
- path: /config/user-wallet.json
|
||||||
|
address: NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw
|
||||||
|
passphrase: ""
|
||||||
|
|
||||||
|
|
||||||
|
lifecycle:
|
||||||
|
job_fetcher_buffer: 1000
|
||||||
|
executor_pool_size: 100
|
||||||
|
|
||||||
|
frostfs:
|
||||||
|
stream_timeout: 10s
|
||||||
|
connect_timeout: 10s
|
||||||
|
healthcheck_timeout: 15s
|
||||||
|
rebalance_interval: 60s
|
||||||
|
pool_error_threshold: 100
|
||||||
|
tree_pool_max_attempts: 4
|
||||||
|
|
||||||
|
peers:
|
||||||
|
0:
|
||||||
|
address: localhost:8080
|
||||||
|
priority: 1
|
||||||
|
weight: 1
|
Loading…
Reference in a new issue