kluctl icon indicating copy to clipboard operation
kluctl copied to clipboard

Kluctl should warn about fields being added by other field managers which Kluctl can't remove

Open codablock opened this issue 2 years ago • 3 comments

Command

  • [ ] check-image-updates
  • [ ] delete
  • [X] deploy
  • [X] diff
  • [ ] helm-pull
  • [ ] helm-update
  • [ ] list-images
  • [ ] list-targets
  • [ ] poke-images
  • [ ] prune
  • [ ] render
  • [ ] seal
  • [ ] validate
  • [ ] version

Who are you?

Maintainer of Kluctl

What do you want to do?

Currently, Kluctl does not warn the user when fields can't be removed from an object that got manually added via tools like kubectl or k9s. This is due to the second point in Using Server-Side Apply in a controller.

Kluctl should be able to guess which fields got added externally and can't be removed anymore and then warn the user about such fields.

Why do you need that?

Otherwise, the user might run into very unexpected behaviour, as a diff/deploy does not show that the object has diverged from the local declaration.

codablock avatar Jan 09 '23 10:01 codablock

Hello! I was exploring kluctl for evaluation purposes and initially intended to pose a related question in an issue. However, I discovered that this question has already been addressed in this thread.

Is the issue focused on identifying manually added changes and then displaying them in the diff? For instance, if an object in Git is initially defined as follows:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-pushgateway
  labels:
    app: prometheus-pushgateway

But then someone uses kubectl edit to add an additional label, making the object appear like this:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: prometheus-pushgateway
  labels:
    app: prometheus-pushgateway
    something: banana

Should kluctl be able to detect that metadata.labels.something: banana addition was made? This would be a distinctive feature, as I haven't come across any Kubernetes deployment tool that can perform this task and show nice diff like kluctl.

mirsafari avatar Nov 08 '23 17:11 mirsafari

@mirsafari Yes, the long-term goal is to show all fields unknown to kluctl that were added by an external source. So your example would be covered as well. I plan to show this in diffs and in the Webui as well, as part of the drift shown on targets.

May I ask how you found out about Kluctl? This will help me to better understand how Kluctl is positioned and how people perceive it.

codablock avatar Nov 08 '23 21:11 codablock

Awesome, thanks for fast reply.

I saw it maybe a year ago mentioned somewhere on Reddit, but I started looking more into it now. The two Rawkode Youtube sessions are very,very good for introduction, so this is where I got the most information. I follow the Rawkode channel, so probably they poped up on Youtube search in the first place when I was looking for some video materials for kluctl

mirsafari avatar Nov 09 '23 08:11 mirsafari