argoproj / argo-events

Event-driven Automation Framework for Kubernetes
https://argoproj.github.io/argo-events/
Apache License 2.0
2.35k stars 729 forks source link

Finish the field specifications in the EventBus CRD #3133

Open fullykubed opened 4 months ago

fullykubed commented 4 months ago

Is your feature request related to a problem? Please describe.

The current CRD utilizes x-kubernetes-preserve-unknown-fields for the majority of its specification instead of defining the actual fields in the OpenAPI spec.

While it'd be nice to have the fields explicitly defined so that CRDs are self-documenting, their absence also causes issues when working with certain tools like Terraform / OpenTofu.

For example, when deploying the EventBus via TF, any change in the resource definition will cause a full resource recreation (vs update) (reference). This is very problematic as this is a stateful resource and can cause data loss and/or service disruptions.

Describe the solution you'd like

Define the available fields in the CRD spec.

Describe alternatives you've considered

None

Additional context

None


Message from the maintainers:

If you wish to see this enhancement implemented please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

fullykubed commented 4 months ago

@whynowy @daniel-codefresh I was thinking of allocating some time this weekend to fleshing out the CRDs as this seems like a quick and easy win for our particular use case.

Before I jump in, I wanted to check if that seemed alright or if there was a particular reason they are kept incomplete.