1. 14 Oct, 2021 1 commit
    • Georges Racinet's avatar
      heptapod_runner.local_docker: configurable Docker API URL · a2e3231dc6aa
      Georges Racinet authored
      This executor is for testing purposes anyway, but the previous
      default was tailored to a very specific experiment, so we
      get back to a saner default while providing ways to customize from
      config (using the standard `host` config item)
      
      --HG--
      branch : heptapod
      a2e3231dc6aa
  2. 07 Oct, 2021 4 commits
  3. 06 Oct, 2021 4 commits
  4. 05 Oct, 2021 1 commit
  5. 27 Sep, 2021 7 commits
  6. 26 Sep, 2021 11 commits
  7. 25 Sep, 2021 1 commit
    • Georges Racinet's avatar
      Heptapod PAAS Runner: signal handler for graceful shutdown · 5ca3e778bd7a
      Georges Racinet authored
      SIGTERM is the signal used by default by systemd when stopping or
      restarting a service. With `SLEEP_STEP_DURATION` set to 2 seconds,
      and the final wait for the event processing thread set to 60 seconds
      (iself waiting for termination of the launcher threads),
      it should be less than usual values for systemd's `TimeoutStopSec`
      (default of `DefaultTimeoutStopSec` is 90 seconds).
      
      SIGINT (aka KeyboardInterrupt) will be useful for direct testing
      from a terminal.
      
      --HG--
      branch : heptapod
      5ca3e778bd7a
  8. 27 Sep, 2021 1 commit
  9. 25 Sep, 2021 3 commits
  10. 24 Sep, 2021 3 commits
    • Georges Racinet's avatar
      heptapod_runner.paas_dispatcher: graceful shutdown capability · 73482d359df9
      Georges Racinet authored
      This introduces the `shutdown_required` attribute, which will
      trigger early returns in the different code paths involved.
      
      Because some threads spend most of the time sleeping (by default
      for 30s in the progress thread for launched jobs), we also
      provide the means to interrupt those sleeps (by cutting in smaller
      naps of 2 seconds).
      
      There is at this point no triggering of the shutdown, except when
      exiting the main callable, so that all remaining threads terminate
      in at most 2 seconds. The effect can be felt in the error case of
      `test_main()`
      
      --HG--
      branch : heptapod
      73482d359df9
    • Georges Racinet's avatar
      heptapod_runner.paas_dispatcher: avoid going over max concurrency · 6d61ece8b08c
      Georges Racinet authored
      It was possible for a poll to happen between the job disparition
      from the set of jobs to launch and its apparition in the set of
      launched jobs.
      
      This actually replaces a race condition by another: we can
      now waste a poll cycle instead of going over max concurrency.
      But it cures some test flakiness, and that is today our primary
      concern.
      
      --HG--
      branch : heptapod
      6d61ece8b08c
    • Georges Racinet's avatar
      heptapod_runner.paas_dispatcher: debug logs for race conditions · 3320982ee202
      Georges Racinet authored
      --HG--
      branch : heptapod
      3320982ee202
  11. 26 Sep, 2021 2 commits
  12. 23 Sep, 2021 1 commit
    • Georges Racinet's avatar
      Heptapod PAAS Runner: service aliases for Dependency Proxy · 2f5ec1f81052
      Georges Racinet authored
      Changing the image name also changes the resulting default alias to something
      like `foss.heptapod.net__heptapod__dependency_proxy__containers__redis`.
      Of course this breaks the expectations of existing job definitions,
      so we need to add an explicit alias in this case.
      
      People using the Dependency Proxy have explictely put its prefix in their
      URLs, so are either using the long impicit alias or simply defined their
      own. That's why its not a problem with normal usage.
      
      --HG--
      branch : heptapod
      2f5ec1f81052
  13. 03 Sep, 2021 1 commit
    • Georges Racinet's avatar
      heptapod PAAS runner: variable expansion for dependency proxy · 75fed9845f99
      Georges Racinet authored
      Not doing it means that image specifications such as `$BASE_IMAGE/project`
      are all considered to come from Docker Hub, whereas this is typically
      a pattern used not to harcode the local registry name (encouraged in
      GitLab CI/CD doc beside being common sense).
      
      The expansion is recursive (we don't expect it to reach Python recursion
      limits), which is different from the unsupported nested syntax. There
      are know projects in the wild using a cascade of variables for image
      definition, HGitaly being our prime example of that.
      
      --HG--
      branch : heptapod
      75fed9845f99