Skip to content

Endpoint HealthStatus HAS to be delivered via EDS (no config/cds loadassignment) #5637

@CallMeFoxie

Description

@CallMeFoxie

Title: Endpoint HealthStatus has to be delivered via EDS, it is ignored when delivered via CDS' LoadAssignment or via static config file

Description:
Not sure if this is a bug or a feature, but I tried adding unhealthy endpoints delivered via CDS with Type: STATIC & LoadAssignment populated it ignored the HealthStatus flag at the endpoints, it always set them to HEALTHY even though I could definitely see (via grpcurl) that they were set to UNHEALTHY in the protos. Same thing happens when it is set via static config JSON. The docs say that it can be delivered via EDS but it sounds like any way should work as it is mostly just decomposing protobufs?
Or is it an intended feature?

Sample from the config:

static_resources:
  clusters:
  - connectTimeout: 0.800s
    commonLbConfig:
      healthy_panic_threshold:
        value: 1.0
    loadAssignment:
      clusterName: default-test-locality
      endpoints:
      - lbEndpoints:
        - endpoint:
            address:
              socketAddress:
                address: 10.1.2.3
                portValue: 9999
          health_status: UNHEALTHY

(and equivalent from CDS) which produced a ::healthy in the clusters overview and it kept passing traffic there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions