Kaynağa Gözat

chore(CI): cts support redis sentinel ssl

zhanghongtong 4 yıl önce
ebeveyn
işleme
48cbb9c0ed

+ 12 - 0
.ci/docker-compose-file/docker-compose-redis-sentinel-tls.yaml

@@ -0,0 +1,12 @@
+version: '3.9'
+
+services:
+  redis_server:
+    container_name: redis
+    image: redis:${REDIS_TAG}
+    volumes:
+      - ../../apps/emqx_auth_redis/test/emqx_auth_redis_SUITE_data/certs:/tls
+      - ./redis/:/data/conf
+    command: bash -c "/bin/bash /data/conf/redis.sh --node sentinel --tls-enabled && tail -f /var/log/redis-server.log"
+    networks:
+      - emqx_bridge

+ 2 - 0
.ci/docker-compose-file/redis/redis-tls.conf

@@ -4,5 +4,7 @@ logfile /var/log/redis-server.log
 tls-cert-file /tls/redis.crt
 tls-key-file /tls/redis.key
 tls-ca-cert-file /tls/ca.crt
+tls-replication yes
+protected-mode no
 requirepass public
 masterauth public

+ 23 - 0
.ci/docker-compose-file/redis/redis.sh

@@ -49,12 +49,22 @@ if [ "${node}" = "cluster" ] ; then
     redis-server /data/conf/redis.conf --port 7002 --cluster-config-file /data/conf/nodes.7002.conf --cluster-enabled yes;
   fi
 elif [ "${node}" = "sentinel" ] ; then
+  if $tls ; then
+    redis-server /data/conf/redis-tls.conf --port 7000 --cluster-config-file /data/conf/nodes.7000.conf \
+                                           --tls-port 8000 --cluster-enabled no;
+    redis-server /data/conf/redis-tls.conf --port 7001 --cluster-config-file /data/conf/nodes.7001.conf \
+                                           --tls-port 8001 --cluster-enabled no --slaveof "$LOCAL_IP" 8000;
+    redis-server /data/conf/redis-tls.conf --port 7002 --cluster-config-file /data/conf/nodes.7002.conf \
+                                           --tls-port 8002 --cluster-enabled no --slaveof "$LOCAL_IP" 8000;
+
+  else
     redis-server /data/conf/redis.conf --port 7000 --cluster-config-file /data/conf/nodes.7000.conf \
                                        --cluster-enabled no;
     redis-server /data/conf/redis.conf --port 7001 --cluster-config-file /data/conf/nodes.7001.conf \
                                        --cluster-enabled no --slaveof "$LOCAL_IP" 7000;
     redis-server /data/conf/redis.conf --port 7002 --cluster-config-file /data/conf/nodes.7002.conf \
                                        --cluster-enabled no --slaveof "$LOCAL_IP" 7000;
+  fi
 fi
 REDIS_LOAD_FLG=true;
 
@@ -88,8 +98,21 @@ bind 0.0.0.0 ::
 daemonize yes
 logfile /var/log/redis-server.log
 dir /tmp
+EOF
+      if $tls ; then
+          cat >>/_sentinel.conf<<EOF
+tls-port 26380
+tls-replication yes
+tls-cert-file /tls/redis.crt
+tls-key-file /tls/redis.key
+tls-ca-cert-file /tls/ca.crt
+sentinel monitor mymaster $LOCAL_IP 8000 1
+EOF
+      else
+          cat >>/_sentinel.conf<<EOF
 sentinel monitor mymaster $LOCAL_IP 7000 1
 EOF
+      fi
       redis-server /_sentinel.conf --sentinel;
     fi
     REDIS_LOAD_FLG=false;

+ 0 - 2
.github/workflows/run_cts_tests.yaml

@@ -306,8 +306,6 @@ jobs:
         exclude:
         - redis_tag: 5
           connect_type: tls
-        - node_type: sentinel
-          connect_type: tls
 
     steps:
       - uses: actions/checkout@v1