diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-07-26 16:02:45 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-07-26 16:24:11 +0200 |
commit | e3ba83a0fdd1e31036929c172836e9996f79f16d (patch) | |
tree | c03df2abc06f0f0567c4d5503eef6039cd2773e7 | |
parent | 886a16481d5023822629fd4f8f128157af9edce8 (diff) |
Remove global-service-id
28 files changed, 58 insertions, 416 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java index b6f934c8824..4ca96453ad1 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.application.api; -import ai.vespa.validation.Validation; import com.yahoo.config.provision.AthenzService; import com.yahoo.config.provision.CloudAccount; import com.yahoo.config.provision.CloudName; @@ -58,7 +57,6 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { private final int maxRisk; private final int maxIdleHours; private final List<DeploymentSpec.ChangeBlocker> changeBlockers; - private final Optional<String> globalServiceId; private final Optional<AthenzService> athenzService; private final Map<CloudName, CloudAccount> cloudAccounts; private final Optional<Duration> hostTTL; @@ -76,7 +74,6 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { DeploymentSpec.UpgradeRollout upgradeRollout, int minRisk, int maxRisk, int maxIdleHours, List<DeploymentSpec.ChangeBlocker> changeBlockers, - Optional<String> globalServiceId, Optional<AthenzService> athenzService, Map<CloudName, CloudAccount> cloudAccounts, Optional<Duration> hostTTL, @@ -100,7 +97,6 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { this.maxRisk = require(maxRisk >= minRisk, maxRisk, "maximum risk cannot be less than minimum risk score"); this.maxIdleHours = requireInRange(maxIdleHours, "maximum idle hours", 0, 168); this.changeBlockers = Objects.requireNonNull(changeBlockers); - this.globalServiceId = Objects.requireNonNull(globalServiceId); this.athenzService = Objects.requireNonNull(athenzService); this.cloudAccounts = Map.copyOf(cloudAccounts); this.hostTTL = Objects.requireNonNull(hostTTL); @@ -111,7 +107,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { this.zoneEndpoints = Collections.unmodifiableMap(zoneEndpointsCopy); this.bcp = Objects.requireNonNull(bcp); validateZones(new HashSet<>(), new HashSet<>(), this); - validateEndpoints(globalServiceId, this.endpoints); + validateEndpoints(this.endpoints); validateChangeBlockers(changeBlockers, now); validateBcp(bcp); hostTTL.filter(Duration::isNegative).ifPresent(ttl -> illegal("Host TTL cannot be negative")); @@ -155,11 +151,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { } /** Throw an IllegalArgumentException if an endpoint refers to a region that is not declared in 'prod' */ - private void validateEndpoints(Optional<String> globalServiceId, List<Endpoint> endpoints) { - if (globalServiceId.isPresent() && ! endpoints.isEmpty()) { - throw new IllegalArgumentException("Providing both 'endpoints' and 'global-service-id'. Use only 'endpoints'."); - } - + private void validateEndpoints(List<Endpoint> endpoints) { var regions = prodRegions(); for (var endpoint : endpoints){ for (var endpointRegion : endpoint.regions()) { @@ -243,9 +235,6 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { /** Returns time windows where upgrades are disallowed for these instances */ public List<DeploymentSpec.ChangeBlocker> changeBlocker() { return changeBlockers; } - /** Returns the ID of the service to expose through global routing, if present */ - public Optional<String> globalServiceId() { return globalServiceId; } - /** Returns whether the instances in this step can upgrade at the given instant */ public boolean canUpgradeAt(Instant instant) { return changeBlockers.stream().filter(block -> block.blocksVersions()) @@ -323,8 +312,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DeploymentInstanceSpec other = (DeploymentInstanceSpec) o; - return globalServiceId.equals(other.globalServiceId) && - upgradePolicy == other.upgradePolicy && + return upgradePolicy == other.upgradePolicy && revisionTarget == other.revisionTarget && upgradeRollout == other.upgradeRollout && changeBlockers.equals(other.changeBlockers) && @@ -339,7 +327,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { @Override public int hashCode() { - return Objects.hash(globalServiceId, upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints, zoneEndpoints, bcp, tags); + return Objects.hash(upgradePolicy, revisionTarget, upgradeRollout, changeBlockers, steps(), athenzService, notifications, endpoints, zoneEndpoints, bcp, tags); } int deployableHashCode() { @@ -349,7 +337,6 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Steps { toHash[i++] = name; toHash[i++] = endpoints; toHash[i++] = zoneEndpoints; - toHash[i++] = globalServiceId; toHash[i++] = tags; toHash[i++] = bcp; toHash[i++] = cloudAccounts; diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java index 38562eefb03..13bc09883fa 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java @@ -93,7 +93,6 @@ public class DeploymentSpecXmlReader { private static final String athenzDomainAttribute = "athenz-domain"; private static final String testerFlavorAttribute = "tester-flavor"; private static final String majorVersionAttribute = "major-version"; - private static final String globalServiceIdAttribute = "global-service-id"; private static final String cloudAccountAttribute = "cloud-account"; private static final String hostTTLAttribute = "empty-host-ttl"; @@ -234,7 +233,6 @@ public class DeploymentSpecXmlReader { upgradeRollout, minRisk, maxRisk, maxIdleHours, changeBlockers, - Optional.ofNullable(prodAttributes.get(globalServiceIdAttribute)), athenzService, cloudAccounts, hostTTL, @@ -268,12 +266,6 @@ public class DeploymentSpecXmlReader { Optional<AthenzService> athenzService = mostSpecificAttribute(stepTag, athenzServiceAttribute).map(AthenzService::from); Optional<String> testerFlavor = mostSpecificAttribute(stepTag, testerFlavorAttribute); - if (prodTag.equals(stepTag.getTagName())) { - readGlobalServiceId(stepTag).ifPresent(id -> prodAttributes.put(globalServiceIdAttribute, id)); - } else { - if (readGlobalServiceId(stepTag).isPresent()) illegal("Attribute '" + globalServiceIdAttribute + "' is only valid on 'prod' tag"); - } - switch (stepTag.getTagName()) { case testTag: if (Stream.iterate(stepTag, Objects::nonNull, Node::getParentNode) @@ -714,13 +706,6 @@ public class DeploymentSpecXmlReader { return mostSpecificAttribute(tag, hostTTLAttribute).map(s -> toDuration(s, "empty host TTL")); } - private Optional<String> readGlobalServiceId(Element environmentTag) { - String globalServiceId = environmentTag.getAttribute(globalServiceIdAttribute); - if (globalServiceId.isEmpty()) return Optional.empty(); - deprecate(environmentTag, List.of(globalServiceIdAttribute), 7, "See https://cloud.vespa.ai/en/reference/routing#deprecated-syntax"); - return Optional.of(globalServiceId); - } - private List<DeploymentSpec.ChangeBlocker> readChangeBlockers(Element parent, Element globalBlockersParent) { List<DeploymentSpec.ChangeBlocker> changeBlockers = new ArrayList<>(); if (globalBlockersParent != parent) { diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java index d4312a0e54e..c33277dfc6f 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java @@ -13,8 +13,8 @@ import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Tags; import com.yahoo.config.provision.ZoneEndpoint; -import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn; import com.yahoo.config.provision.ZoneEndpoint.AccessType; +import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn; import com.yahoo.test.ManualClock; import org.junit.Test; @@ -46,7 +46,6 @@ import static com.yahoo.config.provision.zone.ZoneId.from; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -74,7 +73,6 @@ public class DeploymentSpecTest { assertTrue(spec.requireInstance("default").concerns(test, Optional.of(RegionName.from("region1")))); // test steps specify no region assertFalse(spec.requireInstance("default").concerns(staging, Optional.empty())); assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty())); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @Test @@ -110,7 +108,6 @@ public class DeploymentSpecTest { assertFalse(spec.requireInstance("default").concerns(test, Optional.empty())); assertTrue(spec.requireInstance("default").concerns(staging, Optional.empty())); assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty())); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @Test @@ -141,7 +138,6 @@ public class DeploymentSpecTest { assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-east1")))); assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-west1")))); assertFalse(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("no-such-region")))); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy()); assertEquals(DeploymentSpec.RevisionTarget.latest, spec.requireInstance("default").revisionTarget()); @@ -350,68 +346,6 @@ public class DeploymentSpecTest { assertTrue(instance.concerns(prod, Optional.of(RegionName.from("us-east1")))); assertTrue(instance.concerns(prod, Optional.of(RegionName.from("us-west1")))); assertFalse(instance.concerns(prod, Optional.of(RegionName.from("no-such-region")))); - assertFalse(instance.globalServiceId().isPresent()); - } - - @Test - public void productionSpecWithGlobalServiceId() { - StringReader r = new StringReader( - "<deployment version='1.0'>" + - " <instance id='default'>" + - " <prod global-service-id='query'>" + - " <region active='true'>us-east-1</region>" + - " <region active='true'>us-west-1</region>" + - " </prod>" + - " </instance>" + - "</deployment>" - ); - - DeploymentSpec spec = DeploymentSpec.fromXml(r); - assertEquals(spec.requireInstance("default").globalServiceId(), Optional.of("query")); - } - - @Test(expected=IllegalArgumentException.class) - public void globalServiceIdInTest() { - StringReader r = new StringReader( - "<deployment version='1.0'>" + - " <instance id='default'>" + - " <test global-service-id='query' />" + - " </instance>" + - "</deployment>" - ); - DeploymentSpec.fromXml(r); - } - - @Test(expected=IllegalArgumentException.class) - public void globalServiceIdInStaging() { - StringReader r = new StringReader( - "<deployment version='1.0'>" + - " <instance id='default'>" + - " <staging global-service-id='query' />" + - " </instance>" + - "</deployment>" - ); - DeploymentSpec.fromXml(r); - } - - @Test - public void productionSpecWithGlobalServiceIdBeforeStaging() { - StringReader r = new StringReader( - "<deployment>" + - " <instance id='default'>" + - " <test/>" + - " <prod global-service-id='qrs'>" + - " <region active='true'>us-west-1</region>" + - " <region active='true'>us-central-1</region>" + - " <region active='true'>us-east-3</region>" + - " </prod>" + - " <staging/>" + - " </instance>" + - "</deployment>" - ); - - DeploymentSpec spec = DeploymentSpec.fromXml(r); - assertEquals("qrs", spec.requireInstance("default").globalServiceId().get()); } @Test @@ -1738,16 +1672,6 @@ public class DeploymentSpecTest { DeploymentSpec.fromXml(""" <deployment> <instance id='default'> - <prod global-service-id='service'> - <region>name</region> - </prod> - </instance> - </deployment>""").deployableHashCode()); - - assertNotEquals(DeploymentSpec.fromXml(referenceSpec).deployableHashCode(), - DeploymentSpec.fromXml(""" - <deployment> - <instance id='default'> <prod> <region>name</region> </prod> diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java index e5578723612..a8c3913c498 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java @@ -8,8 +8,8 @@ import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.ZoneEndpoint; -import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn; import com.yahoo.config.provision.ZoneEndpoint.AccessType; +import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn; import org.junit.Test; import java.io.StringReader; @@ -27,7 +27,6 @@ import static com.yahoo.config.application.api.Notifications.Role.author; import static com.yahoo.config.application.api.Notifications.When.failing; import static com.yahoo.config.application.api.Notifications.When.failingCommit; import static com.yahoo.config.provision.CloudName.AWS; -import static com.yahoo.config.provision.Environment.dev; import static com.yahoo.config.provision.Environment.prod; import static com.yahoo.config.provision.Environment.test; import static com.yahoo.config.provision.zone.ZoneId.defaultId; @@ -59,7 +58,6 @@ public class DeploymentSpecWithoutInstanceTest { assertTrue(spec.requireInstance("default").concerns(test, Optional.of(RegionName.from("region1")))); // test steps specify no region assertFalse(spec.requireInstance("default").concerns(Environment.staging, Optional.empty())); assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty())); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @Test @@ -91,7 +89,6 @@ public class DeploymentSpecWithoutInstanceTest { assertFalse(spec.requireInstance("default").concerns(test, Optional.empty())); assertTrue(spec.requireInstance("default").concerns(Environment.staging, Optional.empty())); assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty())); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @Test @@ -120,8 +117,7 @@ public class DeploymentSpecWithoutInstanceTest { assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-east1")))); assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-west1")))); assertFalse(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("no-such-region")))); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); - + assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy()); assertEquals(DeploymentSpec.UpgradeRollout.separate, spec.requireInstance("default").upgradeRollout()); } @@ -163,7 +159,6 @@ public class DeploymentSpecWithoutInstanceTest { assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-east1")))); assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-west1")))); assertFalse(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("no-such-region")))); - assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @Test @@ -236,21 +231,6 @@ public class DeploymentSpecWithoutInstanceTest { DeploymentSpec.fromXml(r); } - @Test - public void productionSpecWithGlobalServiceId() { - StringReader r = new StringReader( - "<deployment version='1.0'>" + - " <prod global-service-id='query'>" + - " <region active='true'>us-east-1</region>" + - " <region active='true'>us-west-1</region>" + - " </prod>" + - "</deployment>" - ); - - DeploymentSpec spec = DeploymentSpec.fromXml(r); - assertEquals(spec.requireInstance("default").globalServiceId(), Optional.of("query")); - } - @Test(expected=IllegalArgumentException.class) public void globalServiceIdInTest() { StringReader r = new StringReader( @@ -272,24 +252,6 @@ public class DeploymentSpecWithoutInstanceTest { } @Test - public void productionSpecWithGlobalServiceIdBeforeStaging() { - StringReader r = new StringReader( - "<deployment>" + - " <test/>" + - " <prod global-service-id='qrs'>" + - " <region active='true'>us-west-1</region>" + - " <region active='true'>us-central-1</region>" + - " <region active='true'>us-east-3</region>" + - " </prod>" + - " <staging/>" + - "</deployment>" - ); - - DeploymentSpec spec = DeploymentSpec.fromXml(r); - assertEquals("qrs", spec.requireInstance("default").globalServiceId().get()); - } - - @Test public void productionSpecWithUpgradeRollout() { StringReader r = new StringReader( "<deployment>" + diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java index 0193eacba3a..d919a35c7ef 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidator.java @@ -29,9 +29,6 @@ public class DeploymentSpecValidator extends Validator { DeploymentSpec deploymentSpec = DeploymentSpec.fromXml(deploymentReader); List<ContainerModel> containers = model.getRoot().configModelRepo().getModels(ContainerModel.class); for (DeploymentInstanceSpec instance : deploymentSpec.instances()) { - instance.globalServiceId().ifPresent(globalServiceId -> { - requireClusterId(containers, instance.name(), "Attribute 'globalServiceId'", globalServiceId); - }); instance.endpoints().forEach(endpoint -> { requireClusterId(containers, instance.name(), "Endpoint '" + endpoint.endpointId() + "'", endpoint.containerId()); diff --git a/config-model/src/main/resources/schema/deployment.rnc b/config-model/src/main/resources/schema/deployment.rnc index d47ce81eaac..87783c1ee20 100644 --- a/config-model/src/main/resources/schema/deployment.rnc +++ b/config-model/src/main/resources/schema/deployment.rnc @@ -122,7 +122,6 @@ Perf = element perf { } Prod = element prod { - attribute global-service-id { text }? & attribute athenz-service { xsd:string }? & attribute tester-flavor { xsd:string }? & attribute cloud-account { xsd:string }? & diff --git a/config-model/src/test/cfg/application/app1/deployment.xml b/config-model/src/test/cfg/application/app1/deployment.xml index a8771123ecc..25954df1c7d 100644 --- a/config-model/src/test/cfg/application/app1/deployment.xml +++ b/config-model/src/test/cfg/application/app1/deployment.xml @@ -2,8 +2,8 @@ <deployment version="1.0"> <test/> <staging/> - <prod global-service-id="query"> - <region active="true">us-east-3</region> - <region active="false">us-west-1</region> + <prod> + <region>us-east-3</region> + <region>us-west-1</region> </prod> </deployment> diff --git a/config-model/src/test/cfg/application/app_invalid_deployment_xml/deployment.xml b/config-model/src/test/cfg/application/app_invalid_deployment_xml/deployment.xml index 738a3397aad..43f7d74ca69 100644 --- a/config-model/src/test/cfg/application/app_invalid_deployment_xml/deployment.xml +++ b/config-model/src/test/cfg/application/app_invalid_deployment_xml/deployment.xml @@ -2,7 +2,7 @@ <deployment version="1.0"> <test/> <staging/> - <prod global-service-id="query"> + <prod> <region>us-east-3</region> <region invalid="invalid">us-west-1</region> </prod> diff --git a/config-model/src/test/cfg/application/invalid_parallel_deployment_xml/deployment.xml b/config-model/src/test/cfg/application/invalid_parallel_deployment_xml/deployment.xml index 4eaf7926078..24e1ec69507 100644 --- a/config-model/src/test/cfg/application/invalid_parallel_deployment_xml/deployment.xml +++ b/config-model/src/test/cfg/application/invalid_parallel_deployment_xml/deployment.xml @@ -2,7 +2,7 @@ <deployment version="1.0"> <test/> <staging/> - <prod global-service-id="query"> + <prod> <parallel> <instance id="hello" /> </parallel> diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java index c00b2846021..e975421002e 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.model; -import com.google.common.io.Files; import com.yahoo.config.application.api.ApplicationMetaData; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.UnparsedConfigDefinition; @@ -35,7 +34,12 @@ import java.util.Map; import java.util.Set; import java.util.jar.JarEntry; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; public class ApplicationDeployTest { @@ -194,7 +198,7 @@ public class ApplicationDeployTest { void testThatAppWithInvalidParallelDeploymentFails() throws IOException { String expectedMessage = """ 4: <staging/> - 5: <prod global-service-id="query"> + 5: <prod> 6: <parallel> 7: <instance id="hello" /> 8: </parallel> diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java index dba8205c0e7..92efac74530 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/DeploymentSpecValidatorTest.java @@ -19,19 +19,6 @@ import static org.junit.jupiter.api.Assertions.fail; public class DeploymentSpecValidatorTest { @Test - void testDeploymentWithNonExistentGlobalId() { - var deploymentXml = "<?xml version='1.0' encoding='UTF-8'?>" + - "<deployment version='1.0'>" + - " <test />" + - " <prod global-service-id='non-existing'>" + - " <region active='true'>us-east</region>" + - " </prod>" + - "</deployment>"; - assertValidationError("Attribute 'globalServiceId' in instance default: 'non-existing' specified in " + - "deployment.xml does not match any container cluster ID", deploymentXml); - } - - @Test void testEndpointNonExistentContainerId() { var deploymentXml = "<?xml version='1.0' encoding='UTF-8'?>" + "<deployment version='1.0'>" + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java index f0c39ecc920..94d98f526a0 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java @@ -790,42 +790,6 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { } } - @Test - void logs_deployment_spec_deprecations() throws Exception { - String containerService = joinLines("<container id='foo' version='1.0'>", - " <nodes>", - " <node hostalias='host1' />", - " </nodes>", - "</container>"); - String deploymentXml = joinLines("<deployment version='1.0'>", - " <prod global-service-id='foo'>", - " <region active='true'>us-east-1</region>", - " </prod>", - "</deployment>"); - - ApplicationPackage applicationPackage = new MockApplicationPackage.Builder() - .withServices(containerService) - .withDeploymentSpec(deploymentXml) - .build(); - - TestLogger logger = new TestLogger(); - DeployState deployState = new DeployState.Builder() - .applicationPackage(applicationPackage) - .zone(new Zone(Environment.prod, RegionName.from("us-east-1"))) - .properties(new TestProperties().setHostedVespa(true)) - .deployLogger(logger) - .build(); - - createModel(root, deployState, null, DomBuilderTest.parse(containerService)); - assertFalse(logger.msgs.isEmpty()); - assertEquals(Level.WARNING, logger.msgs.get(0).getFirst()); - assertEquals(Level.WARNING, logger.msgs.get(1).getFirst()); - assertEquals("Element 'prod' contains attribute 'global-service-id' deprecated since major version 7. See https://cloud.vespa.ai/en/reference/routing#deprecated-syntax", - logger.msgs.get(0).getSecond()); - assertEquals("Element 'region' contains attribute 'active' deprecated since major version 7. See https://cloud.vespa.ai/en/reference/routing#deprecated-syntax", - logger.msgs.get(1).getSecond()); - } - private void assertComponentConfigured(ApplicationContainer container, String id) { assertTrue(container.getComponents().getComponents().stream().anyMatch(component -> id.equals(component.getComponentId().getName()))); } diff --git a/config-model/src/test/schema-test-files/deployment-with-instances.xml b/config-model/src/test/schema-test-files/deployment-with-instances.xml index 3b872f4c1cf..c9f3af49ac2 100644 --- a/config-model/src/test/schema-test-files/deployment-with-instances.xml +++ b/config-model/src/test/schema-test-files/deployment-with-instances.xml @@ -9,19 +9,19 @@ <instance id="one,two"> <block-change days="mon,tue" hours="14,15" time-zone="CET"/> - <prod global-service-id='qrs' athenz-service='other-service'> - <region active='true'>us-west-1</region> + <prod athenz-service='other-service'> + <region>us-west-1</region> <delay hours='3'/> - <region active='true'>us-central-1</region> + <region>us-central-1</region> <delay hours='3' minutes='7' seconds='13'/> - <region active='true'>us-east-3</region> + <region>us-east-3</region> <parallel> - <region active='true'>us-north-1</region> - <region active='true'>us-south-1</region> + <region>us-north-1</region> + <region>us-south-1</region> </parallel> <parallel> - <region active='true'>us-north-2</region> - <region active='true'>us-south-2</region> + <region>us-north-2</region> + <region>us-south-2</region> </parallel> </prod> <endpoints> @@ -55,7 +55,7 @@ <upgrade policy='conservative'/> <block-change days="mon,tue,wed" hours="14,15"/> <prod> - <region active='true'>us-central-1</region> + <region>us-central-1</region> </prod> <endpoints> <endpoint container-id="barz" /> diff --git a/config-model/src/test/schema-test-files/deployment.xml b/config-model/src/test/schema-test-files/deployment.xml index bc0f070d88c..8317bf4b80c 100644 --- a/config-model/src/test/schema-test-files/deployment.xml +++ b/config-model/src/test/schema-test-files/deployment.xml @@ -5,19 +5,19 @@ <staging/> <block-change revision='true' version='false' days="mon,tue" hours="14,15"/> <block-change days="mon,tue" hours="14,15" time-zone="CET"/> - <prod global-service-id='qrs' athenz-service='other-service'> - <region active='true'>us-west-1</region> + <prod athenz-service='other-service'> + <region>us-west-1</region> <delay hours='3'/> - <region active='true'>us-central-1</region> + <region>us-central-1</region> <delay hours='3' minutes='7' seconds='13'/> - <region active='true'>us-east-3</region> + <region>us-east-3</region> <parallel> - <region active='true'>us-north-1</region> - <region active='true'>us-south-1</region> + <region>us-north-1</region> + <region>us-south-1</region> </parallel> <parallel> - <region active='true'>us-north-2</region> - <region active='true'>us-south-2</region> + <region>us-north-2</region> + <region>us-south-2</region> </parallel> </prod> <endpoints> diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java index f3a2c42852f..9508a67fc01 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server.zookeeper; import com.yahoo.component.Version; -import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ClusterMembership; @@ -102,8 +101,6 @@ public class ZKApplicationPackageTest { assertEquals(dockerImage, readInfo.getHosts().iterator().next().dockerImageRepo().get().asString()); assertTrue(zkApp.getDeployment().isPresent()); assertFalse(zkApp.getDeploymentSpec().isEmpty()); - assertEquals("mydisc", DeploymentSpec.fromXml(zkApp.getDeployment().get()).requireInstance("default").globalServiceId().get()); - assertEquals("mydisc", zkApp.getDeploymentSpec().requireInstance("default").globalServiceId().get()); } private void feed(com.yahoo.vespa.curator.Curator zk, File dirToFeed) throws IOException { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java index 3d550973f22..bceef3fd96f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/RoutingController.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller; import com.google.common.hash.HashCode; import com.google.common.hash.Hashing; import com.google.common.io.BaseEncoding; -import com.yahoo.config.application.api.DeploymentInstanceSpec; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; @@ -158,15 +157,6 @@ public class RoutingController { DeploymentSpec deploymentSpec = application.deploymentSpec(); for (var spec : deploymentSpec.instances()) { ApplicationId instance = application.id().instance(spec.name()); - // Add endpoint declared with legacy syntax - spec.globalServiceId().ifPresent(clusterId -> { - List<DeploymentId> deployments = spec.zones().stream() - .filter(zone -> zone.concerns(Environment.prod)) - .map(zone -> new DeploymentId(instance, ZoneId.from(Environment.prod, zone.region().get()))) - .toList(); - RoutingId routingId = RoutingId.of(instance, EndpointId.defaultId()); - endpoints.addAll(computeGlobalEndpoints(routingId, ClusterSpec.Id.from(clusterId), deployments, generatedEndpoints)); - }); // Add endpoints declared with current syntax spec.endpoints().forEach(declaredEndpoint -> { RoutingId routingId = RoutingId.of(instance, EndpointId.of(declaredEndpoint.endpointId())); @@ -275,7 +265,6 @@ public class RoutingController { } // Add endpoints backed by a rotation, and register them in DNS if necessary - boolean registerLegacyNames = requiresLegacyNames(application.get().deploymentSpec(), instanceName); Instance instance = application.get().require(instanceName); Set<ContainerEndpoint> containerEndpoints = new HashSet<>(); DeploymentId deployment = new DeploymentId(instance.id(), zone); @@ -285,16 +274,11 @@ public class RoutingController { EndpointList rotationEndpoints = globalEndpoints.named(assignedRotation.endpointId(), Scope.global) .requiresRotation(); - // Skip rotations which do not apply to this zone. Legacy names always point to all zones - if (!registerLegacyNames && !assignedRotation.regions().contains(zone.region())) { + // Skip rotations which do not apply to this zone + if (!assignedRotation.regions().contains(zone.region())) { continue; } - // Omit legacy DNS names when assigning rotations using <endpoints/> syntax - if (!registerLegacyNames) { - rotationEndpoints = rotationEndpoints.not().legacy(); - } - // Register names in DNS Rotation rotation = rotationRepository.requireRotation(assignedRotation.rotationId()); for (var endpoint : rotationEndpoints) { @@ -480,13 +464,6 @@ public class RoutingController { return randomizedEndpoints.with(FetchVector.Dimension.APPLICATION_ID, instance.serializedForm()).value(); } - /** Whether legacy global DNS names should be available for given application */ - private static boolean requiresLegacyNames(DeploymentSpec deploymentSpec, InstanceName instanceName) { - return deploymentSpec.instance(instanceName) - .flatMap(DeploymentInstanceSpec::globalServiceId) - .isPresent(); - } - /** Create a common name based on a hash of given application. This must be less than 64 characters long. */ private static String commonNameHashOf(ApplicationId application, SystemName system) { @SuppressWarnings("deprecation") // for Hashing.sha1() diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java index 186e6838a71..0c05d710763 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java @@ -21,8 +21,6 @@ import com.yahoo.config.provision.zone.ZoneApi; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; -import com.yahoo.vespa.hosted.controller.application.EndpointId; -import com.yahoo.vespa.hosted.controller.versions.VespaVersion; import java.time.Instant; import java.util.ArrayList; @@ -31,7 +29,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; @@ -179,9 +176,10 @@ public class ApplicationPackageValidator { if (applicationPackage.validationOverrides().allows(validationId, instant)) return; var endpoints = application.deploymentSpec().instance(instanceName) - .map(ApplicationPackageValidator::allEndpointsOf) + .map(deploymentInstanceSpec1 -> deploymentInstanceSpec1.endpoints()) .orElseGet(List::of); - var newEndpoints = allEndpointsOf(applicationPackage.deploymentSpec().requireInstance(instanceName)); + DeploymentInstanceSpec deploymentInstanceSpec = applicationPackage.deploymentSpec().requireInstance(instanceName); + var newEndpoints = new ArrayList<>(deploymentInstanceSpec.endpoints()); if (newEndpoints.containsAll(endpoints)) return; // Adding new endpoints is fine if (containsAllDestinationsOf(endpoints, newEndpoints)) return; // Adding destinations is fine @@ -255,26 +253,6 @@ public class ApplicationPackageValidator { return containsAllRegions && hasSameCluster; } - /** Returns all configued endpoints of given deployment instance spec */ - private static List<Endpoint> allEndpointsOf(DeploymentInstanceSpec deploymentInstanceSpec) { - var endpoints = new ArrayList<>(deploymentInstanceSpec.endpoints()); - legacyEndpoint(deploymentInstanceSpec).ifPresent(endpoints::add); - return endpoints; - } - - /** Returns global service ID as an endpoint, if any global service ID is set */ - private static Optional<Endpoint> legacyEndpoint(DeploymentInstanceSpec instance) { - return instance.globalServiceId().map(globalServiceId -> { - var targets = instance.zones().stream() - .filter(zone -> zone.environment().isProduction()) - .flatMap(zone -> zone.region().stream()) - .distinct() - .map(region -> new Endpoint.Target(region, instance.name(), 1)) - .toList(); - return new Endpoint(EndpointId.defaultId().id(), globalServiceId, Endpoint.Level.instance, targets); - }); - } - /** Returns a list of the non-compactable IDs of given instance and endpoint */ private static List<String> nonCompactableIds(InstanceName instance, Endpoint endpoint) { List<String> ids = new ArrayList<>(2); @@ -287,16 +265,6 @@ public class ApplicationPackageValidator { return ids; } - private static class InstanceEndpoint { - - private final InstanceName instance; - private final String endpointId; - - public InstanceEndpoint(InstanceName instance, String endpointId) { - this.instance = instance; - this.endpointId = endpointId; - } - - } + private record InstanceEndpoint(InstanceName instance, String endpointId) {} } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java index a309afcd039..8fae3309f2b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/RoutingPolicies.java @@ -658,10 +658,6 @@ public class RoutingPolicies { if (instanceSpec.isEmpty()) { return Set.of(); } - if (instanceSpec.get().globalServiceId().filter(id -> id.equals(loadBalancer.cluster().value())).isPresent()) { - // Legacy assignment always has the default endpoint ID - return Set.of(EndpointId.defaultId()); - } return instanceSpec.get().endpoints().stream() .filter(endpoint -> endpoint.containerId().equals(loadBalancer.cluster().value())) .filter(endpoint -> endpoint.regions().contains(deployment.zoneId().region())) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepository.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepository.java index 1e9f11e0349..d54bdead0bd 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepository.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepository.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.routing.rotation; -import com.yahoo.config.application.api.DeploymentInstanceSpec; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.application.api.Endpoint; import com.yahoo.config.provision.ApplicationId; @@ -63,44 +62,10 @@ public class RotationRepository { } /** - * Returns a single rotation for the given application. This is only used when a rotation is assigned through the - * use of a global service ID. - * - * If a rotation is already assigned to the application, that rotation will be returned. - * If no rotation is assigned, return an available rotation. The caller is responsible for assigning the rotation. - * - * @param instanceSpec the instance deployment spec - * @param instance the instance requesting a rotation - * @param lock lock which must be acquired by the caller - */ - private AssignedRotation assignRotationTo(String globalServiceId, DeploymentInstanceSpec instanceSpec, - Instance instance, RotationLock lock) { - RotationId rotation; - if (instance.rotations().isEmpty()) { - rotation = findAvailableRotation(instance.id(), lock).id(); - } else { - rotation = instance.rotations().get(0).rotationId(); - } - var productionRegions = instanceSpec.zones().stream() - .filter(zone -> zone.environment().isProduction()) - .flatMap(zone -> zone.region().stream()) - .collect(Collectors.toSet()); - if (productionRegions.size() < 2) { - throw new IllegalArgumentException("global-service-id is set but less than 2 prod zones are defined " + - "in instance '" + instance.name() + "'"); - } - return new AssignedRotation(new ClusterSpec.Id(globalServiceId), - EndpointId.defaultId(), - rotation, - productionRegions); - } - - /** * Returns rotation assignments for all endpoints in application. * * If rotations are already assigned, these will be returned. * If rotations are not assigned, a new assignment will be created taking new rotations from the repository. - * This method supports both global-service-id as well as the new endpoints tag. * * @param deploymentSpec The deployment spec of the application * @param instance The application requesting rotations @@ -112,19 +77,7 @@ public class RotationRepository { if (allRotations.isEmpty()) { return List.of(); } - - // Only allow one kind of configuration syntax var instanceSpec = deploymentSpec.requireInstance(instance.name()); - if ( instanceSpec.globalServiceId().isPresent() - && ! instanceSpec.endpoints().isEmpty()) { - throw new IllegalArgumentException("Cannot provision rotations with both global-service-id and 'endpoints'"); - } - - // Support legacy global-service-id - if (instanceSpec.globalServiceId().isPresent()) { - return List.of(assignRotationTo(instanceSpec.globalServiceId().get(), instanceSpec, instance, lock)); - } - return assignRotationsTo(instanceSpec.endpoints(), instance, lock); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 3d2a66adc81..c46a28c4567 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -384,7 +384,7 @@ public class ControllerTest { void testDnsUpdatesForGlobalEndpointLegacySyntax() { var context = tester.newDeploymentContext("tenant1", "app1", "default"); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-west-1") .region("us-central-1") // Two deployments should result in each DNS alias being registered once .build(); @@ -1532,22 +1532,6 @@ public class ControllerTest { } @Test - void testSubmitWithElementDeprecatedOnPreviousMajor() { - DeploymentContext context = tester.newDeploymentContext(); - var applicationPackage = new ApplicationPackageBuilder() - .compileVersion(Version.fromString("8.1")) - .region("us-west-1") - .globalServiceId("qrs") - .build(); - try { - context.submit(applicationPackage).deploy(); - fail("Expected exception"); - } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().contains("Element 'prod' contains attribute 'global-service-id' deprecated since major version 7")); - } - } - - @Test void testDeactivateDeploymentUnknownByController() { DeploymentContext context = tester.newDeploymentContext(); DeploymentId deployment = context.deploymentIdIn(ZoneId.from("prod", "us-west-1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java index 965201ec6da..a70125815b1 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java @@ -65,7 +65,6 @@ public class ApplicationPackageBuilder { private String revisionTarget = "latest"; private String revisionChange = "always"; private String upgradeRollout = null; - private String globalServiceId = null; private String athenzIdentityAttributes = "athenz-domain='domain' athenz-service='service'"; private String searchDefinition = "search test { }"; private Version compileVersion = Version.fromString("6.1"); @@ -101,11 +100,6 @@ public class ApplicationPackageBuilder { return this; } - public ApplicationPackageBuilder globalServiceId(String globalServiceId) { - this.globalServiceId = globalServiceId; - return this; - } - public ApplicationPackageBuilder endpoint(String id, String containerId, String... regions) { endpointsBody.append(" <endpoint"); endpointsBody.append(" id='").append(id).append("'"); @@ -335,13 +329,7 @@ public class ApplicationPackageBuilder { xml.append(" />\n"); }); xml.append(blockChange); - xml.append(" <prod"); - if (globalServiceId != null) { - xml.append(" global-service-id='"); - xml.append(globalServiceId); - xml.append("'"); - } - xml.append(">\n"); + xml.append(" <prod>\n"); xml.append(prodBody); xml.append(" </prod>\n"); if (endpointsBody.length() > 0) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/MetricsReporterTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/MetricsReporterTest.java index 53f2e85ad31..2f4e9a0dbef 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/MetricsReporterTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/MetricsReporterTest.java @@ -275,7 +275,7 @@ public class MetricsReporterTest { void name_service_queue_size_metric() { var tester = new DeploymentTester(); ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("default") + .endpoint("default", "foo") .region("us-west-1") .region("us-east-3") .build(); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index 69b473dce87..f287bc52604 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -78,8 +78,8 @@ public class ApplicationSerializerTest { DeploymentSpec deploymentSpec = DeploymentSpec.fromXml("<deployment version='1.0'>\n" + " <staging/>\n" + " <instance id=\"i1\">\n" + - " <prod global-service-id=\"default\">\n" + - " <region active=\"true\">us-west-1</region>\n" + + " <prod>\n" + + " <region>us-west-1</region>\n" + " </prod>\n" + " </instance>\n" + "</deployment>"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json index ec36f52c23a..32f7e8e8f5a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json @@ -2,7 +2,7 @@ "id": "tenant1:app1", "internal": true, "deploymentIssueId": "321", - "deploymentSpecField": "<deployment version='1.0'>\n <test />\n <!--<staging />-->\n <prod global-service-id=\"foo\">\n <region active=\"true\">us-east-3</region>\n <region active=\"true\">us-west-1</region>\n </prod>\n</deployment>\n", + "deploymentSpecField": "<deployment version='1.0'>\n <test />\n <!--<staging />-->\n <prod>\n <region>us-east-3</region>\n <region>us-west-1</region>\n </prod>\n</deployment>\n", "validationOverrides": "<validation-overrides>\n <allow until=\"2016-04-28\" comment=\"Renaming content cluster\">content-cluster-removal</allow>\n <allow until=\"2016-08-22\" comment=\"Migrating us-east-3 to C-2E\">cluster-size-reduction</allow>\n <allow until=\"2017-06-30\" comment=\"Test Vespa upgrade tests\">force-automatic-tenant-upgrade-test</allow>\n</validation-overrides>\n", "projectId": 102889, "deployingField": { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java index 3cd9d586350..915466dac26 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java @@ -542,7 +542,7 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest { var applicationPackage = new ApplicationPackageBuilder() .trustDefaultCertificate() .instances("default") - .globalServiceId("foo") + .endpoint("default", "foo") .region("aws-us-east-1c") .build(); new ControllerTester(tester).upgradeSystem(new Version("6.1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 14c279c9ef8..98775ea214d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -130,7 +130,7 @@ public class ApplicationApiTest extends ControllerContainerTest { private static final ApplicationPackage applicationPackageDefault = new ApplicationPackageBuilder() .withoutAthenzIdentity() .instances("default") - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-central-1") .region("us-east-3") .region("us-west-1") @@ -140,7 +140,7 @@ public class ApplicationApiTest extends ControllerContainerTest { private static final ApplicationPackage applicationPackageInstance1 = new ApplicationPackageBuilder() .withoutAthenzIdentity() .instances("instance1") - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-central-1") .region("us-east-3") .region("us-west-1") @@ -343,7 +343,7 @@ public class ApplicationApiTest extends ControllerContainerTest { ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .withoutAthenzIdentity() .instances("instance1") - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-west-1") .region("us-east-3") .allow(ValidationId.globalEndpointChange) @@ -864,7 +864,7 @@ public class ApplicationApiTest extends ControllerContainerTest { // Third attempt has a service under the domain of the tenant, and also succeeds. ApplicationPackage packageWithService = new ApplicationPackageBuilder() .instances("instance1") - .globalServiceId("foo") + .endpoint("default", "foo") .athenzIdentity(com.yahoo.config.provision.AthenzDomain.from(ATHENZ_TENANT_DOMAIN.getName()), AthenzService.from("service")) .region("us-central-1") .parallel("us-west-1", "us-east-3") @@ -1043,7 +1043,7 @@ public class ApplicationApiTest extends ControllerContainerTest { var eastZone = ZoneId.from("prod", "us-east-3"); var applicationPackage = new ApplicationPackageBuilder() .instances("instance1") - .globalServiceId("foo") + .endpoint("default", "foo") .region(westZone.region()) .region(eastZone.region()) .build(); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java index 02f030aa758..e41856b0c3d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/RoutingPoliciesTest.java @@ -234,27 +234,6 @@ public class RoutingPoliciesTest { } @Test - void global_routing_policies_legacy_global_service_id() { - var tester = new RoutingPoliciesTester(); - var context = tester.newDeploymentContext("tenant1", "app1", "default"); - int clustersPerZone = 2; - int numberOfDeployments = 2; - var applicationPackage = applicationPackageBuilder() - .region(zone1.region()) - .region(zone2.region()) - .globalServiceId("c0") - .build(); - tester.provisionLoadBalancers(clustersPerZone, context.instanceId(), zone1, zone2); - - // Creates alias records - context.submit(applicationPackage).deferLoadBalancerProvisioningIn(Environment.prod).deploy(); - tester.assertTargets(context.instanceId(), EndpointId.defaultId(), 0, zone1, zone2); - assertEquals(numberOfDeployments * clustersPerZone, - tester.policiesOf(context.instance().id()).size(), - "Routing policy count is equal to cluster count"); - } - - @Test void zone_routing_policies() { zone_routing_policies(false); zone_routing_policies(true); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepositoryTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepositoryTest.java index 168a1345c39..6190680d098 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepositoryTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/routing/rotation/RotationRepositoryTest.java @@ -41,7 +41,7 @@ public class RotationRepositoryTest { ); private static final ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-east-3") .region("us-west-1") .build(); @@ -74,7 +74,7 @@ public class RotationRepositoryTest { // Adding region updates rotation var applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("foo") + .endpoint("default", "foo") .region("us-east-3") .region("us-west-1") .region("us-central-1") @@ -116,15 +116,6 @@ public class RotationRepositoryTest { } @Test - void too_few_zones() { - ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("foo") - .region("us-east-3") - .build(); - application.submit(applicationPackage).runJobExpectingFailure(DeploymentContext.systemTest, "less than 2 prod zones are defined"); - } - - @Test void no_rotation_assigned_for_application_without_service_id() { ApplicationPackage applicationPackage = new ApplicationPackageBuilder() .region("us-east-3") @@ -137,7 +128,7 @@ public class RotationRepositoryTest { @Test void prefixes_system_when_not_main() { ApplicationPackage applicationPackage = new ApplicationPackageBuilder() - .globalServiceId("foo") + .endpoint("default", "foo") .region("cd-us-east-1") .region("cd-us-west-1") .build(); @@ -164,7 +155,7 @@ public class RotationRepositoryTest { .instances("instance1,instance2") .region("us-central-1") .parallel("us-west-1", "us-east-3") - .globalServiceId("global") + .endpoint("default", "global") .build(); var instance1 = tester.newDeploymentContext("tenant1", "application1", "instance1") .submit(applicationPackage) |