upstream: add support for setting degraded through LoadAssignment (#5649)

Adds a DEGRADED HealthStatus value that can be set on a host through
LoadAssignment, allowing for a host to be marked degraded without
the need for active health checking.

Moves the mapping of EDS flag to health flag to inside
`registerHostForPriority`, which means that we're now consistently setting
the EDS health flag for EDS/STATIC/STRICT_DNS/LOGICAL_DNS.

Simplifies the check for whether the health flag value of a host has
changed during EDS updates.

Adds tests for the EDS mapping as well as tests to verify that we're
honoring the EDS flag for non-EDS cluster types.

Risk Level: High, substantial refactoring of how we determine whether health flag has changed.
Testing: UTs coverage for new health flag values.
Docs Changes: n/a
Release Notes: n/a

Fixes #5637
#5063

Signed-off-by: Snow Pettersen <snowp@squareup.com>

Mirrored from https://github.com/envoyproxy/envoy @ 8c6bf40042543713eb7493e0d4ff29b312c78772
pull/620/head
data-plane-api(CircleCI) 6 years ago
parent 56dafe2556
commit 9b2595af9b
  1. 3
      envoy/api/v2/core/health_check.proto

@ -254,4 +254,7 @@ enum HealthStatus {
// Health check timed out. This is part of HDS and is interpreted by Envoy as
// *UNHEALTHY*.
TIMEOUT = 4;
// Degraded.
DEGRADED = 5;
}

Loading…
Cancel
Save