knative / knative/serving

`DomainMapping` creates configuration that routes through the local gateway

Open
#14,872 8 comments 2 reactions 0 assignees View on GitHub
area/networking kind/bug lifecycle/frozen
Dominant language
Go
Stars
6.1k
Forks
1.2k
Avg merge
2d 7h
Merged PRs (30d)
2

Description

## In what area(s)?
/area networking

## What version of Knative?

1.13.0

## Bug

We have a Istio gateway for ingress that has a special filter for authorization. However, when you create a `DomainMapping`, net-istio (I assume) will actually create a service that routes through the local gateway which purposefully does not have our EnvoyFilter. This is unexpected and `DomainMapping`'s for external domains should only go through the ingress gateway not both.

For example, say you have a service `myservice` in namespace `knative`. By default you will get a route called `myservice.knative.example.com`. This will have the following flow:
```
Client -> Ingress-Gateway -> Activator -> Service
```

If you create a `DomainMapping` so that you have a domain `myservice.example.com` using the target ref of the KnativeService, the flow will change to this:
```
Client -> Ingress-Gateway -> Local-Gateway -> Activator -> Service
```

This extra hop through the local-gateway is unnecessary and causes problems with authorization policies that have different rules for local vs ingress gateways.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how net-istio handles DomainMapping resources and compare the generated routing path with the standard ingress flow described in the issue. Verify that external DomainMappings use only the ingress gateway and no longer add the local-gateway hop, while preserving the expected Activator-to-Service path.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.