Skip to content

[v26.1.x] redpanda: don't error on unknown property removal in admin_server::patch_cluster_config_handler()#30060

Merged
WillemKauf merged 2 commits intoredpanda-data:v26.1.xfrom
vbotbuildovich:backport-pr-30054-v26.1.x-867
Apr 3, 2026
Merged

[v26.1.x] redpanda: don't error on unknown property removal in admin_server::patch_cluster_config_handler()#30060
WillemKauf merged 2 commits intoredpanda-data:v26.1.xfrom
vbotbuildovich:backport-pr-30054-v26.1.x-867

Conversation

@vbotbuildovich
Copy link
Copy Markdown
Collaborator

Backport of PR #30054

... `admin_server::patch_cluster_config_handler()`

For example, If I put an unknown property into the `config_cache.yaml`
or directly force it through the AdminAPI with a command like

```
curl -X PUT 'http://localhost:9644/v1/cluster_config?force=true' \
     -H 'Content-Type: application/json' \
     -d '{"upsert": {"my_fake_property": "true"}, "remove": []}'
```

Then it will be persisted to the configuration system via the
`config_cache.yaml`, as well as the controller log/snapshots.

```
willem@bloom:~/redpanda$ rpk cluster config status
NODE  CONFIG-VERSION  NEEDS-RESTART  INVALID  UNKNOWN
0     24              false          []       [my_fake_property]
1     24              false          []       [my_fake_property]
2     24              false          []       [my_fake_property]
```

Up till now, an admin API deletion request would be unable to remove
this without `?force=true`, instead returning an error:

```
$ curl -X PUT 'http://localhost:9644/v1/cluster_config' \
     -H 'Content-Type: application/json' \
     -d '{"upsert": {}, "remove": ["my_fake_property"]}'
 {"my_fake_property":"Unknown property"}
```

We can choose to be silent about this instead, for the property we may
be attempting to remove (very validly without removing guardrails in place
via `?force=true`) _could_ be one of these unknown properties.

Remove erroring on this path and instead apply the update.

(cherry picked from commit a6fee11)
@vbotbuildovich vbotbuildovich added this to the v26.1.x-next milestone Apr 3, 2026
@vbotbuildovich vbotbuildovich added the kind/backport PRs targeting a stable branch label Apr 3, 2026
@WillemKauf WillemKauf enabled auto-merge April 3, 2026 03:24
@vbotbuildovich
Copy link
Copy Markdown
Collaborator Author

CI test results

test results on build#82711
test_status test_class test_method test_arguments test_kind job_url passed reason test_history
FLAKY(PASS) ControllerLogLimitMirrorMakerTests test_mirror_maker_with_limits null integration https://buildkite.com/redpanda/redpanda/builds/82711#019d5179-b9af-4331-bba3-53bc1ab44afd 10/11 Test PASSES after retries.No significant increase in flaky rate(baseline=0.0337, p0=1.0000, reject_threshold=0.0100. adj_baseline=0.1000, p1=0.3487, trust_threshold=0.5000) https://redpanda.metabaseapp.com/dashboard/87-tests?tab=142-dt-individual-test-history&test_class=ControllerLogLimitMirrorMakerTests&test_method=test_mirror_maker_with_limits

@WillemKauf WillemKauf merged commit 69bfcb6 into redpanda-data:v26.1.x Apr 3, 2026
21 checks passed
@piyushredpanda piyushredpanda modified the milestones: v26.1.x-next, v26.1.2 Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/redpanda kind/backport PRs targeting a stable branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants