weebo-authentik
Operator reference

Events

The Kubernetes Events the operator records on its CRs, and how to read them.

The operator records a Kubernetes Event on a CR for every error it hits and every change of its state, so kubectl describe and kubectl get events tell a CR's story without the operator's logs. An Event's reason is always one of the reason codes; its action is Reconcile, or Cleanup for the finalizer's work when the CR is deleted.

WhenTypeReasonActionNote
A reconcile ends on Ready: False — every time, not only the firstWarningthe failure's codeReconcilethe condition's message
Ready turns True, or stays True with another reasonNormalReconciledReconcilethe condition's message
An advisory condition appears or changesNormalNoAccessPolicyBoundReconcileits message
An advisory condition goes awayNormalits codeReconcile<type> no longer applies: <message>
The remote Authentik object was created for this CR.NormalCreatedReconcilewhat happened, with the remote object's id
The finalizer deleted the remote Authentik object of this CR.NormalDeletedCleanupwhat happened, with the remote object's id
A reconcile stops before writing a status (Kubernetes API call, finalizer…)WarningKubernetesApiError, AuthentikApiError, SecretStoreErrorReconcilethe error
A finalizer cleanup failsWarningthe failure's codeCleanupthe error
The finalizer finishes its cleanupNormalReleasedCleanupcleanup finished, finalizer released
The CR is force-orphaned (authentik.weebo.io/force-orphan: "true")NormalReleasedCleanupforce-orphaned (authentik.weebo.io/force-orphan): released without cleanup

Repeats

A CR that keeps failing is retried about every 30 s, and warns each time. Identical Events (same reason, note and action) are folded into one series whose count goes up, so a stuck CR shows one line, not hundreds, and the apiserver isn't flooded. A note is cut at 1000 characters.

Publishing an Event never fails a reconcile: when the apiserver refuses one, the operator logs it and carries on.

Reading them

kubectl describe <kind> <name> -n <namespace>     # Events at the bottom
kubectl events -n <namespace> --for <kind>/<name>
kubectl get events -A --field-selector type=Warning

The apiserver keeps Events for an hour by default (--event-ttl): for a longer history, ship them with an event exporter, or alert on the reconcile metrics, which carry the same codes.

On this page