Operations grimoire/Dwellers to DevCentral

From Nasqueron Agora

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:

  1. a arcrc file for your arc configuration
  2. a gitconfig file for your Git configuration
  3. 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.