nats-io / nack

NATS Controllers for Kubernetes (NACK)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

State of stream and actual state might be different

wallyqs opened this issue · comments

A result of doing kubectl get streams can show:

kubectl get streams
NAME   STATE     STREAM NAME   SUBJECTS
foo    Errored   foo           ["foo","foo.\u003e"]
foo2   Errored   foo2          ["foo2","foo2.\u003e"]
foo3   Created   foo3          ["foo3","foo3.\u003e"]

Although there is no issue with the streams themselves:

nats stream ls -s nats://nats:4222 --tlsca nack105163165/default/a/ca.c...  Waldemars-Air-2: Fri Oct 29 11:26:23 2021

Streams:

        foo
        foo2
        foo3

Also need to encode it to HTML maybe to avoid entities in the subjects when using wildcards?

Sounds similar to several scenarios I encountered. E.g. JetStream was not enabled so Stream CRD is now permanently errored even after JetStream is enabled. Seems I have to delete and re-create the Stream CRD in order to fix. I wish the operator was able to recover from Errored states automatically.

Yeah, we are also experiencing issues where state in the JS cluster isn't reflected back to the CR's. Say for example we define a stream and several consumers of that stream, if the stream is deleted, the consumers still show in k8s as being ok. Ideally some kind of continuous reconciliation should be in place to make sure that what is defined in the CR is what is in JS, or the status updated accordingly.