1. 19 Jan, 2018 1 commit
  2. 29 Nov, 2017 1 commit
    • David Johnson's avatar
      Set /etc/emulab/bossnode for emulabized Docker clients. · 90eaccec
      David Johnson authored
      Now we've found a libc (musl) whose res_init() function just returns 0
      :).  That is the final hope in tmcc's getbossnode() function.  Obviously
      this is a crappy workaround, but it is better than adding a final gasp
      like parsing /etc/resolv.conf manually.
  3. 17 Nov, 2017 1 commit
  4. 27 Oct, 2017 4 commits
  5. 26 Oct, 2017 1 commit
  6. 24 Oct, 2017 1 commit
    • David Johnson's avatar
      Add Docker serial console support. · 6f546d14
      David Johnson authored
      We do this similarly to Xen.  There's a new script (container2pty.py)
      that attaches to the Docker container, via the docker daemon, and
      exports its stdio as a pty.  Then we run capture on a symlink to that
      pty.  New options to capture tell it to keep retrying to open the pty
      maxretries times (we invoke with infinitely many retries); and to not
      prepend /dev to the device string.
  7. 05 Oct, 2017 3 commits
    • David Johnson's avatar
    • David Johnson's avatar
    • David Johnson's avatar
      Docker clientside update: use our perl API lib instead of cli and cURL. · 57089d52
      David Johnson authored
      (Of course, there is no standard perl Docker Engine API, so I wrote my
      own thin perl library, basically error handling and JSON marshalling
      goo.  But had to deal with LWP/http over UNIX socket to Docker, which
      is whacky; fortunately, there was a module, but I can confirm that LWP
      is a pain when you get off the beaten track.  Anyway, I added a little
      client that is useful for debugging.)
      Also, I refactored things a bit so there is now an emulabize-image
      script that can be run to test emulabization of docker images
      separately from vnode creation.
      Also, add a specific Docker version of the prepare script.  This
      actually gets run in image commit as an ONBUILD instruction.
      Also, always copy the image's master passwd files into /etc/emulab
      instead of using those installed by client-install.  Those just don't
      apply at all here since we have no idea what the base image is; the
      uids/gids in the clientside dirs could be a complete mismatch for the
  8. 24 Sep, 2017 1 commit
  9. 03 May, 2017 4 commits
  10. 02 May, 2017 2 commits
    • David Johnson's avatar
      Add Docker LVM infrastructure support, and LVM storage backend support. · 107228c6
      David Johnson authored
      This fixes up, improves, and enables by default the use of LVM as
      infrastructure.  Also removes some old copied LVM code from libvnode_xen.
      The Docker storage backend can still be aufs; the aufs data just gets
      stored in a massive LV if so.  Or the storage backend can also be
      devicemapper+LVM-thin-provisioning (the new default).
      See clientside/tmcc/linux/docker/README.md in this commit for more
      detail, esp on LV sizing.
    • David Johnson's avatar
      Install either Docker CE (new default) or Ubuntu Docker. · bff3807e
      David Johnson authored
      (Or we'll use either of these that's installed.)  Basically, the CE has
      been patched to be much more functional than the current Ubuntu release
      (i.e., it interferes less with bridges and actually makes a Docker
      restart possible!
  11. 01 May, 2017 5 commits
  12. 28 Apr, 2017 1 commit
    • David Johnson's avatar
      Rewrite the Docker control net init code to handle another case. · 2beadcc5
      David Johnson authored
      Had to rewrite the Docker control net init code in the case of
      !$USE_MACVLAN_CNET (i.e. use bridge for control net) and
      !$ISREMOTENODE.  To sum up, there was yet another case I hadn't thought
      a problem where Docker cannot handle our setup of the bridge (where we
      set the real control net IP as the primary ip, and the virt control net
      IP as an alias).  See comments in commit for more detail.
      Hopefully this is the last case.
  13. 27 Apr, 2017 3 commits
  14. 24 Apr, 2017 1 commit
    • David Johnson's avatar
      Clientside Docker vnode support. · 96794781
      David Johnson authored
      See clientside/tmcc/linux/docker/README.md for design notes.
      See clientside/tmcc/linux/docker/dockerfiles/README.md for a description
      of how we automatically Emulabize existing Docker images.
      Also, this mostly fits within the existing vnodesetup path, but I did modify
      mkvnode.pl to allow the libvnode backend to provide a vnodePoll wait
      loop instead of the builtin vnodeState loop.