Skip to content

httproutes with same name in different clusters in the same service network fails to route #453

@costap

Description

@costap

When creating multiple http route configs in different clusters with the same name that are part of the same VPC Lattice service network, Lattice seems to fail to route requests. Further more if you delete one of the http route configs from one the clusters but leave the other, it removes the service completely from the service network although the other route still exists.

Not sure if running the same service in different clusters is an actual use case that VPC Lattice supports but even if not feel it should handle it somehow more elegantly rather then fail to route traffic.

Steps to reproduce.

  1. in the same account, same region, create two EKS clusters in different VPCs with VPC Lattice Gateway Controller configured.
  2. In cluster 1 deploy:
    • examples/inventory-ver1.yaml
    • examples/inventory-ver2.yaml
    • examples/my-hotel-gateway-multi-listeners.yaml
    • examples/inventory-route-bluegreen-https.yaml
  3. Verify inventory service has been created in VPC Lattice and thats possible to make requests to it.
  4. In cluster 2 deploy:
    • examples/inventory-ver1.yaml
    • examples/inventory-ver2.yaml
    • examples/my-hotel-gateway-multi-listeners.yaml
    • examples/inventory-route-bluegreen-https.yaml
  5. Verify is no longer possible to make requests to inventory service through the Lattice service DNS name.

EXPECTED:
5a. You could call inventory services and would load-balance requests across clusters


  1. In Cluster 2 remove examples/inventory-route-bluegreen-https.yaml
  2. Verify that service in VPC Lattice has been deleted

EXPECTED:
7a. Inventory VPC Lattice service still configured and can route requests to targets in cluster 1.

Inventory target group:
vpc-lattice-error

Environment:

Controller Image: public.ecr.aws/m7r9p7b3/aws-gateway-controller:v0.0.17
EKS Version: v1.27.6-eks-f8587cb

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions