Add shareable providers
Provides the ability for sharing a provider across namespaces. Provides the ability for multiple alerts to share the same provider and post to different channels.
This avoids having to create a single provider for each channel created, reducing the number of necessary CRs when a provider can support multiple channels.
This avoids having to create a secret in every namespace that needs to use a provider to send notifications, which might not be desirable not only because of the sheer number of required objects, but also because the secret that the provider uses might not be something we want to share with owners of other namespaces.
Overall, this alleviates the usage of providers and alerts in large multi-tenant environments, as well as in smaller environments that might want to simplify their usage.
This also does not change the current default behaviour. Providers are still namespace bound by default unless specifically allowed in their spec to be used across namespaces, for security reasons.
Addresses #125
@stefanprodan would you be able to take a look? 👀 Thanks! :D
This needs an RFC https://github.com/fluxcd/flux2/tree/main/rfcs
Here you go @stefanprodan https://github.com/fluxcd/flux2/pull/4612 :)