argoproj-labs/argocd-operator

Add a new custom resource to manage the argocd-notifications-cm

Closed this issue · 1 comments

Is your feature request related to a problem? Please describe.
Currently, Argo CD Operator supports Notifications as Beta. One of the primary reasons for this is, Argo CD Operator does not manage the configuration(templates, triggers, services, subscriptions e.t.c.,.) of the the argocd-notifications-cm.

Triggers, Templates, Services and Subscriptions can be so huge at times that it creates a bad user experience if they are added to the Argo CD CR and managed by the Argo CD Reconciler of the Argo CD Operator.

Describe the solution you'd like

  • It is better to create a new CR - NotificationsConfiguration that can be used by the Users to update the their custom templates, triggers e.t.c.,.
  • A new reconciler will watch this CR to update the argocd-notifications-cm.
  • argocd-notifications-cm should be created with default triggers, templates e.t.c.,. OOTB.

Additional context
Sample NotificationsConfiguration resource

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration
spec:
 triggers:
  trigger.on-sync-status-unknown: |
    - when: app.status.sync.status == 'Unknown'
      send: [my-custom-template]
 templates:
  template.my-custom-template: |
    message: |
      Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

Sorry for replying on a close issue. But does this feature also work with extremely large created argocd notifications configmaps? We have a situation where we needed to do a server side apply of the configmap because it became large. Does the shift to CRD's still allow us for those large configmaps?