redis/tests/unit/cluster
Meir Shpilraien (Spielrein) 870b6bd487
Added a shared secret over Redis cluster. (#13763)
The PR introduces a new shared secret that is shared over all the nodes
on the Redis cluster. The main idea is to leverage the cluster bus to
share a secret between all the nodes such that later the nodes will be
able to authenticate using this secret and send internal commands to
each other (see #13740 for more information about internal commands).

The way the shared secret is chosen is the following:
1. Each node, when start, randomly generate its own internal secret.
2. Each node share its internal secret over the cluster ping messages.
3. If a node gets a ping message with secret smaller then his current
secret, it embrace it.
4. Eventually all nodes should embrace the minimal secret

The converges of the secret is as good as the topology converges.

To extend the ping messages to contain the secret, we leverage the
extension mechanism. Nodes that runs an older Redis version will just
ignore those extensions.

Specific tests were added to verify that eventually all nodes see the
secrets. In addition, a verification was added to the test infra to
verify the secret on `cluster_config_consistent` and to
`assert_cluster_state`.
2025-02-03 09:54:37 +02:00
..
announced-endpoints.tcl Add announced-endpoints test to all_tests and fix tls related tests (#12927) 2024-01-09 18:18:59 -08:00
cli.tcl redis-cli adds -4 / -6 options to determine IPV4 / IPV6 priority in DNS lookup (#11315) 2023-12-24 10:40:34 +02:00
cluster-response-tls.tcl Support TLS service when "tls-cluster" is not enabled and persist both plain and TLS port in nodes.conf (#12233) 2023-06-26 07:43:38 -07:00
failure-marking.tcl When one shard, sole primary node marks potentially failed replica as FAIL instead of PFAIL (#12824) 2024-01-11 15:48:19 -08:00
hostnames.tcl Pass extensions to node if extension processing is handled by it (#13465) 2024-08-08 10:48:03 +08:00
human-announced-nodename.tcl Make nodename test more consistent (#12330) 2023-06-20 18:00:55 -07:00
internal-secret.tcl Added a shared secret over Redis cluster. (#13763) 2025-02-03 09:54:37 +02:00
links.tcl Attempt to solve MacOS CI issues in GH Actions (#12013) 2023-04-12 09:19:21 +03:00
misc.tcl Exclude aux fields from "cluster nodes" and "cluster replicas" output (#12166) 2023-05-23 18:32:37 +03:00
multi-slot-operations.tcl Temporarily hide the new SFLUSH command by marking it as experimental (#13600) 2024-10-15 11:02:51 +03:00
scripting.tcl fix scripts access wrong slot if they disagree with pre-declared keys (#12906) 2024-01-15 09:57:12 +08:00
sharded-pubsub.tcl Have consistent behavior of SPUBLISH within multi/exec like regular command (#13276) 2024-05-21 09:25:13 +08:00
slot-ownership.tcl bugfix:del keys in slot replicate to replica, and trigger other invalidations (#11084) 2022-08-28 11:37:26 +03:00