I’ve created a NamespacedKubeSpawner that puts each user into an individual namespace. It also comes with some convenience methods we need here at LSST to shadow NFS PVs into the user namespaces.
Thanks to Adam Tilghman (@agt-ucsd), on whose work in https://github.com/jupyterhub/kubespawner/pull/218/ mine is largely based.
Rather than doing mine as a PR to KubeSpawner, it’s a subclass that fits on top of it.