Version 0.2.1 - 2018-12-07
- Fix a bug causing crashes when using remote healthchecks
Version 0.2.0 - 2018-12-06
- Upgrade to build with Go 1.11
- Support multiple NICs on a machine
- Check EC2 instance healthchecks as well as route blackholing so that routes wil be replaced if held by an instance that is impaired as well as just terminated.
- Fix race condition with healthchecks so that routes cannot be taken over before the healthcheck has passed.
Version 0.1.5 - 2017-05-19
- Add by_tag_regexp matcher to the route tables finder (ashb)
- Upgrade to build with Go 1.8
Version 0.1.4 - 2017-05-19
- Drop Gom due to it being more hassle than it's worth
- Use foked version of logarus as sirupsen changed his github account name (breaking all imports) without updating all of the logarus code, so upstream is currently unuseable
- Upgrade to build with Go 1.7
Version 0.1.3 - 2016-12-19
- Add version to the user agent sent.
- Upgrade AWS SDK
- Additional paranoia and debug logging
Version 0.1.2 - 2016-04-15
- Initial support for running hooks on creating/deleting routes. Not yet documented or fully tested, but this is the first part of fixing issue #1
- Switch from Godep to Gom to manage dependencies.
- Upgrade aws-sdk-go to the latest upstream version.
Version 0.1.1 - 2016-03-05
- Add a 'command' healthcheck type.
- Documentation updates / improvements
- Better type conversions in the "config" attribute for health checks (Fixes #6)
Version 0.1.0 - 2016-02-01
- Add the ability to negotiate SSL connections when doing healthchecks.
- Remove some of the scary warning text from README
Version 0.0.10 - 2015-12-05
- First version with working remote_healthchecks
Version 0.0.9 - 2015-12-04
- Fix various crash cases
- Almost working remote_healthchecks
- More improvements to error reporting in configuration
Version 0.0.8 - 2015-11-29
- Fix crash on route tables which don't have an instance-id attached.
- More improvements to error reporting in configuration
- Make the error reporting of healthcheck configuration better by reporting all errors at once, rather than the first one.
Version 0.0.7 - 2015-11-28 BROKEN DO NOT USE
- Make config tell you about all the errors found when dieing at startup, rather than just the first one found.
- Now requires the ec2:DescribeInstanceAttribute permission to run.
- Local instance is checked for src/destination check being disabled at startup. If not disabled AWSnycast will quit with an error message (as you need this disabled for either NAT boxes or those handinging Anycast addresses)
- Add a -syslog CLI flag, which will cause the logs printed on STDOUT to be duplicated to syslog.
- When replacing an existing route, log the old and new instance IDs, and the route state.
- Improved unit tests - added coverage.
- Additional work towards the remote_healthchecks feature working.
Version 0.0.6 - 2015-11-13
- Build .deb and .rpm packages for Linux as part of the release process
Version 0.0.5 - 2015-11-13
- Build a .deb package for amd64 as part of the release process
- Add additional methods to find route tables
- More logging improvements
- Fix the integration tests to not run Terrafom themselves
Version 0.0.4 - 2015-11-13
- Make the logging much better, with more context to log messages
- Make debug mode output more verbose debug logging
- Add integration tests of Anycast functionality
- Make the integration test environment useful again
- Start using the 'godep' tool to freeze dependencies
Version 0.0.3 - 2015-11-12
- Add much better documentation
- Add the ability to setup a route finder which does not bomb out it doesn't find anything
Version 0.0.2 - 2015-11-12
- Make the interval between polls to AWS for the current routing tables be configurable with the top level poll_time key. (Defaults to 300s)
- Add a never_delete flag which can/should be used with the default route (0.0.0.0/0) when providing NAT service to not delete the route if connectivity to a healthcheck location fails.
- Expand route filters with two new types 'and' and 'or'. These both take a single config key, 'filters', which is a list of other filters to and/or together. If you have a few consistent tags on your route tables then you can use this to create logic for finding sets of route tables, rather than having to hard code route table names/numbers/etc into the config.
- Update to the breaking changes in the latest version of aws-sdk-go
- Deb packaging example added to the repository
- Expand the integration test examples to use all the features above, and have an example of an Anycast type service and not just NAT.
Version 0.0.1 - 2015-10-25
- Well, @garethr put this in devops weekly, so I guess I should cut a binary release.
- Currently working feature set:
- NAT (0.0.0.0/0) or Anycast (/32) routes can be injected into route tables found by tags, when healthchecks pass.
- Simple ping / tcp healthchecks work. (I think maaaybe you can do HTTP with this, but haven't tried it in the integration tests yet!)
- Routes are deleted if owned by the current instance and the healthcheck starts failing.
- Routes are added if not present (or attached to an instance/ENI which is dead / blackholing traffic) as soon as healthchecks start passing
- AWS is polled (DescribeRouteTables) every 300s.
- Important things which don't work.
- Do not try this if you have multiple VPCs in the same region, with the same tags on routing tables, you will have a bad time.
- HA/takeover is only done for blackholed traffic (dead instance/disconnected ENI). You cannot (yet) healthcheck other instances (e.g. the current instance providing a route) - so if an instance gets a route, AWSnycast stops running on that instance, and the service breaks, then it'll not be fixed until you manually stop or terminate the unhealthy instance!