vulcand

Programmatic load balancer backed by Etcd

APACHE-2.0 License

Stars
3.1K
Committers
67

Bot releases are visible (Hide)

vulcand - Release v0.9.2 Latest Release

Published by MatthewEdge over 1 year ago

What's Changed

Full Changelog: https://github.com/vulcand/vulcand/compare/v0.9.1...v0.9.2

vulcand - Release v0.9.1

Published by thrawn01 almost 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/vulcand/vulcand/compare/v0.9.0...v0.9.1

vulcand - Release v0.9.0

Published by thrawn01 about 4 years ago

0.9.0 (2020-08-24)

  • Return error when watcher channel closes unexpectedly
  • Add memng engine option
  • Switched dependency from codegangsta/cli -> urfave/cli
  • Roll a fix for "Out of memory bug" https://github.com/vulcand/vulcand/issues/156
  • Rewrite plugin should be able to rewrite HTTP to HTTPS https://github.com/vulcand/vulcand/issues/120
  • OCSP support for cert revocation checking
  • Expose TLS settings for listeners and backends
  • Add trace plugin for structured logging of HTTP requests
vulcand - v0.8.0-beta.5

Published by thrawn01 over 4 years ago

0.8.0-beta.5 (2020-06-18)

  • Add memng engine option
vulcand - v0.8.0-beta.4

Published by thrawn01 over 4 years ago

0.8.0-beta.4 (2020-06-18)

  • Switched dependency from codegangsta/cli -> urfave/cli
vulcand - v0.8.0-beta.3

Published by klizhentas over 9 years ago

CHANGELOG.md

vulcand - v0.8.0-beta.2

Published by klizhentas almost 10 years ago

0.8.0-beta.2 (2015-01-16)

vulcand - v0.8.0-beta.1

Published by klizhentas almost 10 years ago

0.8.0-beta.1 (2015-01-14)

Bugfixes

Features

  • OCSP support for cert revocation checking
  • Expose TLS settings for listeners and backends
  • Add trace plugin for structured logging of HTTP requests
vulcand - v0.8.0-alpha.4

Published by klizhentas almost 10 years ago

Features

  • OCSP Stapling
  • TLS settings for HTTPS backends and listeners
vulcand - v0.8.0-alpha.3

Published by klizhentas almost 10 years ago

Bugfixes

  • Fix output when upserting middleware
  • Fix missing response bodies with Transfer-Ecncoding: chunked

Features

vulcand - v0.8.0-alpha.2

Published by klizhentas almost 10 years ago

Bugfixes

vulcand - Minor updates to vulcand

Published by klizhentas almost 10 years ago

Changes since last release:

  • Check for empty ids and update test suite
  • Cleanup output from command line tool
  • Make API a bit more consistent by supporting parameters
vulcand - Vulcand pre release

Published by klizhentas almost 10 years ago

Release details

Vulcand suffered from a couple of issues:

  • Inconsistent API - some methods were JSON, some multipart-form data
  • Inconsistent Etcd backend - some data structures were represented as folders, and some as JSON blobs
  • Inconsistent interface to configuration backends - complicated sequence of events generated
  • Complex and confusing naming, hosts, locations and upstreams did not resonate well with people when I was explaining the concepts.
  • Host oriented config - it was impossible to set up catch-all routes without setting a route for each possible host
  • Complex middleware specification - dependency on complex vulcan library interfaces

Implementation

This is a big rewrite of Vulcand that introduces the following concepts:

Frontends and Backends

HAProxy-style frontend and backend configuration. Frontend controls middlewares and matches routes, backends control transport settings to clients and load balancing between pool of servers.

Moreover each frontend and backend has now explicit type what opens the doors for different protocols

Middlewares

Middlewares do not longer depend on the vulcan library that has been deprecated, instead middlewares are fully compatible with http.Handler standard library interface what makes them easier to understand.

Etcd format changes

Frontend, Backend and middlewares are now JSON objects what fixes various problems when it was possible to create an object in the inconsistent state because it required to set up multiple sub-keys.

API changes

API is now consistent and is all 100% JSON unified interface.
Instead of CRUD API now implements UPSERT/DELETE cycle what works better in practice for Vulcand configuration

CLI changes

vulcanctl and vulcanbundle were renamed to vctl and vbundle to make it more convenient for everyday typing.

New format example

etcdctl set /vulcand/backends/b1/backend '{"Type": "http", "Settings": {"MaxIdleConnsPerHost": 128}}'
etcdctl set /vulcand/backends/b1/servers/srv1 '{"URL": "http://localhost:5000"}'
etcdctl set /vulcand/frontends/f1/frontend '{"Type": "http", "BackendId": "b1", "Route": "Path(`/`)"}'