summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2024-04-03 13:58:27 +0200
committerGitHub <noreply@github.com>2024-04-03 13:58:27 +0200
commit2846fbe70a25b95b704bbb8abe0172f7665ff1a7 (patch)
tree6b4e6341edbc6ac564c644cd9e106c8afe78575e
parent70d8cd75b69c0c95546ee9177017317ed4485f8c (diff)
Revert "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, 12 insertions, 8 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 08b0398a98f..5f824950ecd 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,7 +24,6 @@ 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;
@@ -37,7 +36,6 @@ 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);
@@ -70,7 +68,7 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
}
connectorBuilder
.proxyProtocol(new ConnectorConfig.ProxyProtocol.Builder()
- .enabled(proxyProtocolEnabled).mixedMode(proxyProtocolMixedMode))
+ .enabled(proxyProtocolEnabled))
.idleTimeout(Duration.ofSeconds(30).toSeconds())
.maxConnectionLife(endpointConnectionTtl != null ? endpointConnectionTtl.toSeconds() : 0)
.accessLog(new ConnectorConfig.AccessLog.Builder()
@@ -89,7 +87,6 @@ public class HostedSslConnectorFactory extends ConnectorFactory {
SslClientAuth clientAuth;
List<String> tlsCiphersOverride = List.of();
boolean proxyProtocolEnabled;
- boolean proxyProtocolMixedMode;
Duration endpointConnectionTtl;
EndpointCertificateSecrets endpointCertificate;
String tlsCaCertificatesPem;
@@ -101,7 +98,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, boolean mixedMode) { proxyProtocolEnabled = enabled; proxyProtocolMixedMode = mixedMode; return this; }
+ public Builder proxyProtocol(boolean enabled) { proxyProtocolEnabled = enabled; 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 c71dbb158b0..20a16f7c7a4 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,6 +25,7 @@ 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;
@@ -598,7 +599,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(true, state.getProperties().featureFlags().enableProxyProtocolMixedMode())
+ .proxyProtocol(useProxyProtocol(state.zone()))
.tlsCiphersOverride(state.getProperties().tlsCiphersOverride())
.endpointConnectionTtl(state.getProperties().endpointConnectionTtl());
var endpointCert = state.endpointCertificateSecrets().orElse(null);
@@ -633,6 +634,10 @@ 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;
@@ -657,7 +662,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
// Setup dedicated connector
var connector = HostedSslConnectorFactory.builder(server.getComponentId().getName()+"-token", tokenPort)
.tokenEndpoint(true)
- .proxyProtocol(false, false)
+ .proxyProtocol(useProxyProtocol(state.zone()))
.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 5ef42d12dc1..30392c17896 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.76 are gone
+ // TODO(mpolden): For compatibility with older config models. Remove when versions < 8.327 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 95b93617b6f..2906f75a1f5 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,6 +123,8 @@ 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.