Skip to main content

A python tool which adds Rancher services to Consul based on label selectors

Project description

Rancon (aka rancher-consul)

We use consul as a service discovery mechanism, and a Consul-template / HAProxy combination to route traffic into our services. This python script is a helper to automatically enter Rancher services into Consul based on Rancher label selectors, so they can picked up by the load HAProxy load balancing layer.

This might not be of any use to anybody but me, but I’ll make it public anyway because I did not find another solution so I had to write it, and maybe someone else has the same problem.



Date: 2017-06-07

  • FIX: made “/” URL path work again (threw HTTP 500 because of code error)

  • FIX: way better exception handling, the registration cycle is no longer aborted if an exception occurs

  • FIX: the consul backend handles a connection error gracefully now


Date: 2017-01-19

  • FIX: again some critical fixes in consul backend (don’t use v0.16)

  • FIX: cleanup ID now includes rancher environment name ( change)

  • FEATURE: contrib/congler helper added, script to delete and list services


Date: 2017-01-19

  • FIX: small internal bug fix which should never have triggered

  • CHANGE: cleanup ID now different, removal of standard “rancon” tag

  • CHANGE: output of a bit different

  • CHANGE: log outputs changed partially

  • INTERNAL: some code refactorings


Date: 2017-01-19

  • FEATURE: make consul urls dynamic (use %HOST% etc. placeholders)

  • FEATURE: deregistering uses the correct consul instances, not blindly “the ones registered with”


Date: 2017-01-06

  • FEATURE: add metric “rancon_registration_exceptions”


Date: 2017-01-05

  • Very confused version. Maybe it’s 0.14.0 already? Don’t use.


Date: 2017-01-04

  • FEATURE: add version number to ‘/’ URL path & prometheus metrics


Date: 2017-01-04

  • FIX: startup script processes env names with spaces now


Date: 2017-01-03

  • FIX: Service tag replacment exception


Date: 2017-01-03

  • FEATURE: Add “web interface” (basically only for metrics and health check)

  • FEATURE: Add health check under /health

  • FEATURE: Add prometheus metrics under /metrics

  • CHANGE: Deregistration behavior for services which failed registration (was: unregister, is now: keep)


Date: 2016-06-15

  • CHANGE: convert IDs, tags, names to all lowercase in consul

  • CHANGE: do not allow non-url characters in service IDs (basically nothing but [a-z0-9-])


Date: 2016-06-15

  • BREAKING: -i/--id parameter no longer global, moved to cleanup_id parameter of backend

  • CHANGE: output now logging based, so all to stderr, and -vvvv flags possible

  • FIX: bug in service lookup in Rancher

  • OPEN: https connections


Date: 2016-06-15

  • FEATURE: authentication now used

  • FIX: bug in service lookup in Rancher

  • OPEN: https connections (untested, might work)


Date: 2016-06-09

  • More verbosity during init process


Date: 2016-06-09

  • Unified naming scheme of used environment variables

  • Added convenience script “”

  • Dockerfile fixes

  • Doc fixes


Date: 2016-06-07

  • Initial PyPI release

  • module works, docker setup not tested yet

  • documentation unfinished / not present

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

rancon-0.17.1-py3-none-any.whl (20.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page