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

Multiple canaries for the same deployment #1632

Open
shysank opened this issue Apr 17, 2024 · 1 comment
Open

Multiple canaries for the same deployment #1632

shysank opened this issue Apr 17, 2024 · 1 comment

Comments

@shysank
Copy link

shysank commented Apr 17, 2024

Describe the feature

Multiple canaries for the same deployment. Example

apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
  name: my-service-canary1
spec:
  analysis:
    ...
  service:
    gateways:
      - gateway1
    hosts:
      - example.net
  targetRef:
    kind: Deployment
    name: my-service
  http:
    - match:
        - uri:
            prefix: /my-service

apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
  name: my-service-canary2
spec:
  analysis:
    ...
  service:
    gateways:
      - gateway2
    hosts:
      - example.com
  targetRef:
    kind: Deployment
    name: my-service
  http:
    - match:
        - uri:
            prefix: /some-prefix/my-service

apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
  name: my-service-canary3
spec:
  analysis:
    ...
  service:
    gateways:
      - gateway3
    hosts:
      - my-service.net
  targetRef:
    kind: Deployment
    name: my-service
  http:
    - match:
        - uri:
            prefix: /

What problem are you trying to solve?

We want to expose the service in multiple gateways with different paths. Something like

example.net/my-service/
example.com/someprefix/my-service
my-service.net/

Is this this supported in flagger? Also, is this the right way to do it or is there a better way to achieve the same result.

@shysank
Copy link
Author

shysank commented Apr 23, 2024

Some options we explored

  1. Use specific hosts/gateways for a http match.
  2. Use delegate virtual service

In both the options, we couldn't find a way to have multiple rewrite rules and header customizations. This is because flagger only updates a single http route during canary analysis.

Any thoughts @stefanprodan

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

No branches or pull requests

1 participant