Because kubernetes_asyncio watcher have correctness issues,
as they seem to re-emit events that pre-date the initial load.
Although I ended up having to implement an infinite watcher,
to handle socket timeout errors...
It turns out that init containers do not work, as we
can't easily detect failures and access init log as they
restart constantly. So we use initialization jobs.
We take the opportunity to use cleanup jobs too, so
all knowledge of runtime content is in the kubefiles.