Skip to content

[BUG] Divide plugin does not preserve discovery upstream props as metadata #6967

Description

@sunnysabor

Current Behavior

Discovery registry implementations such as Eureka and Nacos already read the props entry from instance metadata and store it in DiscoveryUpstreamData.props.

However, when the divide plugin converts DiscoveryUpstreamData to runtime Upstream, it only reads built-in properties such as warmup, gray, and healthCheckEnabled. Other custom properties are discarded.

As a result, custom load balancers cannot access discovery upstream extension properties from Upstream.getMetadata(), even though Upstream already provides a metadata field.

Expected Behavior

Parsed discovery upstream props should be preserved as runtime Upstream.metadata during divide upstream conversion.

This keeps the existing props extension channel and does not introduce full registry metadata passthrough.

Use Case

Custom load balancers should be able to read extension properties such as az, version, or grayTag from Upstream.getMetadata() when those properties are provided inside discovery upstream props.

Environment

  • Apache ShenYu master branch
  • divide plugin discovery upstream handling

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions