xds: Allow unspecified listener traffic direction to work with Istio (#9173)

* Allow unspecified listener traffic direction to work with Istio
This commit is contained in:
cfredri4 2022-05-16 18:35:55 +02:00 committed by GitHub
parent 2c33e39f5d
commit 1d4e82e9ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -385,7 +385,8 @@ final class ClientXdsClient extends XdsClient implements XdsResponseHandler, Res
Listener proto, Set<String> rdsResources, TlsContextManager tlsContextManager,
FilterRegistry filterRegistry, Set<String> certProviderInstances, boolean parseHttpFilter)
throws ResourceInvalidException {
if (!proto.getTrafficDirection().equals(TrafficDirection.INBOUND)) {
if (!proto.getTrafficDirection().equals(TrafficDirection.INBOUND)
&& !proto.getTrafficDirection().equals(TrafficDirection.UNSPECIFIED)) {
throw new ResourceInvalidException(
"Listener " + proto.getName() + " with invalid traffic direction: "
+ proto.getTrafficDirection());

View File

@ -2006,6 +2006,16 @@ public class ClientXdsClientDataTest {
listener, new HashSet<String>(), null, filterRegistry, null, true /* does not matter */);
}
@Test
public void parseServerSideListener_noTrafficDirection() throws ResourceInvalidException {
Listener listener =
Listener.newBuilder()
.setName("listener1")
.build();
ClientXdsClient.parseServerSideListener(
listener, new HashSet<String>(), null, filterRegistry, null, true /* does not matter */);
}
@Test
public void parseServerSideListener_listenerFiltersPresent() throws ResourceInvalidException {
Listener listener =