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
New v24.2 Redpanda clusters will switch to "node-local core assignment" which means that APIs for dispatching cross-core partition moves will be different (endpoints for cross-core and cross-node movements will be different).
To support that, the rpk cluster partitions move command has to do the following:
0. Determine if the feature is enabled by querying GET /v1/features (node_local_core_assignment feature has to be present and in the active state). If it is not, rpk should call old APIs.
Determine the current node assignment. This can be done by querying GET /v1/partitions/{namespace}/{topic}/{partition} for each moved NTP.
If the current node assignment differs from the one requested by the user, dispatch a POST /v1/partitions/{namespace}/{topic}/{partition}/replicas with the json body corresponding to the requested node assignment (e.g. [{"node_id":2, "core":0},{"node_id":3, "core":0},{"node_id":4, "core":0}] for node assignment {2, 3, 4}, cores can be arbitrary).
If the user additionally requested one or more cross-core movements (e.g. -p foo/0:1,2-1,3), for each requested core assignment dispatch a POST /v1/partitions/{namespace}/{topic}/{partition}/replicas/{node} request with the requested core in the json body (in the previous example, {node} should be 2 and the request body should be {"core": 1}.
Additionally, the following guardrails have to be implemented:
The command should never change the number of replicas. Current number of replicas can be determined from the current assignment that was queried in step 1
Assigning a core to a new replica (i.e. replica not present in the current assignment) should be forbidden.
New v24.2 Redpanda clusters will switch to "node-local core assignment" which means that APIs for dispatching cross-core partition moves will be different (endpoints for cross-core and cross-node movements will be different).
To support that, the
rpk cluster partitions move
command has to do the following:0. Determine if the feature is enabled by querying
GET /v1/features
(node_local_core_assignment
feature has to be present and in theactive
state). If it is not, rpk should call old APIs.GET /v1/partitions/{namespace}/{topic}/{partition}
for each moved NTP.POST /v1/partitions/{namespace}/{topic}/{partition}/replicas
with the json body corresponding to the requested node assignment (e.g.[{"node_id":2, "core":0},{"node_id":3, "core":0},{"node_id":4, "core":0}]
for node assignment{2, 3, 4}
, cores can be arbitrary).-p foo/0:1,2-1,3
), for each requested core assignment dispatch aPOST /v1/partitions/{namespace}/{topic}/{partition}/replicas/{node}
request with the requested core in the json body (in the previous example,{node}
should be2
and the request body should be{"core": 1}
.Additionally, the following guardrails have to be implemented:
JIRA Link: CORE-5739
The text was updated successfully, but these errors were encountered: