Summary
The Milo controller manager uses a hardcoded namespace (datum-system) for leader election. This causes instances deployed in other namespaces to reconcile resources from the datum-system environment/namespace, leading to unexpected reconciliation loops and property flapping in CRDs.
Context
Controllers in different environments (e.g. preview namespaces) still participate in the same leader election due to the fixed datum-system namespace. This leads to multiple Milo instances managing the same resources.
Root Cause
In cmd/milo/controller-manager/controllermanager.go, the leader election namespace is fixed to datum-system: