Search code examples
kubernetesargo-events

Unable to update or delete existing argo events sensor and EventSource


Experiencing issue while modifying or deleting an existing argo events sensor.

Tried to modify a sensor

  • I tried to apply changes to an existing sensor.
  • But new changes are not taking effect. When it gets triggered, it is still using old triggers.

Tried to delete a sensor

  • Unable to delete. kubectl delete hangs forever. Only way is to delete whole namespace.

Using :

  • Argo-events version - v1.7.5
  • Kubernetes - v1.24.4+k3s1 ( testing in local - docker-desktop with K3d )

Since deleting everything & redoing is not an option when working in production environment, like to know if it's a known issue with argo-events or if I am doing something wrong.


Solution

  • As of release v1.7.5, there is a bug in default sensor & eventSource kubernetes resource yaml values.

    apiVersion: argoproj.io/v1alpha1
    kind: Sensor
    metadata:
    ....
      finalizers:
      - sensor-controller
    ....
    
    • It has finalizers as sensor-controller.
    • In v1.7.0+, argo events team has merged sensor controller & source controller into argo-events-controller-manager.
    • I believe, event sensor and event source are pointing to wrong controller
    • It should ideally be pointing to argo-events-controller

    To resolve this issue till this bug is fixed in argo-events kubernetes charts:

    Update your sensor & event source definitions to have finalizers as empty array.

    # example sensor with empty finalizers
    apiVersion: argoproj.io/v1alpha1
    kind: Sensor
    metadata:
      name: minio
      finalizers: []  # <-- this one
    spec:
      dependencies:
        - name: test-dep
          eventSourceName: minio
          eventName: example
      triggers:
        - template:
            name: http-trigger
            http:
              url: http://http-server.argo-events.svc:8090/hello
              payload:
                - src:
                    dependencyName: test-dep
                    dataKey: notification.0.s3.bucket.name
                  dest: bucket
                - src:
                    dependencyName: test-dep
                    contextKey: type
                  dest: type
              method: POST
          retryStrategy:
            steps: 3
            duration: 3s