Deprecate NamespaceService
We currently (Gitaly 1.53.0) have an RPC service called NamespaceService, which offers RPC's that let the caller do arbitrary mkdir -p
, test -d
, rm -rf
and mv
commands on directories inside a Gitaly storage.
This made sense pragmatically during the Gitaly migration project but now that we are moving on to Gitaly HA, this may be a problem.
There are two scenarios:
Gitaly HA works at the level of Gitaly storages
In this case at least it makes sense where we should route Namespace RPC's: the should go to the active storage. But we still have the extra work of deciding how to replicate the action of these RPC's, which is probably more complicated than the git fetch
we can use for Git repos.
Gitaly HA works at the level of repositories
In this case, these RPC's make less sense: if we get a CreateNamespace request (i.e. mkdir -p some/random/directory
), then what server do we route that to? How do we decide if it's successful?
I think either way it would make things easier for Gitaly HA if "namespaces" (directories) were not a Gitaly resource that clients can interact with.