spec icon indicating copy to clipboard operation
spec copied to clipboard

Removed and upgraded predicates for service, removal consideration?

Open xibz opened this issue 1 year ago • 6 comments

When creating predicates I think there are two avenues to look at:

  1. How consumer will use such event
  2. How tools can produce these events

Specifically, upgraded and removal seem questionable for 2.

For tools like Spinnaker, Argo, and Temporal, there is no concept of removed and/or upgraded. Artifacts are only ever deployed. This would only be possible if the user provided such metadata. Most deployments are automated, so it isn't too clear how these events could be generated. These are the only CD platforms I considered, so if there is a tool that does support these concepts, then these events have a purpose. I just did not find any.

I would like to start discussion on removal and/or adding for what makes sense in the CD type events.

xibz avatar Mar 25 '24 18:03 xibz

One thing we could consider if it makes sense to have something like Kubernetes that would send these events. However, would that make sense to be under CD? Or a new grouping of infrastructure?

xibz avatar Mar 25 '24 18:03 xibz

The events were indeed defined as thinking about generic deployment workflows. A service can be deployed for instance to Kubernetes using Helm, and through Helm, it is possible to upgrade the service and remove it. Tools that do not support such events can safely ignore them.

afrittoli avatar Apr 03 '24 09:04 afrittoli

I wonder if it makes sense to highlight that in the docs for these events, cause they aren't necessarily apart of CD services. So users may find it confusing.

What may be odd too, is that if helm decided to implement this along with kubernetes, wont that be duplicate events?

xibz avatar Apr 15 '24 19:04 xibz

@afrittoli to provide more context on the semantic

afrittoli avatar Oct 21 '24 15:10 afrittoli

@afrittoli - Based on your comment of "services can just ignore it", I still don't see how that would work simply. So if things get removed, would producers send two events? Removed and updated? Otherwise services who don't have a remove concept, would send updated, and any consumer would need to listen for both then? That seem complicated and seems to indicate some problem

xibz avatar Nov 08 '24 18:11 xibz

If the tools don't understand the data then the information is just for humans.

My suggestion is use a single predicate of "deployed" and push "upgraded" and "removed" down into the event.

xbcsmith avatar Nov 11 '24 16:11 xbcsmith