Skip to content

Latest commit

 

History

History
181 lines (115 loc) · 7.84 KB

CHANGELOG.md

File metadata and controls

181 lines (115 loc) · 7.84 KB

Changelog

1.1.0 (March 31, 2017)

  • Bug fix for default rule probability in Envoy config generation. (PR#552)

  • Bug fix for TLS validation logic and Envoy config generation. (PR#549)

  • TCP proxy support added to sidecar. (PR#548)

1.0.0 (March 8, 2017)

  • Switched Amalgam8 sidecar to use Envoy proxy from Lyft. (https://github.com/lyft/envoy)

  • Support for HTTP/2, gRPC proxying (downstream and upstream).

  • Support for gRPC bridging over HTTP/1.1.

  • Support for configuring circuit breakers, bulkheads, timeouts, retries.

  • Support for different load balancing algorithms (round robin, least conn, random). (PR#494)

  • Deeper integration with Kubernetes: rules are now stored as third party resources. (PR#534)

  • A fully revamped Go based cross platform CLI (a8ctl). (PR#396)

  • Assorted bug fixes.

  • NOTE: breaking changes:

    • Removed the bulk set API. (PR#537)
    • Removed a8ctl service-list command. (PR#536)
    • Removed a8ctl traffic-set, traffic-step, and traffic-abort commands. (PR#535)

0.4.2 (November 10, 2016)

  • Bug fix for sidecar proxy host header propagation logic. (PR#384)

  • Bug fix for zombie process clean up in supervised applications. (PR#377)

0.4.1 (November 3, 2016)

  • Sidecar now supports TCP and command health checks. (PR#350)

  • Sidecar now supports DNS queries for a specified domain. DNS queries for other domains will be forwarded to upstream DNS servers. (PR#328)

  • Sidecar --supervise flag has been deprecated.

  • Sidecar now supports supervision of multiple processes. (PR#349)

  • Sidecar now logs the source IP address in the NGINX access logs. (PR#362)

  • Fixed an issue in the controller that resulted in IDs not being returned on rule creation via the API. (PR#352)

  • Updated to Go 1.7.1. (PR#345)

0.4.0 (October 13, 2016)

  • Sidecars now support HTTP health checks. The health check endpoint can be provided as part of the sidecar configuration file. When the application fails to respond to a health check, it is unregistered from the service registry, causing the instance to be removed from the load balancing pool of other sidecars upon the next refresh.

  • A special CLI mode for the a8sidecar binary that allows users to view the state inside the sidecar. (PR#335)

  • Filebeat is no longer installed/configured/managed by the sidecar. It is the user's responsibility to aggregate the sidecar's nginx access logs through a log management system of their choice.

  • Minor performance optimizations to the Lua code in the sidecar and bug fixes. Timeout support is currently disabled. Specifying timeouts in the rules will not have any effect. (PR#334)

  • Registry now supports Eureka remote catalog, similar to Kubernetes catalog. Service registration info in Eureka will now be synced with the Amalgam8 service registry automatically. (PR#247)

  • Eureka metadata tags are automatically translated into Amalgam8 instance tags in the service registry.

  • Optimizations to the redis operations used in registry code

  • The bookinfo example application is now a polyglot application, composed of services written in Java, Ruby, and Python.

  • Simplification of the demo scripts: consolidate into fewer files and eliminate unnecessary scripts.

  • All documentation has been moved to https://amalgam8.io/docs/

0.3.1 (September 20, 2016)

  • Amalgam8 nginx configuration files in the sidecar is now split into multiple files. Amalgam8 specific code has been abstracted away into separate files, and user-customizable part is now confined to location blocks in amalgam8-services.conf (PR#278)

  • Fixed invalid DNS config in kubernetes config that caused code compiled with Go 1.7.1 to fail (PR#280).

  • Fixed bug in sidecar that caused HTTP 500 when version cookie did not match any backend in the route list (PR#271).

  • Fixed bugs in bluemix deployment scripts and updated READMEs to point to the correct version of Bluemix CLI (PR#275 and PR#279).

0.3.0 (September 12, 2016)

  • The controller API has been overhauled to support a wider range of routing and fault injection rules.

  • The dependency on Kafka has been removed from controller and sidecar.

  • Sidecar now polls controller for rule changes and registry for service instance changes.

  • Controller and Registry now have support for Redis persistent storage.

  • NGINX Lua code has been overhauled to support the new rules API format from controller.

  • Options for sidecar to proxy, register, and log now default to false.

  • The default controller port is now 8080 instead of 6379.

  • A8_SERVICE is now in the form of <service_name>:<tag1>,<tag2>,...,<tagN> where <tagN> can be a version number or any other tag. Sidecar will register with registry using these tags and rules can be defined to target services with a particular set of tag(s).

  • Controller now supports single tenant (default), trusted, and JWT authentication.

  • Default authentication behavior of controller and registry is global auth, wherein they are configured to run in single tenant mode without any authentication. In this scenario, A8_CONTROLLER_TOKEN and A8_REGISTRY_TOKEN should not be provided to the sidecar.

0.2.1 (August 1, 2016)

  • Fixed #33: Panic during synchronization of the Registry's store

  • Fixed bug where controller did not send rule updates to sidecar in polling mode.

0.2.0 (July 20, 2016)

  • The controller no longer generates Nginx config files in response to changes in the service instance pool. Instead, these updates are passed on to the sidecar which in turn passes them onto the Lua code that now manages the upstreams. This decoupling of configuration management from the controller provides the user with full control over the nginx configuration in each sidecar, allowing her to customize the configuration (e.g., add HTTPS certificates, custom modules, etc.).

  • All environment variables pertaining to the controller and sidecar are now prefixed with A8_.

  • TENANT_ID is no longer needed nor accepted. Tenants are distinguished by unique authentication tokens that needs to be present in each request to the controller.

  • Nginx proxy is no longer reloaded whenever there are changes in microservices/instances. Using balance_by_lua, Nginx configuration is dynamically updated.

  • Support for registry adapters that can be used to synchronize the registry state with other service registries. The K8S adapter automatically synchronizes service registration information stored in etcd.

  • Support for statically registering TCP microservices specified in a configuration file.

  • Support for registering HTTPS endpoints

  • Several bug fixes

0.1.0 (June 28, 2016)

  • Initial release of the Amalgam8