summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2024-04-03 00:20:08 +0200
committerGitHub <noreply@github.com>2024-04-03 00:20:08 +0200
commitd6db5fa289e96226e25f08a1c427c6f84d01fe5b (patch)
tree1fc3284f0cbdce2bf1d0d6acf7ea7aac52c2791b
parentf5fa9ab6b35ecebc86cdb4c5dfaf0e4b59847972 (diff)
parentc786c8e24da168a64d5ba0c60c8dd0ff46496bb2 (diff)
Merge pull request #30788 from vespa-engine/revert-30783-hakonhall/disable-proxy-protocol-on-jdisc-containers-in-azure
Revert "Disable proxy protocol on jdisc containers in Azure"
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java9
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java2
-rw-r--r--container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def2
4 files changed, 8 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
index 5f824950ecd..08b0398a98f 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/ssl/HostedSslConnectorFactory.java
@@ -24,6 +24,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
private final SslClientAuth clientAuth;
private final List<String> tlsCiphersOverride;
private final boolean proxyProtocolEnabled;
+ private final boolean proxyProtocolMixedMode;
private final Duration endpointConnectionTtl;
private final List<String> remoteAddressHeaders;
private final List<String> remotePortHeaders;
@@ -36,6 +37,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
this.clientAuth = builder.clientAuth;
this.tlsCiphersOverride = List.copyOf(builder.tlsCiphersOverride);
this.proxyProtocolEnabled = builder.proxyProtocolEnabled;
+ this.proxyProtocolMixedMode = builder.proxyProtocolMixedMode;
this.endpointConnectionTtl = builder.endpointConnectionTtl;
this.remoteAddressHeaders = List.copyOf(builder.remoteAddressHeaders);
this.remotePortHeaders = List.copyOf(builder.remotePortHeaders);
@@ -68,7 +70,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
}
connectorBuilder
.proxyProtocol(new ConnectorConfig.ProxyProtocol.Builder()
- .enabled(proxyProtocolEnabled))
+ .enabled(proxyProtocolEnabled).mixedMode(proxyProtocolMixedMode))
.idleTimeout(Duration.ofSeconds(30).toSeconds())
.maxConnectionLife(endpointConnectionTtl != null ? endpointConnectionTtl.toSeconds() : 0)
.accessLog(new ConnectorConfig.AccessLog.Builder()
@@ -87,6 +89,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
SslClientAuth clientAuth;
List<String> tlsCiphersOverride = List.of();
boolean proxyProtocolEnabled;
+ boolean proxyProtocolMixedMode;
Duration endpointConnectionTtl;
EndpointCertificateSecrets endpointCertificate;
String tlsCaCertificatesPem;
@@ -98,7 +101,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
public Builder clientAuth(SslClientAuth auth) { clientAuth = auth; return this; }
public Builder endpointConnectionTtl(Duration ttl) { endpointConnectionTtl = ttl; return this; }
public Builder tlsCiphersOverride(Collection<String> ciphers) { tlsCiphersOverride = List.copyOf(ciphers); return this; }
- public Builder proxyProtocol(boolean enabled) { proxyProtocolEnabled = enabled; return this; }
+ public Builder proxyProtocol(boolean enabled, boolean mixedMode) { proxyProtocolEnabled = enabled; proxyProtocolMixedMode = mixedMode; return this; }
public Builder endpointCertificate(EndpointCertificateSecrets cert) { this.endpointCertificate = cert; return this; }
public Builder tlsCaCertificatesPath(String path) { this.tlsCaCertificatesPath = path; return this; }
public Builder tlsCaCertificatesPem(String pem) { this.tlsCaCertificatesPem = pem; return this; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 20a16f7c7a4..c71dbb158b0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -25,7 +25,6 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.AthenzService;
import com.yahoo.config.provision.Capacity;
-import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.DataplaneToken;
@@ -599,7 +598,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// If the deployment contains certificate/private key reference, setup TLS port
var builder = HostedSslConnectorFactory.builder(serverName, getMtlsDataplanePort(state))
- .proxyProtocol(useProxyProtocol(state.zone()))
+ .proxyProtocol(true, state.getProperties().featureFlags().enableProxyProtocolMixedMode())
.tlsCiphersOverride(state.getProperties().tlsCiphersOverride())
.endpointConnectionTtl(state.getProperties().endpointConnectionTtl());
var endpointCert = state.endpointCertificateSecrets().orElse(null);
@@ -634,10 +633,6 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
server.addConnector(connectorFactory);
}
- private static boolean useProxyProtocol(Zone zone) {
- return !zone.cloud().name().equals(CloudName.AZURE);
- }
-
private void addCloudTokenSupport(DeployState state, ApplicationContainerCluster cluster) {
var server = cluster.getHttp().getHttpServer().get();
if (!enableTokenSupport(state)) return;
@@ -662,7 +657,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// Setup dedicated connector
var connector = HostedSslConnectorFactory.builder(server.getComponentId().getName()+"-token", tokenPort)
.tokenEndpoint(true)
- .proxyProtocol(useProxyProtocol(state.zone()))
+ .proxyProtocol(false, false)
.endpointCertificate(endpointCert)
.remoteAddressHeader("X-Forwarded-For")
.remotePortHeader("X-Forwarded-Port")
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
index 30392c17896..5ef42d12dc1 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
@@ -54,7 +54,7 @@ public class Zone {
this.region = region;
}
- // TODO(mpolden): For compatibility with older config models. Remove when versions < 8.327 are gone
+ // TODO(mpolden): For compatibility with older config models. Remove when versions < 8.76 are gone
public Cloud getCloud() {
return cloud();
}
diff --git a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
index 2906f75a1f5..95b93617b6f 100644
--- a/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
+++ b/container-core/src/main/resources/configdefinitions/jdisc.http.jdisc.http.connector.def
@@ -123,8 +123,6 @@ healthCheckProxy.cacheExpiry double default=1.0
proxyProtocol.enabled bool default=false
# Allow https in parallel with proxy protocol
-# TODO Vespa 9 Remove
-# Unused since 8.327
proxyProtocol.mixedMode bool default=false
# Maximum number of request per connection before server marks connections as non-persistent. Set to '0' to disable.