redis to valkey
This commit is contained in:
parent
21c6a77de9
commit
81c1c2f118
@ -1,7 +1,7 @@
|
||||
TB_QUEUE_TYPE=kafka
|
||||
|
||||
# redis or redis-cluster or redis-sentinel
|
||||
CACHE=redis
|
||||
# valkey or valkey-cluster or valkey-sentinel
|
||||
CACHE=valkey
|
||||
|
||||
DOCKER_REPO=thingsboard
|
||||
|
||||
@ -17,7 +17,7 @@ TB_VC_EXECUTOR_DOCKER_NAME=tb-vc-executor
|
||||
EDQS_DOCKER_NAME=tb-edqs
|
||||
EDQS_ENABLED=false
|
||||
|
||||
TB_VERSION=latest
|
||||
TB_VERSION=4.0.0-RC
|
||||
|
||||
# Database used by ThingsBoard, can be either postgres (PostgreSQL) or hybrid (PostgreSQL for entities database and Cassandra for timeseries database).
|
||||
# According to the database type corresponding docker service will be deployed (see docker-compose.postgres.yml, docker-compose.hybrid.yml for details).
|
||||
|
||||
20
docker/.gitignore
vendored
20
docker/.gitignore
vendored
@ -6,15 +6,15 @@ tb-node/postgres/**
|
||||
tb-node/cassandra/**
|
||||
tb-transports/*/log
|
||||
tb-vc-executor/log/**
|
||||
tb-node/redis-cluster-data-0/**
|
||||
tb-node/redis-cluster-data-1/**
|
||||
tb-node/redis-cluster-data-2/**
|
||||
tb-node/redis-cluster-data-3/**
|
||||
tb-node/redis-cluster-data-4/**
|
||||
tb-node/redis-cluster-data-5/**
|
||||
tb-node/redis-sentinel-data-master/**
|
||||
tb-node/redis-sentinel-data-slave/**
|
||||
tb-node/redis-sentinel-data-sentinel/**
|
||||
tb-node/redis-data/**
|
||||
tb-node/valkey-cluster-data-0/**
|
||||
tb-node/valkey-cluster-data-1/**
|
||||
tb-node/valkey-cluster-data-2/**
|
||||
tb-node/valkey-cluster-data-3/**
|
||||
tb-node/valkey-cluster-data-4/**
|
||||
tb-node/valkey-cluster-data-5/**
|
||||
tb-node/valkey-sentinel-data-primary/**
|
||||
tb-node/valkey-sentinel-data-replica/**
|
||||
tb-node/valkey-sentinel-data-sentinel/**
|
||||
tb-node/valkey-data/**
|
||||
|
||||
!.env
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
CACHE_TYPE=redis
|
||||
REDIS_CONNECTION_TYPE=cluster
|
||||
REDIS_NODES=redis-node-0:6379,redis-node-1:6379,redis-node-2:6379,redis-node-3:6379,redis-node-4:6379,redis-node-5:6379
|
||||
REDIS_USE_DEFAULT_POOL_CONFIG=false
|
||||
REDIS_PASSWORD=thingsboard
|
||||
@ -1,2 +0,0 @@
|
||||
CACHE_TYPE=redis
|
||||
REDIS_HOST=redis
|
||||
5
docker/cache-valkey-cluster.env
Normal file
5
docker/cache-valkey-cluster.env
Normal file
@ -0,0 +1,5 @@
|
||||
CACHE_TYPE=redis
|
||||
REDIS_CONNECTION_TYPE=cluster
|
||||
REDIS_NODES=valkey-node-0:6379,valkey-node-1:6379,valkey-node-2:6379,valkey-node-3:6379,valkey-node-4:6379,valkey-node-5:6379
|
||||
REDIS_USE_DEFAULT_POOL_CONFIG=false
|
||||
REDIS_PASSWORD=thingsboard
|
||||
@ -1,7 +1,7 @@
|
||||
CACHE_TYPE=redis
|
||||
REDIS_CONNECTION_TYPE=sentinel
|
||||
REDIS_MASTER=mymaster
|
||||
REDIS_SENTINELS=redis-sentinel:26379
|
||||
REDIS_MASTER=myprimary
|
||||
REDIS_SENTINELS=valkey-sentinel:26379
|
||||
REDIS_SENTINEL_PASSWORD=sentinel
|
||||
REDIS_USE_DEFAULT_POOL_CONFIG=false
|
||||
REDIS_PASSWORD=thingsboard
|
||||
2
docker/cache-valkey.env
Normal file
2
docker/cache-valkey.env
Normal file
@ -0,0 +1,2 @@
|
||||
CACHE_TYPE=redis
|
||||
REDIS_HOST=valkey
|
||||
@ -76,19 +76,19 @@ function additionalComposeMonitoringArgs() {
|
||||
function additionalComposeCacheArgs() {
|
||||
source .env
|
||||
CACHE_COMPOSE_ARGS=""
|
||||
CACHE="${CACHE:-redis}"
|
||||
CACHE="${CACHE:-valkey}"
|
||||
case $CACHE in
|
||||
redis)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.redis.yml"
|
||||
valkey)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.valkey.yml"
|
||||
;;
|
||||
redis-cluster)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.redis-cluster.yml"
|
||||
valkey-cluster)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.valkey-cluster.yml"
|
||||
;;
|
||||
redis-sentinel)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.redis-sentinel.yml"
|
||||
valkey-sentinel)
|
||||
CACHE_COMPOSE_ARGS="-f docker-compose.valkey-sentinel.yml"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'redis' or 'redis-cluster' or 'redis-sentinel'." >&2
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'valkey' or 'valkey-cluster' or 'valkey-sentinel'." >&2
|
||||
exit 1
|
||||
esac
|
||||
echo $CACHE_COMPOSE_ARGS
|
||||
@ -109,19 +109,19 @@ function additionalStartupServices() {
|
||||
exit 1
|
||||
esac
|
||||
|
||||
CACHE="${CACHE:-redis}"
|
||||
CACHE="${CACHE:-valkey}"
|
||||
case $CACHE in
|
||||
redis)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES redis"
|
||||
valkey)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES valkey"
|
||||
;;
|
||||
redis-cluster)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5"
|
||||
valkey-cluster)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5"
|
||||
;;
|
||||
redis-sentinel)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES redis-master redis-slave redis-sentinel"
|
||||
valkey-sentinel)
|
||||
ADDITIONAL_STARTUP_SERVICES="$ADDITIONAL_STARTUP_SERVICES valkey-primary valkey-replica valkey-sentinel"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'redis' or 'redis-cluster' or 'redis-sentinel'." >&2
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'valkey' or 'valkey-cluster' or 'valkey-sentinel'." >&2
|
||||
exit 1
|
||||
esac
|
||||
|
||||
@ -166,32 +166,32 @@ function permissionList() {
|
||||
"
|
||||
fi
|
||||
|
||||
CACHE="${CACHE:-redis}"
|
||||
CACHE="${CACHE:-valkey}"
|
||||
case $CACHE in
|
||||
redis)
|
||||
valkey)
|
||||
PERMISSION_LIST="$PERMISSION_LIST
|
||||
1001 1001 tb-node/redis-data
|
||||
1001 1001 tb-node/valkey-data
|
||||
"
|
||||
;;
|
||||
redis-cluster)
|
||||
valkey-cluster)
|
||||
PERMISSION_LIST="$PERMISSION_LIST
|
||||
1001 1001 tb-node/redis-cluster-data-0
|
||||
1001 1001 tb-node/redis-cluster-data-1
|
||||
1001 1001 tb-node/redis-cluster-data-2
|
||||
1001 1001 tb-node/redis-cluster-data-3
|
||||
1001 1001 tb-node/redis-cluster-data-4
|
||||
1001 1001 tb-node/redis-cluster-data-5
|
||||
1001 1001 tb-node/valkey-cluster-data-0
|
||||
1001 1001 tb-node/valkey-cluster-data-1
|
||||
1001 1001 tb-node/valkey-cluster-data-2
|
||||
1001 1001 tb-node/valkey-cluster-data-3
|
||||
1001 1001 tb-node/valkey-cluster-data-4
|
||||
1001 1001 tb-node/valkey-cluster-data-5
|
||||
"
|
||||
;;
|
||||
redis-sentinel)
|
||||
valkey-sentinel)
|
||||
PERMISSION_LIST="$PERMISSION_LIST
|
||||
1001 1001 tb-node/redis-sentinel-data-master
|
||||
1001 1001 tb-node/redis-sentinel-data-slave
|
||||
1001 1001 tb-node/redis-sentinel-data-sentinel
|
||||
1001 1001 tb-node/valkey-sentinel-data-primary
|
||||
1001 1001 tb-node/valkey-sentinel-data-replica
|
||||
1001 1001 tb-node/valkey-sentinel-data-sentinel
|
||||
"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'redis' or 'redis-cluster' or 'redis-sentinel'." >&2
|
||||
echo "Unknown CACHE value specified in the .env file: '${CACHE}'. Should be either 'valkey' or 'valkey-cluster' or 'valkey-sentinel'." >&2
|
||||
exit 1
|
||||
esac
|
||||
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Redis cluster
|
||||
redis-node-0:
|
||||
volumes:
|
||||
- redis-cluster-data-0:/bitnami/redis/data
|
||||
redis-node-1:
|
||||
volumes:
|
||||
- redis-cluster-data-1:/bitnami/redis/data
|
||||
redis-node-2:
|
||||
volumes:
|
||||
- redis-cluster-data-2:/bitnami/redis/data
|
||||
redis-node-3:
|
||||
volumes:
|
||||
- redis-cluster-data-3:/bitnami/redis/data
|
||||
redis-node-4:
|
||||
volumes:
|
||||
- redis-cluster-data-4:/bitnami/redis/data
|
||||
redis-node-5:
|
||||
volumes:
|
||||
- redis-cluster-data-5:/bitnami/redis/data
|
||||
|
||||
volumes:
|
||||
redis-cluster-data-0:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_0}
|
||||
redis-cluster-data-1:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_1}
|
||||
redis-cluster-data-2:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_2}
|
||||
redis-cluster-data-3:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_3}
|
||||
redis-cluster-data-4:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_4}
|
||||
redis-cluster-data-5:
|
||||
external:
|
||||
name: ${REDIS_CLUSTER_DATA_VOLUME_5}
|
||||
@ -1,151 +0,0 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Redis cluster
|
||||
# The latest version of Redis compatible with ThingsBoard is 7.2
|
||||
redis-node-0:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-0:/bitnami/redis/data
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
|
||||
redis-node-1:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-1:/bitnami/redis/data
|
||||
depends_on:
|
||||
- redis-node-0
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
|
||||
redis-node-2:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-2:/bitnami/redis/data
|
||||
depends_on:
|
||||
- redis-node-1
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
|
||||
redis-node-3:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-3:/bitnami/redis/data
|
||||
depends_on:
|
||||
- redis-node-2
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
|
||||
redis-node-4:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-4:/bitnami/redis/data
|
||||
depends_on:
|
||||
- redis-node-3
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
|
||||
redis-node-5:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/redis-cluster-data-5:/bitnami/redis/data
|
||||
depends_on:
|
||||
- redis-node-0
|
||||
- redis-node-1
|
||||
- redis-node-2
|
||||
- redis-node-3
|
||||
- redis-node-4
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
|
||||
- 'VALKEY_CLUSTER_REPLICAS=1'
|
||||
- 'VALKEY_CLUSTER_CREATOR=yes'
|
||||
|
||||
# ThingsBoard setup to use redis-cluster
|
||||
tb-core1:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-core2:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-rule-engine1:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-rule-engine2:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-mqtt-transport1:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-mqtt-transport2:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-http-transport1:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-http-transport2:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-coap-transport:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-lwm2m-transport:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-snmp-transport:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-vc-executor1:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
tb-vc-executor2:
|
||||
env_file:
|
||||
- cache-redis-cluster.env
|
||||
depends_on:
|
||||
- redis-node-5
|
||||
@ -1,120 +0,0 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Redis sentinel
|
||||
# The latest version of Redis compatible with ThingsBoard is 7.2
|
||||
redis-master:
|
||||
image: 'bitnami/redis:7.2'
|
||||
volumes:
|
||||
- ./tb-node/redis-sentinel-data-master:/bitnami/redis/data
|
||||
environment:
|
||||
- 'REDIS_REPLICATION_MODE=master'
|
||||
- 'REDIS_PASSWORD=thingsboard'
|
||||
|
||||
redis-slave:
|
||||
image: 'bitnami/redis:7.2'
|
||||
volumes:
|
||||
- ./tb-node/redis-sentinel-data-slave:/bitnami/redis/data
|
||||
environment:
|
||||
- 'REDIS_REPLICATION_MODE=slave'
|
||||
- 'REDIS_MASTER_HOST=redis-master'
|
||||
- 'REDIS_MASTER_PASSWORD=thingsboard'
|
||||
- 'REDIS_PASSWORD=thingsboard'
|
||||
depends_on:
|
||||
- redis-master
|
||||
|
||||
redis-sentinel:
|
||||
image: 'bitnami/redis-sentinel:7.2'
|
||||
volumes:
|
||||
- ./tb-node/redis-sentinel-data-sentinel:/bitnami/redis/data
|
||||
environment:
|
||||
- 'REDIS_MASTER_HOST=redis-master'
|
||||
- 'REDIS_MASTER_SET=mymaster'
|
||||
- 'REDIS_SENTINEL_PASSWORD=sentinel'
|
||||
- 'REDIS_MASTER_PASSWORD=thingsboard'
|
||||
depends_on:
|
||||
- redis-master
|
||||
- redis-slave
|
||||
|
||||
# ThingsBoard setup to use redis-sentinel
|
||||
tb-core1:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-core2:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-rule-engine1:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-rule-engine2:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-mqtt-transport1:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-mqtt-transport2:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-http-transport1:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-http-transport2:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-coap-transport:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-lwm2m-transport:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-snmp-transport:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-vc-executor1:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
tb-vc-executor2:
|
||||
env_file:
|
||||
- cache-redis-sentinel.env
|
||||
depends_on:
|
||||
- redis-sentinel
|
||||
58
docker/docker-compose.valkey-cluster.volumes.yml
Normal file
58
docker/docker-compose.valkey-cluster.volumes.yml
Normal file
@ -0,0 +1,58 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Valkey cluster
|
||||
valkey-node-0:
|
||||
volumes:
|
||||
- valkey-cluster-data-0:/bitnami/valkey/data
|
||||
valkey-node-1:
|
||||
volumes:
|
||||
- valkey-cluster-data-1:/bitnami/valkey/data
|
||||
valkey-node-2:
|
||||
volumes:
|
||||
- valkey-cluster-data-2:/bitnami/valkey/data
|
||||
valkey-node-3:
|
||||
volumes:
|
||||
- valkey-cluster-data-3:/bitnami/valkey/data
|
||||
valkey-node-4:
|
||||
volumes:
|
||||
- valkey-cluster-data-4:/bitnami/valkey/data
|
||||
valkey-node-5:
|
||||
volumes:
|
||||
- valkey-cluster-data-5:/bitnami/valkey/data
|
||||
|
||||
volumes:
|
||||
valkey-cluster-data-0:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_0}
|
||||
valkey-cluster-data-1:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_1}
|
||||
valkey-cluster-data-2:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_2}
|
||||
valkey-cluster-data-3:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_3}
|
||||
valkey-cluster-data-4:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_4}
|
||||
valkey-cluster-data-5:
|
||||
external:
|
||||
name: ${VALKEY_CLUSTER_DATA_VOLUME_5}
|
||||
152
docker/docker-compose.valkey-cluster.yml
Normal file
152
docker/docker-compose.valkey-cluster.yml
Normal file
@ -0,0 +1,152 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Valkey cluster
|
||||
# The latest version of Valkey compatible with ThingsBoard is 8.0
|
||||
valkey-node-0:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-0:/bitnami/valkey/data
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
|
||||
valkey-node-1:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-1:/bitnami/valkey/data
|
||||
depends_on:
|
||||
- valkey-node-0
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
|
||||
valkey-node-2:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-2:/bitnami/valkey/data
|
||||
depends_on:
|
||||
- valkey-node-1
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
|
||||
valkey-node-3:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-3:/bitnami/valkey/data
|
||||
depends_on:
|
||||
- valkey-node-2
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
|
||||
valkey-node-4:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-4:/bitnami/valkey/data
|
||||
depends_on:
|
||||
- valkey-node-3
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
|
||||
valkey-node-5:
|
||||
image: bitnami/valkey-cluster:8.0
|
||||
volumes:
|
||||
- ./tb-node/valkey-cluster-data-5:/bitnami/valkey/data
|
||||
depends_on:
|
||||
- valkey-node-0
|
||||
- valkey-node-1
|
||||
- valkey-node-2
|
||||
- valkey-node-3
|
||||
- valkey-node-4
|
||||
environment:
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
- 'REDISCLI_AUTH=thingsboard'
|
||||
- 'VALKEY_NODES=valkey-node-0 valkey-node-1 valkey-node-2 valkey-node-3 valkey-node-4 valkey-node-5'
|
||||
- 'VALKEY_CLUSTER_REPLICAS=1'
|
||||
- 'VALKEY_CLUSTER_CREATOR=yes'
|
||||
|
||||
# ThingsBoard setup to use valkey-cluster
|
||||
tb-core1:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-core2:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-rule-engine1:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-rule-engine2:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-mqtt-transport1:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-mqtt-transport2:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-http-transport1:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-http-transport2:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-coap-transport:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-lwm2m-transport:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-snmp-transport:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-vc-executor1:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
tb-vc-executor2:
|
||||
env_file:
|
||||
- cache-valkey-cluster.env
|
||||
depends_on:
|
||||
- valkey-node-5
|
||||
@ -17,24 +17,24 @@
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Redis sentinel
|
||||
redis-master:
|
||||
# Valkey sentinel
|
||||
valkey-primary:
|
||||
volumes:
|
||||
- redis-sentinel-data-master:/bitnami/redis/data
|
||||
redis-slave:
|
||||
- valkey-sentinel-data-primary:/bitnami/valkey/data
|
||||
valkey-replica:
|
||||
volumes:
|
||||
- redis-sentinel-data-slave:/bitnami/redis/data
|
||||
redis-sentinel:
|
||||
- valkey-sentinel-data-replica:/bitnami/valkey/data
|
||||
valkey-sentinel:
|
||||
volumes:
|
||||
- redis-sentinel-data-sentinel:/bitnami/redis/data
|
||||
- valkey-sentinel-data-sentinel:/bitnami/valkey/data
|
||||
|
||||
volumes:
|
||||
redis-sentinel-data-master:
|
||||
valkey-sentinel-data-primary:
|
||||
external:
|
||||
name: ${REDIS_SENTINEL_DATA_VOLUME_MASTER}
|
||||
redis-sentinel-data-slave:
|
||||
name: ${VALKEY_SENTINEL_DATA_VOLUME_MASTER}
|
||||
valkey-sentinel-data-replica:
|
||||
external:
|
||||
name: ${REDIS_SENTINEL_DATA_VOLUME_SLAVE}
|
||||
redis-sentinel-data-sentinel:
|
||||
name: ${VALKEY_SENTINEL_DATA_VOLUME_SLAVE}
|
||||
valkey-sentinel-data-sentinel:
|
||||
external:
|
||||
name: ${REDIS_SENTINEL_DATA_VOLUME_SENTINEL}
|
||||
name: ${VALKEY_SENTINEL_DATA_VOLUME_SENTINEL}
|
||||
120
docker/docker-compose.valkey-sentinel.yml
Normal file
120
docker/docker-compose.valkey-sentinel.yml
Normal file
@ -0,0 +1,120 @@
|
||||
#
|
||||
# Copyright © 2016-2025 The Thingsboard Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Valkey sentinel
|
||||
# The latest version of Valkey compatible with ThingsBoard is 8.0
|
||||
valkey-primary:
|
||||
image: 'bitnami/valkey:8.0'
|
||||
volumes:
|
||||
- ./tb-node/valkey-sentinel-data-primary:/bitnami/valkey/data
|
||||
environment:
|
||||
- 'VALKEY_REPLICATION_MODE=primary'
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
|
||||
valkey-replica:
|
||||
image: 'bitnami/valkey:8.0'
|
||||
volumes:
|
||||
- ./tb-node/valkey-sentinel-data-replica:/bitnami/valkey/data
|
||||
environment:
|
||||
- 'VALKEY_REPLICATION_MODE=replica'
|
||||
- 'VALKEY_PRIMARY_HOST=valkey-primary'
|
||||
- 'VALKEY_PRIMARY_PASSWORD=thingsboard'
|
||||
- 'VALKEY_PASSWORD=thingsboard'
|
||||
depends_on:
|
||||
- valkey-primary
|
||||
|
||||
valkey-sentinel:
|
||||
image: 'bitnami/valkey-sentinel:8.0'
|
||||
volumes:
|
||||
- ./tb-node/valkey-sentinel-data-sentinel:/bitnami/valkey/data
|
||||
environment:
|
||||
- 'VALKEY_PRIMARY_HOST=valkey-primary'
|
||||
- 'VALKEY_MASTER_SET=myprimary'
|
||||
- 'VALKEY_SENTINEL_PASSWORD=sentinel'
|
||||
- 'VALKEY_PRIMARY_PASSWORD=thingsboard'
|
||||
depends_on:
|
||||
- valkey-primary
|
||||
- valkey-replica
|
||||
|
||||
# ThingsBoard setup to use valkey-sentinel
|
||||
tb-core1:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-core2:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-rule-engine1:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-rule-engine2:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-mqtt-transport1:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-mqtt-transport2:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-http-transport1:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-http-transport2:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-coap-transport:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-lwm2m-transport:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-snmp-transport:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-vc-executor1:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
tb-vc-executor2:
|
||||
env_file:
|
||||
- cache-valkey-sentinel.env
|
||||
depends_on:
|
||||
- valkey-sentinel
|
||||
@ -17,11 +17,11 @@
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
redis:
|
||||
valkey:
|
||||
volumes:
|
||||
- redis-data:/bitnami/redis/data
|
||||
- valkey-data:/bitnami/valkey/data
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
valkey-data:
|
||||
external:
|
||||
name: ${REDIS_DATA_VOLUME}
|
||||
name: ${VALKEY_DATA_VOLUME}
|
||||
@ -17,9 +17,9 @@
|
||||
version: '3.0'
|
||||
|
||||
services:
|
||||
# Redis standalone
|
||||
# The latest version of Redis compatible with ThingsBoard is 7.2
|
||||
redis:
|
||||
# Valkey standalone
|
||||
# The latest version of Valkey compatible with ThingsBoard is 8.0
|
||||
valkey:
|
||||
restart: always
|
||||
image: bitnami/valkey:8.0
|
||||
environment:
|
||||
@ -28,71 +28,71 @@ services:
|
||||
ports:
|
||||
- '6379:6379'
|
||||
volumes:
|
||||
- ./tb-node/redis-data:/bitnami/redis/data
|
||||
- ./tb-node/valkey-data:/bitnami/valkey/data
|
||||
|
||||
# ThingsBoard setup to use redis-standalone
|
||||
# ThingsBoard setup to use valkey-standalone
|
||||
tb-core1:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-core2:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-rule-engine1:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-rule-engine2:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-mqtt-transport1:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-mqtt-transport2:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-http-transport1:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-http-transport2:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-coap-transport:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-lwm2m-transport:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-snmp-transport:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-vc-executor1:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
tb-vc-executor2:
|
||||
env_file:
|
||||
- cache-redis.env
|
||||
- cache-valkey.env
|
||||
depends_on:
|
||||
- redis
|
||||
- valkey
|
||||
Loading…
x
Reference in New Issue
Block a user