-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Summary
At this moment argo rollouts spec with alb plugin supports several ingresses, but doesn't support several ports for k8s services. This is a problem, because there are lots of use cases when k8s service has several ports:

Use Cases
In our setup we have several ingresses pointed at the same load balancer via alb.ingress.kubernetes.io/group.name annotation and each ingress has an underlying k8s service with a specific port (k8s service is the same for the business service), example:
ingress №1:
rules:
- host: api-internal.example.net
http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: svc-stable
port:
name: http-svc-internal
ingress №2:
rules:
- host: api-specific.example.net
http:
paths:
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: svc-stable
port:
name: http-svc-specific
Given the fact that the rollout spec should include all ingresses for the application and in case you have several ports being listened there is a problem with canary:
spec:
strategy:
canary:
canaryService: svc-canary
stableService: svc-stable
maxUnavailable: '0%'
maxSurge: '10%'
trafficRouting:
alb:
ingresses:
- internal-api
- specific-api
servicePort: http-svc-specific OR http-svc-internal
It would be nice to add support for service ports per each ingress so canary could be used for all of them.
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.