Procházet zdrojové kódy

fix: reboot `emqx_license` app for join cluster

JimMoen před 2 roky
rodič
revize
cb05406a00

+ 34 - 33
apps/emqx_machine/src/emqx_machine_boot.erl

@@ -126,39 +126,40 @@ reboot_apps() ->
     BaseRebootApps ++ ConfigApps.
     BaseRebootApps ++ ConfigApps.
 
 
 basic_reboot_apps() ->
 basic_reboot_apps() ->
-    CE =
-        ?BASIC_REBOOT_APPS ++
-            [
-                emqx_prometheus,
-                emqx_modules,
-                emqx_dashboard,
-                emqx_connector,
-                emqx_gateway,
-                emqx_resource,
-                emqx_rule_engine,
-                emqx_bridge,
-                emqx_plugin_libs,
-                emqx_management,
-                emqx_retainer,
-                emqx_exhook,
-                emqx_authn,
-                emqx_authz,
-                emqx_slow_subs,
-                emqx_auto_subscribe,
-                emqx_plugins
-            ],
-    case emqx_release:edition() of
-        ce ->
-            CE ++ [emqx_telemetry];
-        ee ->
-            CE ++
-                [
-                    emqx_s3,
-                    emqx_ft,
-                    emqx_eviction_agent,
-                    emqx_node_rebalance
-                ]
-    end.
+    ?BASIC_REBOOT_APPS ++
+        [
+            emqx_prometheus,
+            emqx_modules,
+            emqx_dashboard,
+            emqx_connector,
+            emqx_gateway,
+            emqx_resource,
+            emqx_rule_engine,
+            emqx_bridge,
+            emqx_plugin_libs,
+            emqx_management,
+            emqx_retainer,
+            emqx_exhook,
+            emqx_authn,
+            emqx_authz,
+            emqx_slow_subs,
+            emqx_auto_subscribe,
+            emqx_plugins
+        ] ++ basic_reboot_apps_edition(emqx_release:edition()).
+
+basic_reboot_apps_edition(ce) ->
+    [emqx_telemetry];
+basic_reboot_apps_edition(ee) ->
+    [
+        emqx_license,
+        emqx_s3,
+        emqx_ft,
+        emqx_eviction_agent,
+        emqx_node_rebalance
+    ];
+%% unexcepted edition, should not happen
+basic_reboot_apps_edition(_) ->
+    [].
 
 
 sorted_reboot_apps() ->
 sorted_reboot_apps() ->
     Apps = [{App, app_deps(App)} || App <- reboot_apps()],
     Apps = [{App, app_deps(App)} || App <- reboot_apps()],

+ 6 - 0
changes/ce/fix-10820.en.md

@@ -0,0 +1,6 @@
+In case the cluster updated license before the new node join in. The new node will not apply the updated license.
+After this change, the new joined node will use the cluster's license key.
+
+Sometimes the new node must start with a outdated license.
+e.g. use emqx-operator deployed and needed to scale up after license expired.
+At the time the cluster's license key already updated by API/CLI, but the new node won't use it.