<p>I'm working on a mysql users operator and I'm somewhat stuck on what's the proper way to report any issues.</p>

<p>The plan is to watch on CRD for <code>MysqlUser</code> and create <code>Secret</code>s and mysql users in the specified DB. Obviously, either of that can go wrong, at which point I need to report an error.</p>

<p>Some k8s object track events in the <code>status.conditions</code>. There's also the <code>Event</code> object, but I've only seen that used by kubelet / controllermanager insofar.</p>

<p>If say, I have a problem creating mysql user because my operator cannot talk to mysql, but otherwise the CRD is valid, should it go to event or to CRD's status?</p>

<p>This sounds similar to events reported from volume plugin (kubelet) where, for example, kubelet is unable to mount a volume from NFS server because server address is invalid, thus can not take to it.</p>

<p>Tracking events in <code>status.conditions</code> is less useful in this scenario since users typically have no control over how kubelet (or operator in your case) interacts with underline resources. In general, <code>status.conditions</code> only signals the status of the object, not why it is in this condition.</p>

<p>This is just my understanding of how to make the choice. I don't know if there is any rules around it.</p>
