1. 20 Jul, 2021 2 commits
  2. 08 Feb, 2019 4 commits
  3. 30 Jan, 2019 2 commits
  4. 17 Jan, 2019 6 commits
    • Christian Cremer's avatar
      Merge branch 'procpoll1' into 'master' · a681c3ef
      Christian Cremer authored
      Update dependencies, terminate along with Keepalived
      See merge request !9
    • Michael Hanselmann's avatar
      Terminate after Keepalived process has gone away · 04ef934d
      Michael Hanselmann authored
      Keepalived does not terminate long-running notification programs when
      exiting. In addition Keepalived may be terminated through other means
      such as SIGKILL. In such cases the IP address updates must stop as soon
      as possible. As of Keepalived 1.2, shipped with OpenShift 3.9, there is
      no mechanism to reliably detect that Keepalived has terminated. Later
      versions have support for FIFOs to communicate to notification programs.
      Therefore the only reasonable method is to locate the process ID of
      Keepalived and polling for its validity in a regular interval.
    • Michael Hanselmann's avatar
      Update dependencies · b3667842
      Michael Hanselmann authored
      Among the dependencies are more recent versions of the Exoscale API
    • Michael Hanselmann's avatar
      Switch to github.com/satori/go.uuid · 8f4b8288
      Michael Hanselmann authored
      The Exoscale API bindings, exoscale/egoscale, have switched from strings
      for UUIDs to satori/go.uuid. The code base used the Google UUID module
      so far. There is no strict requirement for the latter, so everything is
      switched to satori/go.uuid.
    • Michael Hanselmann's avatar
      Configure Exoscale API timeout via member · 837622e4
      Michael Hanselmann authored
      Later versions of the Exoscale API bindings, egoscale, remove the
      "NewClientWithTimeout" function.
    • Michael Hanselmann's avatar
      Replace deprecated Gem arguments · 932fa1a1
      Michael Hanselmann authored
      Apparently the "--no-ri" and "--no-rdoc" options have been removed by
      upstream. "--no-document" takes their place.
  5. 16 Jan, 2019 2 commits
  6. 13 Nov, 2018 2 commits
    • Elia Ponzio's avatar
      Merge branch 'ipcfg1' into 'master' · de39b68b
      Elia Ponzio authored
      Support specifying managed addresses in config
      See merge request !7
    • Michael Hanselmann's avatar
      Support specifying managed addresses in config · 6faf4ac3
      Michael Hanselmann authored
      Originally Ursula would always use IP addresses found in the Keepalived
      configuration. In certain configuration scenarios there are none, i.e.
      if only a program such as Ursula is meant to be invoked on state
      changes. With this change it becomes possible to list addresses to be
      managed in the configuration file. They override any found in the
      Keepalived configuration.
  7. 24 Sep, 2018 5 commits
  8. 19 Sep, 2018 3 commits
    • Michael Hanselmann's avatar
      Use Cloudscale meta service to discover server UUID · 5a837e86
      Michael Hanselmann authored
      The Cloudscale API identifies servers by their unique ID, a UUID. So far
      it was necessary to either specify an explicit UUID ("server-uuid") or
      a map from hostname to UUID ("hostname-to-server-uuid"). In July 2018
      Cloudscale have started to export the server UUID via the OpenStack
      metadata service.
      Just like Exoscale the code tries to discover the UUID upon start and
      implements retries for failures.
    • Michael Hanselmann's avatar
      Longer timeout, log errors during Exoscale metadata discovery · dbe08501
      Michael Hanselmann authored
      When the discovery of the Exoscale instance metadata failed only the
      last failure was returned. For debugging it may be helpful to be able to
      get more detailed logs. Write all errors as debug messages.
      The timeout for retrieving metadata is doubled from 5 to 10 seconds.
      While a longer outage still leads to a permanent failure it gives the
      process more time to retrieve the metadata.
    • Michael Hanselmann's avatar
      Update third-party dependencies · 572556a8
      Michael Hanselmann authored
  9. 13 Sep, 2018 1 commit
  10. 07 Sep, 2018 1 commit
    • Michael Hanselmann's avatar
      Add Debian and RPM packaging · ad2fbf35
      Michael Hanselmann authored
      So far the static Ursula binary was only packaged in a Docker container. With
      this change FPM[1] is used to also create Debian and RPM packages. These
      packages don't conform to all standards, i.e. they contain no changelog. The
      alternative of building full-fledged packages was considered too elaborate as
      it would require providing Go and dependencies on the respective systems.
      The build chain also includes an image for FPM. That will be moved to
      a separate location with time.
      [1] http://fpm.readthedocs.io
  11. 06 Sep, 2018 2 commits
  12. 05 Sep, 2018 1 commit
    • Michael Hanselmann's avatar
      Update to Go 1.11 · 5de37585
      Michael Hanselmann authored
      In Go 1.11 "go test" automatically runs "go vet". Therefore it's no longer
      necessary to call the latter directly.
  13. 30 Jul, 2018 2 commits
  14. 16 Jul, 2018 3 commits
    • Michael Hanselmann's avatar
      Use multiplier above 1 for repeated refreshes · f2938ff6
      Michael Hanselmann authored
      Commit 5b4dcd0c updated the code to refresh IP addresses faster after
      becoming master. In the process the initial delay was adjusted, but the
      multiplier was left at 1.0. It's necessary to use a multiplier above
      1 to actually have increasing delays.
    • Michael Hanselmann's avatar
      Configure OOM killer · beee603c
      Michael Hanselmann authored
      OpenShift router nodes may run into OOM situations which aren't noticed
      on time. In at least one instance Ursula was terminated and Keepalived
      disagreements over which instance should be master led to an unreachable
      IP address.
      Configure the OOM killer to never consider killing Ursula.
    • Michael Hanselmann's avatar
      Repeat refreshes faster after becoming master · 5b4dcd0c
      Michael Hanselmann authored
      When multiple Keepalived instances are involved they may disagree over
      who's master for a short period of time, at least when considering the
      asynchronous nature of the notification programs (classic race
      conditions). By redoing the IP address refreshes more often after
      becoming master possible unreachability should be reduced.
  15. 13 Jul, 2018 4 commits