kubero-dev / kubero-dev/kubero
Editing an app via the UI overwrites the full KuberoApp CR spec, silently dropping fields not managed by the UI (e.g. podAnnotations)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 4.4k
- Forks
- 212
- PR merge metrics
- No merged PRs in 30d
Description
Which component(s) is affected?
Kubero version: v3.1.1
Describe the bug
When a KuberoApp CR has a field set directly (e.g. via kubectl patch) that isn't exposed anywhere in the Kubero UI — in my case, spec.podAnnotations used for Vault Agent Injector annotations — saving any unrelated change through the UI wipes that field back to empty. This suggests the UI's save action replaces the entire CR spec with only the fields the UI form itself manages, rather than merging/patching just the fields that were edited.
Steps to reproduce
Patch a KuberoApp CR directly to set a field the UI doesn't expose, e.g.:
kubectl patch kuberoapp -n --type merge -p '{"spec":{"podAnnotations":{"example":"value"}}}'
Confirm it's present: kubectl get kuberoapp -n -o jsonpath='{.spec.podAnnotations}'
Make any unrelated edit through the Kubero UI (e.g. remove an environment variable) and save
Re-check the CR — spec.podAnnotations is now empty
Expected behavior
UI saves should only modify the fields actually changed through the form; other CR fields, including ones not managed by the UI, should remain untouched.
Actual behavior:
The UI save silently overwrites the full spec, dropping fields outside its own schema. No warning or confirmation is shown.
Screenshots
No response
Additional information
This directly broke a working Vault Agent Injector integration for secret injection after an unrelated UI edit. Happy to provide more detail if useful.
Debug information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Kubero UI save action and follow the KuberoApp CR update path, focusing on how the form handles fields outside the UI schema. Reproduce the issue with kubectl and spec.podAnnotations, make an unrelated UI edit, and verify that the annotation remains after saving.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, typescript
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100