Operations grimoire/Dwellers to DevCentral
This document is mainly historical, as DevCentral has been migrated to Equatower. As such, it can now be used from Dwellers through the regular devcentral.nasqueron.org 5022 port. These notes would apply if we would be interested to use it from Equatower, perhaps for CI/CD purpose.
This document explains how to communicate with DevCentral from the Docker host.
If you're interested to communicate between DevCentral and a Docker container, see Git operations in production containers
Rewrite remotes
ssh://vcs@devcentral.nasqueron.org:5022/diffusion/DJENKINSSLAVES/docker-jenkins-slaves.git
becomes:
ssh://vcs@devcentral.docker.ulubis/diffusion/DJENKINSSLAVES/docker-jenkins-slaves.git
See https://devcentral.nasqueron.org/T958 for discussion about DNS.
Arcanist
arc
is a wrapper to run nasqueron/arcanist
container.
To use it, create a ~/.arc
folder with:
- a
arcrc
file for your arc configuration - a
gitconfig
file for your Git configuration - a
ssh
folder with a dedicated key for Dwellers to Phabricator instances (mkdir -p ~/.arc/ssh && ssh-keygen -t ed25519 ~/.arc/ssh/id_ed25519
)
For example:
. ├── arcrc ├── gitconfig └── ssh ├── id_ed25519 ├── id_ed25519.pub └── known_hosts
That folder content will be passed as volumes to the container. In the example, known_hosts has been added by ssh client inside the container.
Don't use symbolic links (hard links are okay), they wouldn't resolve when passed as a volume to the container.
To check if all works as expected: arc shell
, then, in the container, ssh vcs@devcentral.docker.ulubis
Troubleshoot
Usage Exception: `arc diff` is only supported under git, hg, svn
You issue a command to manipulate a Git repository:
$ arc diff
Usage Exception: `arc diff` is only supported under git, hg, svn.
You must be at the root of the repository, not in a subfolder, as Arcanist needs access to the repository too and the wrapper script uses -v $PWD:/opt/workspace
to pass the current folder as workspace.
If you only use Git and not other VCS, a solution could be to copy /usr/local/bin/arc
to $HOME/bin/arc
and to replace $PWD by `git rev-parse --show-toplevel`
to pass instead of the current directory the root directory. But beware that would create inconsistent behavior like arc lint quux/foo.py
when you're already in the quux folder.