mirror of https://github.com/status-im/consul.git
70 lines
5.5 KiB
Plaintext
70 lines
5.5 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: 0.7.x
|
|
description: >-
|
|
Consul ECS release notes for version 0.7.x
|
|
---
|
|
|
|
# Consul ECS 0.7.x
|
|
|
|
## Release highlights
|
|
|
|
- **Consul Dataplane:** Consul on ECS 0.7.x adopts the [Dataplane architecture](/consul/docs/connect/dataplane) to simplify connecting your ECS workloads to Consul. Refer to the documentation to learn more about the updated [ECS components](/consul/docs/ecs/architecture) and how to [deploy Consul to ECS using the Terraform module](/consul/docs/ecs/deploy/terraform).
|
|
|
|
- **New `control-plane` command:** The new, unified `control-plane` command combines the capabilities for the deprecated `mesh-init` and `health-sync` commands. The `control-plane` command starts a long running process with the following responsibilities:
|
|
- Automatically (re)discover and (re)connect to Consul servers using connection manager.
|
|
- Make an ACL Login request to obtain an ACL token when using the Consul AWS IAM auth method.
|
|
- Register the service and sidecar proxy with the central catalog on the Consul servers.
|
|
- Write the configuration for Consul Dataplane to a file on a shared volume.
|
|
- Sync ECS health check statuses for the ECS task into the central catalog on the Consul servers on a periodic basis.
|
|
- Gracefully shutdown when an ECS task is stopped. Upon receiving a SIGTERM, mark synced health checks critical and wait for Consul Dataplane to stop. Then remove health checks, services, and perform an ACL Logout if necessary.
|
|
|
|
- **New `controller` command:** The new `controller` command replaces the `acl-controller` command with the following changes:
|
|
- Remove all CLI flags. Configuration is read from the `ECS_CONFIG_JSON` environment variable.
|
|
- Automatically (re)discover and (re)connect to Consul servers, similar to the `control-plane` command.
|
|
- Because Consul client agents are no longer used, the controller no longer configures the "client" auth method, policy, role, and binding rule which previously enabled Consul client agents to login.
|
|
- Register the ECS cluster as a synthetic node in the central catalog on the Consul servers. The synthetic node is used to register services running in the ECS cluster.
|
|
- Ensure leftover tokens and services are removed for ECS tasks that have stopped.
|
|
|
|
- **Locality aware routing (Enterprise):** Consul on ECS 0.7.x supports [locality-aware routing](/consul/docs/connect/manage-traffic/route-to-local-upstreams). In your ECS task meta JSON, set the `AWS_REGION` container environment variable and `AvailabilityZone` attributes to set the locality parameters in Consul service and proxy registrations. Consul uses these parameters to perform locality aware routing in Consul Enterprise installations.
|
|
|
|
## Breaking changes
|
|
|
|
- The new Dataplane architecture comes with the following breaking changes to configuring Consul on ECS. Refer to the [Upgrade to Consul dataplane architecture](https://developer.hashicorp.com/consul/docs/ecs/upgrade-to-dataplanes) documentation for a step-by-step upgrade guide.
|
|
- Consul client agents are no longer used.
|
|
- Consul Dataplane must be run in place of Envoy in each ECS task. Consul Dataplane manages the Envoy process and proxies xDS requests from Envoy to Consul servers.
|
|
- The `consul-ecs` binary now communicates with Consul servers using HTTP(S) and GRPC.
|
|
- Services are registered directly with the central catalog on the Consul servers. Services in the same ECS cluster are registered to the same Consul node name.
|
|
- Replaced the `mesh-init` and `health-sync` commands with a unified `control-plane`.
|
|
- Replaced the `acl-controller` command with `controller`.
|
|
- Add the `go-discover` binary to the Consul ECS image to better support [cloud auto-join](/consul/docs/install/cloud-auto-join).
|
|
- Changes to `ECS_CONFIG_JSON` schema.
|
|
- Remove the `consulHTTPAddr` and `consulCACertFile` fields.
|
|
- Add the `consulLogin.datacenter` field.
|
|
- Add the `controller` field to support configuring the new `controller` command.
|
|
- Add the `consulServers` field to specify the Consul server location and protocol-specific settings.
|
|
- The `consulServers.hosts` field is required. This specifies the Consul server location as an IP address, DNS name, or `exec=` string specifying a command that returns a list of IP addresses. To use cloud auto-join, use an `exec=` string to run the `discover` CLI. For example, the following string invokes the discover CLI with a cloud auto-join string:
|
|
|
|
```log
|
|
exec=discover -q addrs provider=aws region=us-west-2 tag_key=consul-server tag_value=true
|
|
```
|
|
|
|
By default, Consul ECS and Consul Dataplane images include the `discover` CLI.
|
|
- Add the `proxy.healthCheckPort` field which can be hit to determine Envoy's readiness.
|
|
- Add the `proxy.upstreams.destinationPeer` field to enable the proxy to hit upstreams present in peer Consul clusters.
|
|
- Add the `meshGateway.healthCheckPort` field which can be hit to determine Envoy's readiness.
|
|
- Add the `proxy.localServiceAddress` field to configure Envoy to use a different address for the local service.
|
|
- Remove the `service.checks` field. Consul agent health checks are no longer supported because Consul client agents are not used. Instead, set the healthSyncContainers field to have consul-ecs sync ECS health checks into Consul.
|
|
|
|
## Supported software versions
|
|
|
|
- Consul: 1.17.x
|
|
|
|
## Changelogs
|
|
|
|
The changelogs for this major release version and any maintenance versions are listed below.
|
|
|
|
-> **Note**: These links will take you to the changelogs on the GitHub website.
|
|
|
|
- [0.7.0](https://github.com/hashicorp/consul-ecs/releases/tag/v0.7.0)
|