Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set default mesh gateway only if no gateway is specified #141

Merged
merged 2 commits into from
Apr 8, 2019

Conversation

stefanprodan
Copy link
Member

Fix: #140
Note: breaking change

@stefanprodan stefanprodan changed the title Set default mesh gateway if no gateway is specified Set default mesh gateway only if no gateway is specified Apr 6, 2019
@stefanprodan
Copy link
Member Author

@SpreetailHurley can you please test this PR and confirm that canary routing works with the ingress gateway? Thanks

Test image: quay.io/weaveworks/flagger:default-mesh-88ad457

@stefanprodan
Copy link
Member Author

I don't know if it's relevant to your use case but the ClusterIP address is always added to the hosts list.

@SpreetailHurley
Copy link

@stefanprodan Looks perfect on the surface; I'll run some more testing and confirm in this thread.

Thanks!

@SpreetailHurley
Copy link

All testing completed successfully:

Specify gateway list not including 'mesh'

  • VirtualService gateways includes listed gateways; does not include mesh
  • validate that VirtualService rewrites apply to Internet traffic
  • validate that VirtualService rewrites do not apply to mesh traffic

Specify gateway list including but not exclusively 'mesh'

  • VirtualService gateways includes all listed gateways; does include mesh
  • validate that VirtualService rewrites apply to Internet traffic
  • validate that VirtualService rewrites apply to mesh traffic

Specify no gateway list

  • VirtualService gateways includes only mesh
  • validate that VirtualService rewrites apply to Internet traffic
  • validate that VirtualService rewrites apply to mesh traffic

@SpreetailHurley
Copy link

It should also be noted that case 1 (specify a gateway list that does not include 'mesh') will necessitate that connections inbound for testing either:

  1. target the canary service (cmd: "hey -z 1m -q 10 -c 2 -H 'Cookie: user=test' http://my-service-canary/my-path")
  2. path out to re-traverse the gateway
  3. are executed externally (e.g. a dedicated load generator or testing framework that exists outside of the cluster)

This is expected behavior because connections from inside the cluster only traverse the 'mesh' gateway and so would not be subject to routing rules nor to targeting the canary via regex or other matches in the VirtualService.

@stefanprodan
Copy link
Member Author

@SpreetailHurley thanks a lot for all the testing 🥇

@stefanprodan stefanprodan merged commit db673dd into master Apr 8, 2019
@stefanprodan stefanprodan deleted the default-mesh branch April 8, 2019 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants