Configuring Services custom ingress class

When a Knative Service is created an ingress class (ingress-class) is automatically assigned to it, based on the value in the config-network ConfigMap located inside the knative-serving namespace. This ConfigMap is part of Knative Serving installation. If the ingress class is not specified, this defaults to istio.ingress.networking.knative.dev. Once configured the ingress-class is used for all Knative Services unless it is overridden with an ingress-class annotation.

Warning

Changing the ingress class in config-network ConfigMap will only affect newly created Services

Using the ingress class annotation

Generally it is recommended for Knative Services to use the default ingress-class. However, in scenarios where there are multiple networking implementations, you might want to specify different ingress class annotations for each Service.

You can configure each Service to use a different ingress class by specifying the networking.knative.dev/ingress-class annotation.

To add an ingress class annotation to a Service, run the following command:

  1. kubectl annotate kservice <service-name> networking.knative.dev/ingress-class=<ingress-type>

Where:

  • <service-name> is the name of the Service that you are applying the annotation to.
  • <ingress-type> is the type of ingress that is used as the ingress class for the Service.

Note

This annotation overrides the ingress-class value specified in the config-network ConfigMap.