Search code examples
authorizationtokennats.ioargo-events

Argo events Authorization to eventbus internal NATS


I am trying to connect Argo event source to internal Argo eventbus NATS server. I configured event source

spec:
  nats:
    subtask-create:
      url: nats://eventbus-default-stan-svc:4222
      jsonBody: true
      subject: task-create-finished
      auth:
        clusterID: eventbus-default
        token:
          name: client-auth
          key: eventbus-default-client

but creating eventsource cannot finish and eventbus-controller log contains

{"level":"info","ts":1634109821.5641801,"logger":"argo-events.eventsource-controller","caller":"eventsource/resource.go:92","msg":"deployment is created","namespace":"argo-events","eventSource":"my-nats","deploymentName":"my-nats-eventsource-6x9fl"}

Which log can give me more information?


Solution

  • The problem is wrong token information. The right way is

    spec:
      nats:
        subtask-create:
          url: nats://eventbus-default-stan-svc:4222
          jsonBody: true
          subject: task-create-finished
          auth:
            token:
              name: nats-eventbus-token
              key: client-auth
    

    so key is name of key inside of secret which is named in element name. The token has to be inserted in decoded form without quotes and tag. Put it into file and create like this:

    kubectl create secret generic nats-eventbus-token --from-file=client-auth=file