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)

Open
#796 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.