You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The sharder assigns all sharded objects by adding a shard label that is specific to the `ControllerRing` (resources could be part of multiple `ControllerRings`).
173
-
The shard label's key consists of the `shard.alpha.sharding.timebertt.dev/` prefix followed by the first 8 hex characters of the SHA256 checksum of the `ControllerRing` name followed by a `-` followed by the `ControllerRing` name itself.
174
-
The key part after the `/` is shortened to 63 characters so that it is a valid label key.
175
-
The checksum is added to the label key to derive unique label keys even for `ControllerRings` with long names that would cause the pattern to exceed the 63 characters limit after the `/`.
175
+
The shard label's key consists of the `shard.alpha.sharding.timebertt.dev/` prefix followed by the `ControllerRing` name.
176
+
As the key part after the `/` must not exceed 63 characters, the `ControllerRing` name must not be longer than 63 characters.
176
177
The shard label's value is the name of the shard, i.e., the name of the shard lease and the shard lease's `holderIdentity`.
177
178
178
179
Once you have determined the shard label key for your `ControllerRing`, use it as a selector on all watches that your controller starts for any of the sharded resources.
@@ -221,7 +222,7 @@ In short: ensure your sharded controller acknowledges drain operations.
221
222
When the drain label like this is added by the sharder, the controller needs to remove both the shard and the drain label and stop reconciling the object.
When the sharder needs to move an object from an available shard to another shard for rebalancing, it first adds the drain label to instruct the currently responsible shard to stop reconciling the object.
0 commit comments