diff --git a/docs/features/traffic-management/alb.md b/docs/features/traffic-management/alb.md index 5b4c424528..f205e8dcde 100644 --- a/docs/features/traffic-management/alb.md +++ b/docs/features/traffic-management/alb.md @@ -49,9 +49,9 @@ spec: alb: # The referenced ingress will be injected with a custom action annotation, directing # the AWS Load Balancer Controller to split traffic between the canary and stable - # Service, according to the desired traffic weight (required). + # Service, according to the desired traffic weight. ingress: ingress - # If you want to controll multiple ingress resources you can use the ingresses field, if ingresses is specified + # If you want to control multiple ingress resources you can use the ingresses field, if ingresses is specified # the ingress field will need to be omitted. ingresses: - ingress-1 @@ -59,10 +59,17 @@ spec: # Reference to a Service that the Ingress must target in one of the rules (optional). # If omitted, uses canary.stableService. rootService: root-service - # Service port is the port which the Service listens on (required). + # Service port is the port which the Service listens on. servicePort: 443 + # ServicePorts specify list of ports for given ingress. If no ports are listed for ingress + # under .servicePorts - it will fall back to .servicePort value as default + servicePorts: + - ingress: ingress-1 + servicePorts: [80, 443] ``` +To avoid confusion with ingress/ingresses and servicePort/servicePorts fields use either `ingress` + `servicePort` only if you have a single ingress with a single port. In all other cases use `ingresses` + `servicePorts`. + The referenced Ingress should be deployed with an ingress rule that matches the Rollout service: ```yaml @@ -442,4 +449,4 @@ controller should operate on multiple values. This may be desired when a cluster Ingress controllers that operate on different `kubernetes.io/ingress.class` or `spec.ingressClassName` values. If the controller needs to operate on any Ingress without the `kubernetes.io/ingress.class` -annotation or `spec.ingressClassName`, the flag can be specified with an empty string (e.g. `--alb-ingress-classes ''`). +annotation or `spec.ingressClassName`, the flag can be specified with an empty string (e.g. `--alb-ingress-classes ''`). \ No newline at end of file diff --git a/docs/getting-started/alb/index.md b/docs/getting-started/alb/index.md index 73b3856c9e..d7b8e6337e 100644 --- a/docs/getting-started/alb/index.md +++ b/docs/getting-started/alb/index.md @@ -38,11 +38,31 @@ spec: # Reference to a Service that the Ingress must target in one of the rules (optional). # If omitted, uses canary.stableService. rootService: rollouts-demo-root - # Service port is the port which the Service listens on (required). + # Service port is the port which the Service listens on. servicePort: 443 ... ``` +If you need to manage more than one ingress or an ingress with multiple ports, you can use `ingresses` and `servicePorts` fields: + +```yaml +... + trafficRouting: + alb: + ingresses: + - rollouts-demo-ingress + - some-other-ingress + # Reference to a Service that the Ingress must target in one of the rules (optional). + # If omitted, uses canary.stableService. + servicePorts: + - ingress: rollouts-demo-ingress + servicePorts: [443] + - ingress: some-other-ingress + servicePorts: [80, 443] +... +``` + + The Ingress referenced by the Rollout must have a rule which matches one of Rollout services. This should be `canary.trafficRouting.alb.rootService` (if specified), otherwise the rollout will use `canary.stableService`.