Sharing Targets between upstreams

Hello,

We are attempting to write a canary deployment service using a declarative config. We would like to configure two upstreams that point at the same targets, but with different weightings. An example kong.yml is below.

We’ve observed that the second set of targets seems to stomp the first–is this intentional behavior by kong to not allow duplicate targets between upstreams? Is there a workaround for this? Based on my reading of the docs, this should be possible.

in the below example, hitting the endpoint /a returns the message “message”: “failure to get a peer from the ring-balancer”, as its ring balancer no longer has any targets.

_format_version: "1.1"

services:
- name: a-service
  host: a-upstream
  path: /a
  routes:
    - methods:
        - GET
      paths:
        - /a
- name: b-service
  host: b-upstream
  path: /b
  routes:
    - methods:
        - GET
      paths:
        - /b
      
upstreams:
  - name: a-upstream
    targets:
    - target: localhost:3060
      weight: 0
    - target: localhost:3030
      weight: 100
  - name: b-upstream
    targets:
    - target: localhost:3060
      weight: 100
    - target: localhost:3030
      weight: 0