From a49f8a6d67016fcbffb0a67f4f8794a9a399e1ac Mon Sep 17 00:00:00 2001 From: dshvaika Date: Tue, 27 May 2025 16:34:38 +0300 Subject: [PATCH 1/2] renamed env variables and docker related items from redis to valkey --- docker/README.md | 8 +- ...docker-compose.valkey-sentinel.volumes.yml | 4 +- msa/black-box-tests/README.md | 8 +- .../server/msa/ContainerTestSuite.java | 54 ++++----- .../server/msa/ThingsBoardDbInstaller.java | 110 +++++++++--------- ... => docker-compose.valkey-ssl.volumes.yml} | 8 +- ...-ssl.yml => docker-compose.valkey-ssl.yml} | 96 +++++++-------- .../redis.crt => valkey-certs/valkey.crt} | 0 .../redis.key => valkey-certs/valkey.key} | 0 .../redisCA.crt => valkey-certs/valkeyCA.crt} | 0 10 files changed, 144 insertions(+), 144 deletions(-) rename msa/black-box-tests/src/test/resources/{docker-compose.redis-ssl.volumes.yml => docker-compose.valkey-ssl.volumes.yml} (86%) rename msa/black-box-tests/src/test/resources/{docker-compose.redis-ssl.yml => docker-compose.valkey-ssl.yml} (55%) rename msa/black-box-tests/src/test/resources/{redis-certs/redis.crt => valkey-certs/valkey.crt} (100%) rename msa/black-box-tests/src/test/resources/{redis-certs/redis.key => valkey-certs/valkey.key} (100%) rename msa/black-box-tests/src/test/resources/{redis-certs/redisCA.crt => valkey-certs/valkeyCA.crt} (100%) diff --git a/docker/README.md b/docker/README.md index 1a852c80eb..ee8a932857 100644 --- a/docker/README.md +++ b/docker/README.md @@ -19,11 +19,11 @@ In order to set database type change the value of `DATABASE` variable in `.env` In order to set cache type change the value of `CACHE` variable in `.env` file to one of the following: -- `redis` - use Redis standalone cache (1 node - 1 master); -- `redis-cluster` - use Redis cluster cache (6 nodes - 3 masters, 3 slaves); -- `redis-sentinel` - use Redis sentinel cache (3 nodes - 1 master, 1 slave, 1 sentinel) +- `valkey` - use Valkey standalone cache (1 node - 1 primary); +- `valkey-cluster` - use Valkey cluster cache (6 nodes - 3 primaries, 3 replicas); +- `valkey-sentinel` - use Valkey sentinel cache (3 nodes - 1 primary, 1 replica, 1 sentinel) -**NOTE**: According to the cache type corresponding docker service will be deployed (see `docker-compose.redis.yml`, `docker-compose.redis-cluster.yml`, `docker-compose.redis-sentinel.yml` for details). +**NOTE**: According to the cache type corresponding docker service will be deployed (see `docker-compose.valkey.yml`, `docker-compose.valkey-cluster.yml`, `docker-compose.valkey-sentinel.yml` for details). Execute the following command to create log folders for the services and chown of these folders to the docker container users. To be able to change user, **chown** command is used, which requires sudo permissions (script will request password for a sudo access): diff --git a/docker/docker-compose.valkey-sentinel.volumes.yml b/docker/docker-compose.valkey-sentinel.volumes.yml index 1f29d9edaa..0f53ee005d 100644 --- a/docker/docker-compose.valkey-sentinel.volumes.yml +++ b/docker/docker-compose.valkey-sentinel.volumes.yml @@ -31,10 +31,10 @@ services: volumes: valkey-sentinel-data-primary: external: - name: ${VALKEY_SENTINEL_DATA_VOLUME_MASTER} + name: ${VALKEY_SENTINEL_DATA_VOLUME_PRIMARY} valkey-sentinel-data-replica: external: - name: ${VALKEY_SENTINEL_DATA_VOLUME_SLAVE} + name: ${VALKEY_SENTINEL_DATA_VOLUME_REPLICA} valkey-sentinel-data-sentinel: external: name: ${VALKEY_SENTINEL_DATA_VOLUME_SENTINEL} diff --git a/msa/black-box-tests/README.md b/msa/black-box-tests/README.md index 31277e2a55..f777ce7cdf 100644 --- a/msa/black-box-tests/README.md +++ b/msa/black-box-tests/README.md @@ -18,19 +18,19 @@ As result, in REPOSITORY column, next images should be present: thingsboard/tb-web-ui thingsboard/tb-js-executor -- Run the black box tests (without ui tests) in the [msa/black-box-tests](../black-box-tests) directory with Redis standalone: +- Run the black box tests (without ui tests) in the [msa/black-box-tests](../black-box-tests) directory with Valkey standalone: mvn clean install -DblackBoxTests.skip=false -- Run the black box tests (without ui tests) in the [msa/black-box-tests](../black-box-tests) directory with Redis standalone with TLS: +- Run the black box tests (without ui tests) in the [msa/black-box-tests](../black-box-tests) directory with Valkey standalone with TLS: mvn clean install -DblackBoxTests.skip=false -DblackBoxTests.redisSsl=true -- Run the black box tests in the [msa/black-box-tests](../black-box-tests) directory with Redis cluster: +- Run the black box tests in the [msa/black-box-tests](../black-box-tests) directory with the Valkey cluster: mvn clean install -DblackBoxTests.skip=false -DblackBoxTests.redisCluster=true -- Run the black box tests in the [msa/black-box-tests](../black-box-tests) directory with Redis sentinel: +- Run the black box tests in the [msa/black-box-tests](../black-box-tests) directory with Valkey sentinel: mvn clean install -DblackBoxTests.skip=false -DblackBoxTests.redisSentinel=true diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ContainerTestSuite.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ContainerTestSuite.java index 65def6a964..4bc3223754 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ContainerTestSuite.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ContainerTestSuite.java @@ -42,9 +42,9 @@ import static org.testng.Assert.fail; @Slf4j public class ContainerTestSuite { - final static boolean IS_REDIS_CLUSTER = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisCluster")); - final static boolean IS_REDIS_SENTINEL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSentinel")); - final static boolean IS_REDIS_SSL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSsl")); + final static boolean IS_VALKEY_CLUSTER = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisCluster")); + final static boolean IS_VALKEY_SENTINEL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSentinel")); + final static boolean IS_VALKEY_SSL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSsl")); final static boolean IS_HYBRID_MODE = Boolean.parseBoolean(System.getProperty("blackBoxTests.hybridMode")); final static String QUEUE_TYPE = System.getProperty("blackBoxTests.queue", "kafka"); private static final String SOURCE_DIR = "./../../docker/"; @@ -82,9 +82,9 @@ public class ContainerTestSuite { public void start() { installTb = new ThingsBoardDbInstaller(); installTb.createVolumes(); - log.info("System property of blackBoxTests.redisCluster is {}", IS_REDIS_CLUSTER); - log.info("System property of blackBoxTests.redisSentinel is {}", IS_REDIS_SENTINEL); - log.info("System property of blackBoxTests.redisSsl is {}", IS_REDIS_SSL); + log.info("System property of blackBoxTests.redisCluster is {}", IS_VALKEY_CLUSTER); + log.info("System property of blackBoxTests.redisSentinel is {}", IS_VALKEY_SENTINEL); + log.info("System property of blackBoxTests.redisSsl is {}", IS_VALKEY_SSL); log.info("System property of blackBoxTests.hybridMode is {}", IS_HYBRID_MODE); boolean skipTailChildContainers = Boolean.parseBoolean(System.getProperty("blackBoxTests.skipTailChildContainers")); try { @@ -107,10 +107,10 @@ public class ContainerTestSuite { } } - if (IS_REDIS_SSL) { - addToFile(targetDir, "cache-redis.env", + if (IS_VALKEY_SSL) { + addToFile(targetDir, "cache-valkey.env", Map.of("TB_REDIS_SSL_ENABLED", "true", - "TB_REDIS_SSL_PEM_CERT", "/redis/certs/redisCA.crt")); + "TB_REDIS_SSL_PEM_CERT", "/valkey/certs/valkeyCA.crt")); } List composeFiles = new ArrayList<>(Arrays.asList( @@ -123,8 +123,8 @@ public class ContainerTestSuite { new File(targetDir + (IS_HYBRID_MODE ? "docker-compose.hybrid-test-extras.yml" : "docker-compose.postgres-test-extras.yml")), new File(targetDir + "docker-compose.postgres.volumes.yml"), new File(targetDir + "docker-compose." + QUEUE_TYPE + ".yml"), - new File(targetDir + resolveRedisComposeFile()), - new File(targetDir + resolveRedisComposeVolumesFile()), + new File(targetDir + resolveValkeyComposeFile()), + new File(targetDir + resolveValkeyComposeVolumesFile()), new File(targetDir + ("docker-selenium.yml")) )); @@ -198,30 +198,30 @@ public class ContainerTestSuite { } } - private static String resolveRedisComposeFile() { - if (IS_REDIS_CLUSTER) { - return "docker-compose.redis-cluster.yml"; + private static String resolveValkeyComposeFile() { + if (IS_VALKEY_CLUSTER) { + return "docker-compose.valkey-cluster.yml"; } - if (IS_REDIS_SENTINEL) { - return "docker-compose.redis-sentinel.yml"; + if (IS_VALKEY_SENTINEL) { + return "docker-compose.valkey-sentinel.yml"; } - if (IS_REDIS_SSL) { - return "docker-compose.redis-ssl.yml"; + if (IS_VALKEY_SSL) { + return "docker-compose.valkey-ssl.yml"; } - return "docker-compose.redis.yml"; + return "docker-compose.valkey.yml"; } - private static String resolveRedisComposeVolumesFile() { - if (IS_REDIS_CLUSTER) { - return "docker-compose.redis-cluster.volumes.yml"; + private static String resolveValkeyComposeVolumesFile() { + if (IS_VALKEY_CLUSTER) { + return "docker-compose.valkey-cluster.volumes.yml"; } - if (IS_REDIS_SENTINEL) { - return "docker-compose.redis-sentinel.volumes.yml"; + if (IS_VALKEY_SENTINEL) { + return "docker-compose.valkey-sentinel.volumes.yml"; } - if (IS_REDIS_SSL) { - return "docker-compose.redis-ssl.volumes.yml"; + if (IS_VALKEY_SSL) { + return "docker-compose.valkey-ssl.volumes.yml"; } - return "docker-compose.redis.volumes.yml"; + return "docker-compose.valkey.volumes.yml"; } public void stop() { diff --git a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java index 9c1a90a4f1..3c57e08487 100644 --- a/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java +++ b/msa/black-box-tests/src/test/java/org/thingsboard/server/msa/ThingsBoardDbInstaller.java @@ -32,15 +32,15 @@ import java.util.stream.IntStream; @Slf4j public class ThingsBoardDbInstaller { - final static boolean IS_REDIS_CLUSTER = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisCluster")); - final static boolean IS_REDIS_SENTINEL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSentinel")); + final static boolean IS_VALKEY_CLUSTER = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisCluster")); + final static boolean IS_VALKEY_SENTINEL = Boolean.parseBoolean(System.getProperty("blackBoxTests.redisSentinel")); final static boolean IS_HYBRID_MODE = Boolean.parseBoolean(System.getProperty("blackBoxTests.hybridMode")); private final static String POSTGRES_DATA_VOLUME = "tb-postgres-test-data-volume"; private final static String CASSANDRA_DATA_VOLUME = "tb-cassandra-test-data-volume"; - private final static String REDIS_DATA_VOLUME = "tb-redis-data-volume"; - private final static String REDIS_CLUSTER_DATA_VOLUME = "tb-redis-cluster-data-volume"; - private final static String REDIS_SENTINEL_DATA_VOLUME = "tb-redis-sentinel-data-volume"; + private final static String VALKEY_DATA_VOLUME = "tb-valkey-data-volume"; + private final static String VALKEY_CLUSTER_DATA_VOLUME = "tb-valkey-cluster-data-volume"; + private final static String VALKEY_SENTINEL_DATA_VOLUME = "tb-valkey-sentinel-data-volume"; private final static String TB_LOG_VOLUME = "tb-log-test-volume"; private final static String TB_COAP_TRANSPORT_LOG_VOLUME = "tb-coap-transport-log-test-volume"; private final static String TB_LWM2M_TRANSPORT_LOG_VOLUME = "tb-lwm2m-transport-log-test-volume"; @@ -56,9 +56,9 @@ public class ThingsBoardDbInstaller { private final String postgresDataVolume; private final String cassandraDataVolume; - private final String redisDataVolume; - private final String redisClusterDataVolume; - private final String redisSentinelDataVolume; + private final String valkeyDataVolume; + private final String valkeyClusterDataVolume; + private final String valkeySentinelDataVolume; private final String tbLogVolume; private final String tbCoapTransportLogVolume; private final String tbLwm2mTransportLogVolume; @@ -70,8 +70,8 @@ public class ThingsBoardDbInstaller { private final Map env; public ThingsBoardDbInstaller() { - log.info("System property of blackBoxTests.redisCluster is {}", IS_REDIS_CLUSTER); - log.info("System property of blackBoxTests.redisCluster is {}", IS_REDIS_SENTINEL); + log.info("System property of blackBoxTests.redisCluster is {}", IS_VALKEY_CLUSTER); + log.info("System property of blackBoxTests.redisCluster is {}", IS_VALKEY_SENTINEL); log.info("System property of blackBoxTests.hybridMode is {}", IS_HYBRID_MODE); List composeFiles = new ArrayList<>(Arrays.asList( new File("./../../docker/docker-compose.yml"), @@ -80,8 +80,8 @@ public class ThingsBoardDbInstaller { ? new File("./../../docker/docker-compose.hybrid.yml") : new File("./../../docker/docker-compose.postgres.yml"), new File("./../../docker/docker-compose.postgres.volumes.yml"), - resolveRedisComposeFile(), - resolveRedisComposeVolumesFile() + resolveValkeyComposeFile(), + resolveValkeyComposeVolumesFile() )); if (IS_HYBRID_MODE) { composeFiles.add(new File("./../../docker/docker-compose.cassandra.volumes.yml")); @@ -95,9 +95,9 @@ public class ThingsBoardDbInstaller { postgresDataVolume = project + "_" + POSTGRES_DATA_VOLUME; cassandraDataVolume = project + "_" + CASSANDRA_DATA_VOLUME; - redisDataVolume = project + "_" + REDIS_DATA_VOLUME; - redisClusterDataVolume = project + "_" + REDIS_CLUSTER_DATA_VOLUME; - redisSentinelDataVolume = project + "_" + REDIS_SENTINEL_DATA_VOLUME; + valkeyDataVolume = project + "_" + VALKEY_DATA_VOLUME; + valkeyClusterDataVolume = project + "_" + VALKEY_CLUSTER_DATA_VOLUME; + valkeySentinelDataVolume = project + "_" + VALKEY_SENTINEL_DATA_VOLUME; tbLogVolume = project + "_" + TB_LOG_VOLUME; tbCoapTransportLogVolume = project + "_" + TB_COAP_TRANSPORT_LOG_VOLUME; tbLwm2mTransportLogVolume = project + "_" + TB_LWM2M_TRANSPORT_LOG_VOLUME; @@ -123,38 +123,38 @@ public class ThingsBoardDbInstaller { env.put("TB_SNMP_TRANSPORT_LOG_VOLUME", tbSnmpTransportLogVolume); env.put("TB_VC_EXECUTOR_LOG_VOLUME", tbVcExecutorLogVolume); env.put("TB_EDQS_LOG_VOLUME", tbEdqsLogVolume); - if (IS_REDIS_CLUSTER) { + if (IS_VALKEY_CLUSTER) { for (int i = 0; i < 6; i++) { - env.put("REDIS_CLUSTER_DATA_VOLUME_" + i, redisClusterDataVolume + '-' + i); + env.put("VALKEY_CLUSTER_DATA_VOLUME_" + i, valkeyClusterDataVolume + '-' + i); } - } else if (IS_REDIS_SENTINEL) { - env.put("REDIS_SENTINEL_DATA_VOLUME_MASTER", redisSentinelDataVolume + "-" + "master"); - env.put("REDIS_SENTINEL_DATA_VOLUME_SLAVE", redisSentinelDataVolume + "-" + "slave"); - env.put("REDIS_SENTINEL_DATA_VOLUME_SENTINEL", redisSentinelDataVolume + "-" + "sentinel"); + } else if (IS_VALKEY_SENTINEL) { + env.put("VALKEY_SENTINEL_DATA_VOLUME_PRIMARY", valkeySentinelDataVolume + "-" + "primary"); + env.put("VALKEY_SENTINEL_DATA_VOLUME_REPLICA", valkeySentinelDataVolume + "-" + "replica"); + env.put("VALKEY_SENTINEL_DATA_VOLUME_SENTINEL", valkeySentinelDataVolume + "-" + "sentinel"); } else { - env.put("REDIS_DATA_VOLUME", redisDataVolume); + env.put("VALKEY_DATA_VOLUME", valkeyDataVolume); } dockerCompose.withEnv(env); } - private static File resolveRedisComposeVolumesFile() { - if (IS_REDIS_CLUSTER) { - return new File("./../../docker/docker-compose.redis-cluster.volumes.yml"); + private static File resolveValkeyComposeVolumesFile() { + if (IS_VALKEY_CLUSTER) { + return new File("./../../docker/docker-compose.valkey-cluster.volumes.yml"); } - if (IS_REDIS_SENTINEL) { - return new File("./../../docker/docker-compose.redis-sentinel.volumes.yml"); + if (IS_VALKEY_SENTINEL) { + return new File("./../../docker/docker-compose.valkey-sentinel.volumes.yml"); } - return new File("./../../docker/docker-compose.redis.volumes.yml"); + return new File("./../../docker/docker-compose.valkey.volumes.yml"); } - private static File resolveRedisComposeFile() { - if (IS_REDIS_CLUSTER) { - return new File("./../../docker/docker-compose.redis-cluster.yml"); + private static File resolveValkeyComposeFile() { + if (IS_VALKEY_CLUSTER) { + return new File("./../../docker/docker-compose.valkey-cluster.yml"); } - if (IS_REDIS_SENTINEL) { - return new File("./../../docker/docker-compose.redis-sentinel.yml"); + if (IS_VALKEY_SENTINEL) { + return new File("./../../docker/docker-compose.valkey-sentinel.yml"); } - return new File("./../../docker/docker-compose.redis.yml"); + return new File("./../../docker/docker-compose.valkey.yml"); } public Map getEnv() { @@ -200,27 +200,27 @@ public class ThingsBoardDbInstaller { if (IS_HYBRID_MODE) { additionalServices.append(" cassandra"); } - if (IS_REDIS_CLUSTER) { + if (IS_VALKEY_CLUSTER) { for (int i = 0; i < 6; i++) { - additionalServices.append(" redis-node-").append(i); - dockerCompose.withCommand("volume create " + redisClusterDataVolume + '-' + i); + additionalServices.append(" valkey-node-").append(i); + dockerCompose.withCommand("volume create " + valkeyClusterDataVolume + '-' + i); dockerCompose.invokeDocker(); } - } else if (IS_REDIS_SENTINEL) { - additionalServices.append(" redis-master"); - dockerCompose.withCommand("volume create " + redisSentinelDataVolume + "-" + "master"); + } else if (IS_VALKEY_SENTINEL) { + additionalServices.append(" valkey-primary"); + dockerCompose.withCommand("volume create " + valkeySentinelDataVolume + "-" + "primary"); dockerCompose.invokeDocker(); - additionalServices.append(" redis-slave"); - dockerCompose.withCommand("volume create " + redisSentinelDataVolume + '-' + "slave"); + additionalServices.append(" valkey-replica"); + dockerCompose.withCommand("volume create " + valkeySentinelDataVolume + '-' + "replica"); dockerCompose.invokeDocker(); - additionalServices.append(" redis-sentinel"); - dockerCompose.withCommand("volume create " + redisSentinelDataVolume + '-' + "sentinel"); + additionalServices.append(" valkey-sentinel"); + dockerCompose.withCommand("volume create " + valkeySentinelDataVolume + '-' + "sentinel"); dockerCompose.invokeDocker(); } else { - additionalServices.append(" redis"); - dockerCompose.withCommand("volume create " + redisDataVolume); + additionalServices.append(" valkey"); + dockerCompose.withCommand("volume create " + valkeyDataVolume); dockerCompose.invokeDocker(); } @@ -261,7 +261,7 @@ public class ThingsBoardDbInstaller { .add(tbSnmpTransportLogVolume) .add(tbVcExecutorLogVolume) .add(tbEdqsLogVolume) - .add(resolveRedisComposeVolumeLog()); + .add(resolveValkeyComposeVolumeLog()); if (IS_HYBRID_MODE) { rmVolumesCommand.add(cassandraDataVolume); @@ -270,16 +270,16 @@ public class ThingsBoardDbInstaller { dockerCompose.withCommand(rmVolumesCommand.toString()); } - private String resolveRedisComposeVolumeLog() { - if (IS_REDIS_CLUSTER) { - return IntStream.range(0, 6).mapToObj(i -> " " + redisClusterDataVolume + "-" + i).collect(Collectors.joining()); + private String resolveValkeyComposeVolumeLog() { + if (IS_VALKEY_CLUSTER) { + return IntStream.range(0, 6).mapToObj(i -> " " + valkeyClusterDataVolume + "-" + i).collect(Collectors.joining()); } - if (IS_REDIS_SENTINEL) { - return redisSentinelDataVolume + "-" + "master " + " " + - redisSentinelDataVolume + "-" + "slave" + " " + - redisSentinelDataVolume + " " + "sentinel"; + if (IS_VALKEY_SENTINEL) { + return valkeySentinelDataVolume + "-" + "primary " + " " + + valkeySentinelDataVolume + "-" + "replica" + " " + + valkeySentinelDataVolume + " " + "sentinel"; } - return redisDataVolume; + return valkeyDataVolume; } private void copyLogs(String volumeName, String targetDir) { diff --git a/msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.volumes.yml b/msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.volumes.yml similarity index 86% rename from msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.volumes.yml rename to msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.volumes.yml index 3b23511501..7da5f154a6 100644 --- a/msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.volumes.yml +++ b/msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.volumes.yml @@ -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} diff --git a/msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.yml b/msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.yml similarity index 55% rename from msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.yml rename to msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.yml index 6ff24564b7..73de64b303 100644 --- a/msa/black-box-tests/src/test/resources/docker-compose.redis-ssl.yml +++ b/msa/black-box-tests/src/test/resources/docker-compose.valkey-ssl.yml @@ -17,114 +17,114 @@ 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: # ALLOW_EMPTY_PASSWORD is recommended only for development. - 'ALLOW_EMPTY_PASSWORD=yes' - 'VALKEY_TLS_ENABLED=yes' - - 'VALKEY_TLS_CERT_FILE=/redis/certs/redis.crt' - - 'VALKEY_TLS_KEY_FILE=/redis/certs/redis.key' - - 'VALKEY_TLS_CA_FILE=/redis/certs/redisCA.crt' + - 'VALKEY_TLS_CERT_FILE=/valkey/certs/valkey.crt' + - 'VALKEY_TLS_KEY_FILE=/valkey/certs/valkey.key' + - 'VALKEY_TLS_CA_FILE=/valkey/certs/valkeyCA.crt' - 'VALKEY_TLS_AUTH_CLIENTS=no' ports: - '6379:6379' volumes: - - ./tb-node/redis-data:/bitnami/redis/data - - ./redis-certs:/redis/certs + - ./tb-node/valkey-data:/bitnami/valkey/data + - ./valkey-certs:/valkey/certs -# ThingsBoard setup to use redis-standalone +# ThingsBoard setup to use valkey-standalone tb-core1: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-core2: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-rule-engine1: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-rule-engine2: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-mqtt-transport1: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-mqtt-transport2: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-http-transport1: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-http-transport2: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-coap-transport: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-lwm2m-transport: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-snmp-transport: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-vc-executor1: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey tb-vc-executor2: env_file: - - cache-redis.env + - cache-valkey.env volumes: - - ./redis-certs:/redis/certs + - ./valkey-certs:/valkey/certs depends_on: - - redis + - valkey diff --git a/msa/black-box-tests/src/test/resources/redis-certs/redis.crt b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt similarity index 100% rename from msa/black-box-tests/src/test/resources/redis-certs/redis.crt rename to msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt diff --git a/msa/black-box-tests/src/test/resources/redis-certs/redis.key b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.key similarity index 100% rename from msa/black-box-tests/src/test/resources/redis-certs/redis.key rename to msa/black-box-tests/src/test/resources/valkey-certs/valkey.key diff --git a/msa/black-box-tests/src/test/resources/redis-certs/redisCA.crt b/msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt similarity index 100% rename from msa/black-box-tests/src/test/resources/redis-certs/redisCA.crt rename to msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt From b350dc0efe9789f117569ec57991000fb03eda5d Mon Sep 17 00:00:00 2001 From: dshvaika Date: Wed, 28 May 2025 09:44:54 +0300 Subject: [PATCH 2/2] Updated valkey certs. Not after validity: May 28 06:15:29 2026 GMT --- .../test/resources/valkey-certs/valkey.crt | 33 ++++------------ .../test/resources/valkey-certs/valkey.key | 36 ++++------------- .../test/resources/valkey-certs/valkeyCA.crt | 39 +++++-------------- 3 files changed, 24 insertions(+), 84 deletions(-) diff --git a/msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt index 8fce48c0a1..8f06395b44 100755 --- a/msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt +++ b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.crt @@ -1,28 +1,9 @@ -----BEGIN CERTIFICATE----- -MIIE1TCCAr2gAwIBAgIUFdFLz/q0EosJc39HhIac9+XpyRkwDQYJKoZIhvcNAQEL -BQAwWTELMAkGA1UEBhMCdWExDTALBgNVBAgMBGt5aXYxDTALBgNVBAcMBGt5aXYx -CzAJBgNVBAoMAnRiMQswCQYDVQQLDAJ0YjESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTIzMDkwNDE1NTA0MVoXDTI0MDkwMzE1NTA0MVowYjELMAkGA1UEBhMCQ1IxEzAR -BgNVBAgMCkNoYW5kcmlsbGExEzARBgNVBAcMCkNoYW5kcmlsbGExEjAQBgNVBAMM -CUhPU1RfTkFNRTEVMBMGA1UECgwMTmV3IFJlcHVibGljMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA+ICaK/aSklkUIih3cl4k4RYJL8rLS68d5JVSxpCQ -8MwuAakdU+ptD0b6X4+CcNtR96UlcO3cR15GLLT6s29Kw4Ta5SME+yhuFLUIrWxA -/gJ/pkJGkq1vXYZzdUFjtMlF+VbIw+r2hhSkbTR1hV08iRlvflafS8JB/tznqTFy -QIXu08heRtxVaC6SMHLeHmZdgdJrSOulwg/ctcP6tki+ZU9v+TH71M3mTIOLzuSz -7sqnFMPgW7ER0Utc4fndRfz17LA1NZdSrN0Ch5IO+EZ9gf/25w8makbx7lZoZASm -sAd0Uyq9ZPC0ok+oJjeDwanl/Bo7CGEgdxaFYNKpnizyUQIDAQABo4GLMIGIMAsG -A1UdDwQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGgYDVR0R -BBMwEYIJbG9jYWxob3N0hwR/AAABMB0GA1UdDgQWBBRAIkMMxT30wZYoNQuDM7uT -qwb+VzAfBgNVHSMEGDAWgBSfpEhvBqWx6usjDlGx7lEx8Fl21DANBgkqhkiG9w0B -AQsFAAOCAgEAMeaZ5K0w2kPSqcZbzV4WwGShrhnSYdsA4dlZhAUNNxsoXX590Ppe -lla+vhFSdk/IwjFxLzmiau5+JlCySeOJv2AaG56JvBBU1Wl8LOk01a7qRctiKRth -AGFGKZoJ50h5W1A0NV7KwcGIkQdebAFPdMmkOd6Do98ZhkzYLRuAK3U0K4wNQJuf -gPt9XtIugRNQOwxolXAj81FfhjZ5CnoaCQYJBFyIenwg4uGjg+D0F9WtAlRq8ww+ -XpWpVw8QgPDk+SVoGXUsBs+wMCDlGu4ozN2lIvG1N5n1q0qn39SUYOSBkEsdM+AS -Yu6LMP4J1SPOwT5UJN2jK7fAYBdChF39nV/xiatfUSy8rWUFQSwGv6JD3X0MAYfT -DyOiYdX8o+AnetjfBHHwVXDobh5d1GiC2DwoUNW7KoEdj5mmhDZKiB2S47/5J7El -UA9CevmmDvf/tN9itPrutSwcb7uwLYRsf7Gx3D3P/2+nQHUKyNcyQCNtgR7RKHBS -EjeedMgtKvrqsdPnk6Ygwj8EMh4owDIDcieqnPZAxhqJOJT2ZORdzyelmpv5aDGc -0XnnRHRInSUgQStfPa9ghOBpSXlhxL1EJFFik+yFOjH4GivhoynCb7zjW+MjlPDV -LAsnmMukBR95ZkpxMnRUEoLTEvTaxmg4Vr/mqXeQUKdU8A812Wrk2hc= +MIIBLTCB1AIUSQ2Ce8LOpzqOJhL2aXCTVrd45twwCgYIKoZIzj0EAwIwHDEaMBgG +A1UEAwwRVmFsa2V5IEVDIFJvb3QgQ0EwHhcNMjUwNTI4MDYxNTI5WhcNMjYwNTI4 +MDYxNTI5WjAXMRUwEwYDVQQDDAx2YWxrZXkubG9jYWwwWTATBgcqhkjOPQIBBggq +hkjOPQMBBwNCAATSpimU25+2yIKGNwSQgPN2QaEcfWnj4c8PcTjeXg/1C2+fpMyl +jgknA64GUM2VeoVbG0mTkywlRU57+2yVLKYrMAoGCCqGSM49BAMCA0gAMEUCIDi0 +ri1mBU64a8C0L/QZet0C/+HsbhItq40AmtZyEKWlAiEA8FJG51ZvncgYx8PCLGS7 +WmBCqfnG58W4ga4M6YhEnYA= -----END CERTIFICATE----- diff --git a/msa/black-box-tests/src/test/resources/valkey-certs/valkey.key b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.key index cbbf83ca2b..eba80567dc 100755 --- a/msa/black-box-tests/src/test/resources/valkey-certs/valkey.key +++ b/msa/black-box-tests/src/test/resources/valkey-certs/valkey.key @@ -1,28 +1,8 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD4gJor9pKSWRQi -KHdyXiThFgkvystLrx3klVLGkJDwzC4BqR1T6m0PRvpfj4Jw21H3pSVw7dxHXkYs -tPqzb0rDhNrlIwT7KG4UtQitbED+An+mQkaSrW9dhnN1QWO0yUX5VsjD6vaGFKRt -NHWFXTyJGW9+Vp9LwkH+3OepMXJAhe7TyF5G3FVoLpIwct4eZl2B0mtI66XCD9y1 -w/q2SL5lT2/5MfvUzeZMg4vO5LPuyqcUw+BbsRHRS1zh+d1F/PXssDU1l1Ks3QKH -kg74Rn2B//bnDyZqRvHuVmhkBKawB3RTKr1k8LSiT6gmN4PBqeX8GjsIYSB3FoVg -0qmeLPJRAgMBAAECggEAE6sCCMa8NQ8N0+JGCew/mP0Ifxra2kOi5wuWgJbCkfxn -C8SZyKF+Pj5M5LFUDqCdLS+J9hUtYQyqGzG7weXmEfF67bXG2CYMCGGHrUorHq+N -8NfABC3r6YgRrU8emBlyC1j+DNuU5WnO1cHYJ1UIzIUR2Pr8Ip/eX1CWmUKLm2WW -YvUGzvTG0mM0l9/Q8pcTndAxDuL90GG6TrxtQoy7Ir6dYxTVKHgOwa6RX86VrCkm -jl6Wu7Bvo2fnPvPVx8p1mgWNgtBbnc/VAYjeF7Yi7CETWHTxGM4iGtZNL8/xxlW7 -sm2SmWEu72EupLYgytA9w+EptjbwWfcTaWbWUXTFHQKBgQD5nmYLVvZUR1oc9g2a -Q7XpFQ/jVvwedeKGolMbWTFrEhl1+D8lKN/S3SoRCOALOUJFUCU+L1snN3MsJ5Es -Gb0FLSH1LBBfuHqP+aHn/uGLMW8e7P9thh4DQ1tIzKE5xhh+JDJJqd15YJlsDy1F -0aKWyulS4o9XK5q86rs5QbI4MwKBgQD+2uXEAiFwEXq7pw2e8STrnt0jp09KU6b1 -z/ykyArBdcVkrEudZ+jIrR/6rlSKK+SKQxtx8MG9M/Nm09KFRCAWblxHBwQ87ZnU -8tMAmPHrikLKk1dbbU3BQ3cZkIWMryCo4wzuxeT4mc2goTGNZpNZDpjqjCXbnCgP -T29aPHG3awKBgGFv8UlP4su3JnfTnC+xaprXO+J0G+oP/iKrzmEIif/Pity/0HZC -5Eu9RSRtIHeBHFtOE5uYhK5kOLLtpv9d9KjGm1DGqIWUz1LQEOEsXwIkg8nAnVw1 -VBXV/xYFupGAwCLNIkwa4Hb2vCywJ+3vDNZr0nQmN+nA/Z/syLRq7pR9AoGBALqp -l3pd2SHdG5jP/VD57IHLRMs1YwTcikAmizQh9IbH/MEE1QlALya0buTLxM3C4kxG -ZJaqsSwkHdWltd64DAyB3oKDaB48JNzs0ZDxdNeA1/TJwEUNpNK12EjYKojlSDWK -v1Evjspq1EofZkzb4XZsE6JO7feQw2KbWsKr3NprAoGBAKSSAjDpncxb+9Pr0Lwa -AS7ATgMhot6+lbtZZV6egTGUVvtgd1LyE2ZJkE+5XJRu49X1lSJdDpFT66rG5eNV -+rYnDqXL8c0Z/j1L96z1UMY6DLPj3n+07zgLiNIrOR4UKP/+TGB9MHHFMEpYnij0 -m/f6dg0Ujw6CW31Hq2QdJ9P7 ------END PRIVATE KEY----- +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIHsaG9ozysmDm7xv+d+i/vl7xJUHcgL93/9rvQfd3PWDoAoGCCqGSM49 +AwEHoUQDQgAE0qYplNuftsiChjcEkIDzdkGhHH1p4+HPD3E43l4P9Qtvn6TMpY4J +JwOuBlDNlXqFWxtJk5MsJUVOe/tslSymKw== +-----END EC PRIVATE KEY----- diff --git a/msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt b/msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt index 444dac130b..6210085236 100644 --- a/msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt +++ b/msa/black-box-tests/src/test/resources/valkey-certs/valkeyCA.crt @@ -1,32 +1,11 @@ -----BEGIN CERTIFICATE----- -MIIFkzCCA3ugAwIBAgIUK9fjeDv+ESrdFSHMqsod5djzTh4wDQYJKoZIhvcNAQEL -BQAwWTELMAkGA1UEBhMCdWExDTALBgNVBAgMBGt5aXYxDTALBgNVBAcMBGt5aXYx -CzAJBgNVBAoMAnRiMQswCQYDVQQLDAJ0YjESMBAGA1UEAwwJbG9jYWxob3N0MB4X -DTIzMDkwNDE1MDUxN1oXDTMzMDkwMTE1MDUxN1owWTELMAkGA1UEBhMCdWExDTAL -BgNVBAgMBGt5aXYxDTALBgNVBAcMBGt5aXYxCzAJBgNVBAoMAnRiMQswCQYDVQQL -DAJ0YjESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAsaxpM/OLfx0jNVHAiD4dmJ4t5vZQNINtaI/GgnXNv9iM3aDvbYr/ -Cp8mJgkOvI9BZqDEcLscBv+H4mxCqS2IFBqJbtkYHExBgg7V13NRtJwqsWVz0rBG -V1SFou2JSzPkQ6IDxJI+AUW6DfsbCs3o6VRPbriMfY06rNagerG1osaD9yn/EsH9 -BTdALravcvU8mxOghzWH54EzwDUA0mKUetgvgfqkzjDlqzXFnOsIinnDi0Ia3idF -RaBVs7bKokl0Zp1mdtvsEpG4lcmhDtNIogcmeH2LW2zEneHuDX2BGsN9CCwEGj3k -cftuxEck2mQVDoDgX1IpIUGBhIaAixj+UXh8RNSwU96GBwKbFNy/CXNj5+34DcL0 -kBh7p77rcrzm6xEGpP/3YYPoRVBRAX64x4QqzqF5oj6Sf2NGKH9RILmLWdqmq/up -6cMYyzAEOr3nIQ/7OfkdvxOt0oUzeB7QPYbTvM9bCqe3XA+JH1pnLhgySPxdTeVe -nUExge8WPJmdTlH1McminFDiJruFRa069hbky/b5z8BjIBN5S3lC4PdEE9YmDSL1 -u26HnRVwtqC32fkDNI1PT/4p2VaB+DmIxkFXrVUnV0TiyCyxu4jIgXhUiJRHgBn9 -zwB7lEZUhMriOBGJqHa0H0TtnH8z/5GYmipeJZllmQbhI+sMyYBS/+cCAwEAAaNT -MFEwHQYDVR0OBBYEFJ+kSG8GpbHq6yMOUbHuUTHwWXbUMB8GA1UdIwQYMBaAFJ+k -SG8GpbHq6yMOUbHuUTHwWXbUMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggIBABCt/bx7/YbvR/0PE4nIzxVovPItR+oYcInRrbwT+VWvL22Su7rf71lc -1vlil4xjdVxSEi6s5KZ69PLJKKXukt1MBCUStDK1HKPPB1SAhtD6nuvkh7YL+2im -A5gmtg3KkD2ZD2mWCHAa8K7NEMah1XiMVMo+ByFNPQExqOk2i3+5kjBrlfElsm0Q -ixM++93T62gTibOjuO8uPP0NUcIHI+RcEalc1hJjFof4gWLnIulaeuUydXw7RhzE -HzeOeZiZWrvW2mjfiANMn27TV5K0dZoh/4+YLqkKn1bdQsYVIWxWx8jZ0Nj0yzMb -Ekkodny3F+BHqkSUb3whRWDKN82valnCSJFAKZFZzueAJgCjANTNdr7S7UUIxZyi -QKll59T4O1yhawRu/cZ6TQWzV7RWdTerFfIjHMwsohDUxlkoACJebLahsBG9IHGN -Tn+P2djY6CXBctbTXhRiYqeb79/TPU0EETv7/ilNHS/tssWcKWkFdai3yMzLvxeH -YTVPMzeAWW/PnQOwYTkgeaj7SIK5bbm5n/gpWk31R5gRWhgJc9FZSa9+oZWbWeYh -3XfsuCuTH+jSs0g+jJUx/cpIVrO38r2hSuhDPugmHgM6yEnKMubhChCPCyXjO0z9 -brEMQ1T9r2sKOYuyNDhN/W9/QsTb/RO4Ug2lYlzRTdehqvimHspW +MIIBjDCCATOgAwIBAgIUd7nfNuCY22WidK3CdazyMQUzVrAwCgYIKoZIzj0EAwIw +HDEaMBgGA1UEAwwRVmFsa2V5IEVDIFJvb3QgQ0EwHhcNMjUwNTI4MDYxNTE4WhcN +MjcwNTI4MDYxNTE4WjAcMRowGAYDVQQDDBFWYWxrZXkgRUMgUm9vdCBDQTBZMBMG +ByqGSM49AgEGCCqGSM49AwEHA0IABA4DTobDPtQtjBxYR+szO6p/pen9JWYPuXww +AyYMDEvD5ue3itruuDz0td0BMvn5YO+t1d03VKFVGP1ZpB4XO7ujUzBRMB0GA1Ud +DgQWBBSwBnnqUCfMUoaq7adEANr614SLFDAfBgNVHSMEGDAWgBSwBnnqUCfMUoaq +7adEANr614SLFDAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIFCp +9xuuj8Z6iSozSA/3cIugBnQqUSMw9BrS+2Qr6v69AiBz2R+DGXZAKTkOzqgxBXjv +fcdX4LrBpLCn1Pw/IDD+Ug== -----END CERTIFICATE-----