浏览代码

Merge pull request #11796 from qzhuyan/fix/william/gen_rpc-driver

fix(gen_rpc): ensure client/server use same driver
William Yang 2 年之前
父节点
当前提交
a9b42af8b3

+ 40 - 1
.github/workflows/run_helm_tests.yaml

@@ -37,7 +37,10 @@ jobs:
         profile:
         - emqx
         - emqx-enterprise
-
+        rpc:
+        - tcp
+        - ssl1.3
+        - ssl1.2
     steps:
     - uses: actions/checkout@v3
       with:
@@ -53,6 +56,40 @@ jobs:
           echo "${stderr}";
           exit 1;
         fi
+    - name: Prepare emqxConfig.EMQX_RPC using TCP
+      working-directory: source
+      if: matrix.rpc == 'tcp'
+      run: |
+        cat > rpc-overrides.yaml <<EOL
+        emqxConfig:
+          EMQX_RPC__PROTOCOL: tcp
+        EOL
+    - name: Prepare emqxConfig.EMQX_RPC using ssl1.3
+      working-directory: source
+      if: matrix.rpc == 'ssl1.3'
+      run: |
+        cat > rpc-overrides.yaml <<EOL
+        emqxConfig:
+          EMQX_RPC__PROTOCOL: ssl
+          EMQX_RPC__CERTFILE: /opt/emqx/etc/certs/cert.pem
+          EMQX_RPC__KEYFILE: /opt/emqx/etc/certs/key.pem
+          EMQX_RPC__CACERTFILE: /opt/emqx/etc/certs/cacert.pem
+          EMQX_RPC__CIPHERS: TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256
+          EMQX_RPC__TLS_VERSIONS: "[tlsv1.3]"
+        EOL
+    - name: Prepare emqxConfig.EMQX_RPC using ssl1.2
+      working-directory: source
+      if: matrix.rpc == 'ssl1.2'
+      run: |
+        cat > rpc-overrides.yaml <<EOL
+        emqxConfig:
+          EMQX_RPC__PROTOCOL: ssl
+          EMQX_RPC__CERTFILE: /opt/emqx/etc/certs/cert.pem
+          EMQX_RPC__KEYFILE: /opt/emqx/etc/certs/key.pem
+          EMQX_RPC__CACERTFILE: /opt/emqx/etc/certs/cacert.pem
+          EMQX_RPC__CIPHERS: TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256
+          EMQX_RPC__TLS_VERSIONS: "[tlsv1.2]"
+        EOL
     - name: run emqx on chart (k8s)
       if: matrix.discovery == 'k8s'
       working-directory: source
@@ -70,6 +107,7 @@ jobs:
             --set emqxConfig.EMQX_MQTT__MAX_TOPIC_ALIAS=10 \
             --set emqxConfig.EMQX_AUTHORIZATION__SOURCES=[] \
             --set emqxConfig.EMQX_AUTHORIZATION__NO_MATCH=allow \
+            --values rpc-overrides.yaml \
             deploy/charts/${EMQX_NAME} \
             --debug
     - name: run emqx on chart (dns)
@@ -88,6 +126,7 @@ jobs:
             --set emqxConfig.EMQX_MQTT__MAX_TOPIC_ALIAS=10 \
             --set emqxConfig.EMQX_AUTHORIZATION__SOURCES=[] \
             --set emqxConfig.EMQX_AUTHORIZATION__NO_MATCH=allow \
+            --values rpc-overrides.yaml \
             deploy/charts/${EMQX_NAME} \
             --debug
     - name: waiting emqx started

+ 1 - 1
apps/emqx/rebar.config

@@ -29,7 +29,7 @@
     {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}},
     {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.7"}}},
     {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.16"}}},
-    {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.2.0"}}},
+    {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.2.1"}}},
     {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.39.16"}}},
     {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}},
     {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}},

+ 3 - 3
apps/emqx_conf/src/emqx_conf_schema.erl

@@ -1150,7 +1150,7 @@ translation("emqx") ->
     ];
 translation("gen_rpc") ->
     [
-        {"default_client_driver", fun tr_default_config_driver/1},
+        {"default_client_driver", fun tr_gen_rpc_default_client_driver/1},
         {"ssl_client_options", fun tr_gen_rpc_ssl_options/1},
         {"ssl_server_options", fun tr_gen_rpc_ssl_options/1},
         {"socket_ip", fun(Conf) ->
@@ -1223,8 +1223,8 @@ tr_vm_msacc_collector(Conf) ->
 collector_enabled(enabled, Collector) -> [Collector];
 collector_enabled(disabled, _) -> [].
 
-tr_default_config_driver(Conf) ->
-    conf_get("rpc.driver", Conf).
+tr_gen_rpc_default_client_driver(Conf) ->
+    conf_get("rpc.protocol", Conf).
 
 tr_gen_rpc_ssl_options(Conf) ->
     Ciphers = conf_get("rpc.ciphers", Conf),

+ 2 - 0
changes/ce/fix-11796.en.md

@@ -0,0 +1,2 @@
+Fix rpc schema, ensure client/server use same transport driver. 
+

+ 2 - 0
changes/ce/fix-11796.zh.md

@@ -0,0 +1,2 @@
+修复 rpc schema,确保客户端/服务端使用相同的传输驱动。
+

+ 1 - 1
mix.exs

@@ -56,7 +56,7 @@ defmodule EMQXUmbrella.MixProject do
       {:esockd, github: "emqx/esockd", tag: "5.9.7", override: true},
       {:rocksdb, github: "emqx/erlang-rocksdb", tag: "1.8.0-emqx-1", override: true},
       {:ekka, github: "emqx/ekka", tag: "0.15.16", override: true},
-      {:gen_rpc, github: "emqx/gen_rpc", tag: "3.2.0", override: true},
+      {:gen_rpc, github: "emqx/gen_rpc", tag: "3.2.1", override: true},
       {:grpc, github: "emqx/grpc-erl", tag: "0.6.8", override: true},
       {:minirest, github: "emqx/minirest", tag: "1.3.13", override: true},
       {:ecpool, github: "emqx/ecpool", tag: "0.5.4", override: true},

+ 1 - 1
rebar.config

@@ -63,7 +63,7 @@
     , {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.7"}}}
     , {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-1"}}}
     , {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.16"}}}
-    , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.2.0"}}}
+    , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.2.1"}}}
     , {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.8"}}}
     , {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.13"}}}
     , {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.4"}}}