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.