1. 05 Jun, 2018 2 commits
    • Elijah Grubb's avatar
      Add quote escaping regex · 43817132
      Elijah Grubb authored
    • Elijah Grubb's avatar
      Added default USER, HOME, and PATH environment var · d6075931
      Elijah Grubb authored
      USER is picked as the user specified by the Docker config
      or if that is empty is defaulted to root. If the USER is root
      then HOME is defaulted to /root otherwise it is set to the
      HOME found when running `env` in a sample of the container.
      PATH is set to a normal sane default.
      Any of these environment variables can be overridden in the
      Dockerfile or using profile parameters at any time. This is
      just to help users who rely on Docker providing defaults.
  2. 01 Jun, 2018 1 commit
    • David Johnson's avatar
      Add more docker clientside tools. · b0f17e8e
      David Johnson authored
      Especially libvnode_docker::analyzeImageWithBusyboxCommand, which runs
      the busybox-static binary from the root context in the container with
      the given command (and extra container run API configuration).
  3. 31 May, 2018 1 commit
  4. 30 May, 2018 4 commits
    • Leigh Stoller's avatar
      Change to run DHCP on a specific set of interfaces. When XENVIFROUTING · 3c3918cb
      Leigh Stoller authored
      is off, this is just the control net interface (xenbr0). But when
      XENVIFROUTING is on, we want to listen on the control net bridge plus
      all of the container vifs. Since these are not created until the
      container is started, we have to call restartDHCP from emulab-cnet (we
      were already doing that), and now we also call reconfigDHCP() when the
      contain is destroyed so that interface list is correct (note that DHCPD
      does not seem to care if an interface dissappears, or even if an
      interface does not exist when starting.
      The main point here, is that on shared nodes we have to restrict the
      number of interfaces that DHCPd listens on (or even looks at) since it
      can be 100s, and dhcpd was taking well over a minute to start up each
      Aside; minor change to not look at the IP config for bridges, just the
      mac. Takes to long when there are 100s of bridges.
    • Leigh Stoller's avatar
      When XENVIFROUTING is on, and going offline (call new function to · d045249f
      Leigh Stoller authored
      rewrite the interface list in /etc/defaults/isc-dhcp-server. We do
      not need to restart DHCP, it does not mind that the vif is gone.
    • Leigh Stoller's avatar
      With XENVIFROUTING on, no point in restarting DHCP when adding an entry, · 04ebcf11
      Leigh Stoller authored
      since the vif foes not exist yet, and we call restartDHCP() again in
      emulab-cnet after the container and vif exist. In fact, no point in
      restarting DHCP when removing an entry, since by that time the vif is
      gone and dhcpd does not seem to mind that anyway.
    • David Johnson's avatar
      Docker ubuntu18 support. · bee80dcf
      David Johnson authored
  5. 25 May, 2018 9 commits
  6. 24 May, 2018 8 commits
  7. 23 May, 2018 4 commits
  8. 18 May, 2018 9 commits
  9. 17 May, 2018 2 commits
    • David Johnson's avatar
      Ubuntu 18 clientside support. · d6c142be
      David Johnson authored
    • David Johnson's avatar
      Change and complete the systemd-networkd control net support for ubuntu 18. · 4144c37f
      David Johnson authored
      Turned out that I could not guarantee that emulab-networkd@.service
      would write the .network files in /run/systemd/network in time for
      systemd-networkd to notice them; so I tweaked the strategy to a slightly
      more complex path: udev rules run a simple shell script that writes the
      per-device .network files that specify dhcp on all interfaces, in
      addition to telling systemd to want emulab-networkd@<dev>.service units.
      These units wait for the control net to come up on one of the devices;
      then the winner removes the extraneous .network files and downs the
      unused interfaces and restarts systemd-networkd so it only "manages" our
      control net.
      I also improved it so that if the user writes static systemd-networkd
      configuration into /etc/systemd/network/<foo>.network, our udev rules
      still write /run/systemd/network/<foo>.network if foo is a physical
      device -- but the waiter unit and cleanup scripts do *not* down <foo>;
      they just ignore it, because they notice that systemd-networkd did *not*
      pick our /run/systemd/network/<foo>.network to manage <foo>.  So we
      should be good for integration and not squashing static user configs.
      Finally, I "completed" it in the sense that the winning
      emulab-networkd@.service unit also writes out all the /var/emulab/boot
      metadata, sets the hostname -- does what the dhclient exit hooks used to
      The only thing it does not yet handle is elabinelab dhcp "selection".  I
      need a quick semantics tutorial for that.