diff options
3 files changed, 4 insertions, 48 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index e63244cd57b..9eb25ff2339 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -44,7 +44,6 @@ import com.yahoo.vespa.config.server.tenant.EndpointCertificateMetadataStore; import com.yahoo.vespa.config.server.tenant.EndpointCertificateRetriever; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.BooleanFlag; -import com.yahoo.vespa.flags.FetchVector; import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.flags.Flags; import org.xml.sax.SAXException; @@ -81,7 +80,6 @@ public class SessionPreparer { private final Zone zone; private final SecretStore secretStore; private final BooleanFlag distributeApplicationPackage; - private final BooleanFlag unsetEndpoints; @Inject public SessionPreparer(ModelFactoryRegistry modelFactoryRegistry, @@ -104,7 +102,6 @@ public class SessionPreparer { this.zone = zone; this.secretStore = secretStore; this.distributeApplicationPackage = Flags.CONFIGSERVER_DISTRIBUTE_APPLICATION_PACKAGE.bindTo(flagSource); - this.unsetEndpoints = Flags.CONFIGSERVER_UNSET_ENDPOINTS.bindTo(flagSource); } /** @@ -120,10 +117,7 @@ public class SessionPreparer { public ConfigChangeActions prepare(SessionContext context, DeployLogger logger, PrepareParams params, Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath, Instant now) { - boolean allowUnsettingEndpoints = unsetEndpoints.with(FetchVector.Dimension.APPLICATION_ID, params.getApplicationId().serializedForm()) - .value(); - Preparation preparation = new Preparation(context, logger, params, currentActiveApplicationSet, tenantPath, - allowUnsettingEndpoints); + Preparation preparation = new Preparation(context, logger, params, currentActiveApplicationSet, tenantPath); preparation.distributeApplicationPackage(); // Note: Done before pre-processing, requires that to be done for users of this preparation.preprocess(); try { @@ -132,11 +126,7 @@ public class SessionPreparer { if ( ! params.isDryRun()) { preparation.writeStateZK(); preparation.writeEndpointCertificateMetadataZK(); - if (allowUnsettingEndpoints) { - preparation.writeContainerEndpointsZK(); - } else { - preparation.legacyWriteContainerEndpointsZK(); - } + preparation.writeContainerEndpointsZK(); preparation.writeApplicationRoles(); preparation.distribute(); } @@ -184,8 +174,7 @@ public class SessionPreparer { private final FileDistributionProvider fileDistributionProvider; Preparation(SessionContext context, DeployLogger logger, PrepareParams params, - Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath, - boolean allowUnsettingEndpoints) { + Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath) { this.context = context; this.logger = logger; this.params = params; @@ -202,11 +191,7 @@ public class SessionPreparer { endpointCertificateSecrets = endpointCertificateMetadata .or(() -> endpointCertificateMetadataStore.readEndpointCertificateMetadata(applicationId)) .flatMap(endpointCertificateRetriever::readEndpointCertificateSecrets); - if (allowUnsettingEndpoints) { - this.containerEndpoints = readEndpointsIfNull(params.containerEndpoints()); - } else { - this.containerEndpoints = getEndpoints(params.containerEndpoints()); - } + this.containerEndpoints = readEndpointsIfNull(params.containerEndpoints()); this.athenzDomain = params.athenzDomain(); this.applicationRolesStore = new ApplicationRolesStore(curator, tenantPath); this.applicationRoles = params.applicationRoles() @@ -305,12 +290,6 @@ public class SessionPreparer { checkTimeout("write container endpoints to zookeeper"); } - void legacyWriteContainerEndpointsZK() { - if (!containerEndpoints.isEmpty()) { - writeContainerEndpointsZK(); - } - } - void writeApplicationRoles() { applicationRoles.ifPresent(roles -> applicationRolesStore.writeApplicationRoles(applicationId, roles)); @@ -334,12 +313,6 @@ public class SessionPreparer { return List.copyOf(endpoints); } - private List<ContainerEndpoint> getEndpoints(List<ContainerEndpoint> endpoints) { - if (endpoints == null || endpoints.isEmpty()) { - endpoints = this.containerEndpointsCache.read(applicationId); - } - return List.copyOf(endpoints); - } } private void writeStateToZooKeeper(SessionZooKeeperClient zooKeeperClient, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java index 36425b7fdad..eaa3991c0d3 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java @@ -45,7 +45,6 @@ import com.yahoo.vespa.config.server.tenant.EndpointCertificateMetadataStore; import com.yahoo.vespa.config.server.tenant.EndpointCertificateRetriever; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.mock.MockCurator; -import com.yahoo.vespa.flags.Flags; import com.yahoo.vespa.flags.InMemoryFlagSource; import org.junit.Before; import org.junit.Rule; @@ -244,15 +243,6 @@ public class SessionPreparerTest { params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints("[]").build(); prepare(new File("src/test/resources/deploy/hosted-app"), params); assertEquals(List.of(), readContainerEndpoints(applicationId)); - - // Preparing with empty container endpoints keeps old value with feature flag turned off - params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints(endpoints).build(); - prepare(new File("src/test/resources/deploy/hosted-app"), params); - assertEquals(expected, readContainerEndpoints(applicationId)); - flagSource.withBooleanFlag(Flags.CONFIGSERVER_UNSET_ENDPOINTS.id(), false); - params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints("[]").build(); - prepare(new File("src/test/resources/deploy/hosted-app"), params); - assertEquals(expected, readContainerEndpoints(applicationId)); } @Test diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 60daddc7ee0..944f02a62a4 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -270,13 +270,6 @@ public class Flags { "Takes effect on next deployment (controller)", ZONE_ID); - public static final UnboundBooleanFlag CONFIGSERVER_UNSET_ENDPOINTS = defineFeatureFlag( - "configserver-unset-endpoints", true, - "Whether the configserver allows removal of existing endpoints when an empty list of container endpoints is request", - "Takes effect on next external deployment", - APPLICATION_ID - ); - public static final UnboundIntFlag JDISC_HEALTH_CHECK_PROXY_CLIENT_TIMEOUT = defineIntFlag( "jdisc-health-check-proxy-client-timeout", 1000, "Temporary flag to rollout reduced timeout for JDisc's health check proxy client. Timeout in milliseconds", |