diff options
author | Jon Bratseth <bratseth@gmail.com> | 2023-01-10 16:10:44 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2023-01-10 16:10:44 +0100 |
commit | a2e23868e501b58d05bf6057e7ffe73266a354d1 (patch) | |
tree | 68117d9235501e1d4c99d095b34cb56c89f2e486 /config-application-package | |
parent | f9e53171bbafa3c78abcde4a36d45dabec37ac2d (diff) |
Add a test
Diffstat (limited to 'config-application-package')
5 files changed, 533 insertions, 2 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java index 21bb193ef93..169b1c8557b 100644 --- a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java +++ b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java @@ -13,7 +13,6 @@ import org.w3c.dom.NamedNodeMap; import javax.xml.transform.TransformerException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; diff --git a/config-application-package/src/main/java/com/yahoo/config/application/Xml.java b/config-application-package/src/main/java/com/yahoo/config/application/Xml.java index 2cc5e1ac4e2..cf391f2dd0e 100644 --- a/config-application-package/src/main/java/com/yahoo/config/application/Xml.java +++ b/config-application-package/src/main/java/com/yahoo/config/application/Xml.java @@ -101,7 +101,12 @@ public class Xml { } StringWriter writer = new StringWriter(); transformer.transform(new DOMSource(document), new StreamResult(writer)); - return writer.toString(); + String[] lines = writer.toString().split("\n"); + var b = new StringBuilder(); + for (String line : lines) + if ( ! line.isBlank()) + b.append(line).append("\n"); + return b.toString(); } static String documentAsString(Document document) throws TransformerException { diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java new file mode 100644 index 00000000000..902b4126a29 --- /dev/null +++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java @@ -0,0 +1,119 @@ +package com.yahoo.config.application; + +import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; +import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; +import com.yahoo.io.IOUtils; +import org.custommonkey.xmlunit.XMLUnit; +import org.junit.Test; +import org.w3c.dom.Document; + +import javax.xml.transform.TransformerException; +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class HostedOverrideProcessorComplexTest { + + private static final String servicesFile = "src/test/resources/complex-app/services.xml"; + + static { + XMLUnit.setIgnoreWhitespace(true); + } + + @Test + public void testProdBetaUsWest2a() throws TransformerException, IOException { + String expected = + """ + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0"> + <container id="docsgateway" version="1.0"> + <nodes count="3"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + </container> + <container id="qrs" version="1.0"> + <nodes count="3" required="true"> + <resources disk="64Gb" memory="32Gb" vcpu="16"/> + </nodes> + <search/> + </container> + <container id="visitor" version="1.0"> + <nodes count="2"> + <resources disk="32Gb" memory="16Gb" vcpu="8"/> + </nodes> + <search/> + </container> + <content id="all" version="1.0"> + <nodes count="3" groups="3" required="true"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + <redundancy>1</redundancy> + </content> + <content id="filedocument" version="1.0"> + <nodes count="2" groups="2"> + <resources disk="32Gb" memory="8Gb" vcpu="4"/> + </nodes> + <redundancy>1</redundancy> + </content> + </services> + """; + assertOverride(InstanceName.from("beta1"), + Environment.prod, + RegionName.from("aws-us-west-2a"), + Tags.fromString("beta beta-prod beta-prod-cd"), + expected); + } + + @Test + public void testProdBetaUsEast1b() throws TransformerException, IOException { + String expected = + """ + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0"> + <container id="docsgateway" version="1.0"> + <nodes count="3"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + </container> + <container id="qrs" version="1.0"> + <nodes count="5" required="true"> + <resources disk="64Gb" memory="32Gb" vcpu="16"/> + </nodes> + <search/> + </container> + <container id="visitor" version="1.0"> + <nodes count="2"> + <resources disk="32Gb" memory="16Gb" vcpu="8"/> + </nodes> + <search/> + </container> + <content id="all" version="1.0"> + <nodes count="10" groups="10" required="true"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + <redundancy>1</redundancy> + </content> + <content id="filedocument" version="1.0"> + <nodes count="2" groups="2"> + <resources disk="32Gb" memory="8Gb" vcpu="4"/> + </nodes> + <redundancy>1</redundancy> + </content> + </services> + """; + assertOverride(InstanceName.from("beta1"), + Environment.prod, + RegionName.from("aws-us-east-1b"), + Tags.fromString("beta beta-prod beta-prod-cd"), + expected); + } + + private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException, IOException { + Document inputDoc = Xml.getDocument(IOUtils.createReader(servicesFile)); + Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc); + assertEquals(expected, Xml.documentAsString(newDoc, true)); + } + +} diff --git a/config-application-package/src/test/resources/complex-app/deployment.xml b/config-application-package/src/test/resources/complex-app/deployment.xml new file mode 100644 index 00000000000..1fa3a3a6f78 --- /dev/null +++ b/config-application-package/src/test/resources/complex-app/deployment.xml @@ -0,0 +1,140 @@ +<deployment version="1.0" major-version="8" + athenz-domain="gemini-native.aws-core-dev" athenz-service="csp" + cloud-account="337717828807"> + + <parallel> + <instance id="instance0" cloud-account="417744444827"> + <test tester-flavor="d-8-16-10" /> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + </instance> + + <instance id="instance1" cloud-account="417744444827"> + <test tester-flavor="d-8-16-10" /> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + </instance> + + <instance id="instance2" cloud-account="417744444827"> + <test tester-flavor="d-8-16-10" /> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + </instance> + + <instance id="instance3" cloud-account="417744444827"> + <test tester-flavor="d-8-16-10" /> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + </instance> + + <instance id="stress" cloud-account="417744444827"> + <staging /> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + </instance> + </parallel> + + <instance id="beta1" cloud-account="417744444827" tags="beta beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + <prod> + <parallel> + <steps> + <region>aws-us-west-2a</region> + <test>aws-us-west-2a</test> + </steps> + <steps> + <region>aws-us-east-1b</region> + <test>aws-us-east-1b</test> + </steps> + <steps> + <region>aws-eu-west-1a</region> + <test>aws-eu-west-1a</test> + </steps> + <steps> + <region>aws-ap-southeast-1a</region> + <test>aws-ap-southeast-1a</test> + </steps> + </parallel> + </prod> + </instance> + + <instance id="gamma5" cloud-account="417744444827" tags="gamma prod beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + <prod> + <parallel> + <steps> + <region>aws-us-west-2a</region> + <test>aws-us-west-2a</test> + </steps> + <steps> + <region>aws-us-east-1b</region> + <test>aws-us-east-1b</test> + </steps> + <steps> + <region>aws-eu-west-1a</region> + <test>aws-eu-west-1a</test> + </steps> + <steps> + <region>aws-ap-southeast-1a</region> + <test>aws-ap-southeast-1a</test> + </steps> + </parallel> + </prod> + </instance> + + <instance id="delta21" cloud-account="417744444827" tags="delta prod beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + <prod> + <parallel> + <steps> + <region>aws-us-west-2a</region> + <test>aws-us-west-2a</test> + </steps> + <steps> + <region>aws-us-east-1b</region> + <test>aws-us-east-1b</test> + </steps> + <steps> + <region>aws-eu-west-1a</region> + <test>aws-eu-west-1a</test> + </steps> + <steps> + <region>aws-ap-southeast-1a</region> + <test>aws-ap-southeast-1a</test> + </steps> + </parallel> + </prod> + </instance> + + <instance id="prod21a" cloud-account="417744444827" tags="prod-a prod beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + </instance> + + <instance id="prod21b" cloud-account="417744444827" tags="prod-b prod beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + </instance> + + <instance id="prod21c" cloud-account="417744444827" tags="prod-c prod beta-prod beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + </instance> + + <instance id="cd10" cloud-account="417744444827" tags="cd beta-prod-cd"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + </instance> + + <instance id="prod1" cloud-account="417744444827"> + <block-change version="true" revision="false" days="mon-fri,sun" hours="4-23" time-zone="UTC" /> + <block-change version="true" revision="false" days="sat" hours="0-23" time-zone="UTC" /> + <upgrade revision-change='when-clear' rollout='separate' revision-target='next' policy='conservative'/> + </instance> + +</deployment> diff --git a/config-application-package/src/test/resources/complex-app/services.xml b/config-application-package/src/test/resources/complex-app/services.xml new file mode 100644 index 00000000000..23b5a90e5a2 --- /dev/null +++ b/config-application-package/src/test/resources/complex-app/services.xml @@ -0,0 +1,268 @@ +<services version="1.0" xmlns:deploy="vespa" xmlns:preprocess="properties"> + + <container id="docsgateway" version="1.0"> + + <nodes count="1" deploy:environment="dev" deploy:instance="staging1"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes count="1" deploy:environment="dev" deploy:instance="staging1-root"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes count="3"> + <resources deploy:environment="prod perf" vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + <resources vcpu="8" memory="16Gb" disk="32Gb" /> + </nodes> + + <nodes deploy:environment="staging" count="3"> + <resources vcpu="8" memory="16Gb" disk="32Gb" /> + </nodes> + + </container> + + <container id="qrs" version="1.0"> + <nodes count="1" deploy:environment="dev" deploy:instance="staging1"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="1" deploy:environment="dev" deploy:instance="staging1-root"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2"> + <resources vcpu="8" memory="16Gb" disk="10Gb" /> + <resources deploy:environment="prod perf" vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="25" deploy:tags="gamma" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="cd" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="delta" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-a" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-b" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-c" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="cd" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="delta" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-a" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-b" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-c" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="cd" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="delta" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-a" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-b" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="2" deploy:tags="prod-c" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="3" deploy:tags="beta" deploy:region="aws-us-west-2a aws-eu-west-1a aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="5" deploy:tags="beta" deploy:region="aws-us-east-1b"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="5" deploy:tags="gamma" deploy:region="aws-us-west-2a aws-eu-west-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <nodes count="7" deploy:tags="gamma" deploy:region="aws-ap-southeast-1a"> + <resources vcpu="16" memory="32Gb" disk="64Gb" /> + </nodes> + + <search/> + + </container> + + <container id="visitor" version="1.0"> + <nodes count="2"> + <resources vcpu="8" memory="16Gb" disk="32Gb" /> + </nodes> + + <search/> + </container> + + <content id="all" version="1.0"> + <nodes deploy:tags="gamma" deploy:region="aws-ap-southeast-1a" count="10" groups="10"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="beta" deploy:region="aws-us-east-1b" count="10" groups="10"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:environment="dev" deploy:instance="staging1" count="1" groups="1"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="gamma" deploy:region="aws-us-east-1b" count="25" groups="25"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes count="2" groups="2" /> + + <nodes deploy:environment="dev" deploy:instance="staging1-root" count="2" groups="2"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="cd" deploy:region="aws-ap-southeast-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="delta" deploy:region="aws-ap-southeast-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-a" deploy:region="aws-ap-southeast-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-b" deploy:region="aws-ap-southeast-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-c" deploy:region="aws-ap-southeast-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="cd" deploy:region="aws-eu-west-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="delta" deploy:region="aws-eu-west-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-a" deploy:region="aws-eu-west-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-b" deploy:region="aws-eu-west-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-c" deploy:region="aws-eu-west-1a" count="2" groups="2"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="cd" deploy:region="aws-us-east-1b" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="delta" deploy:region="aws-us-east-1b" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-a" deploy:region="aws-us-east-1b" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-b" deploy:region="aws-us-east-1b" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-c" deploy:region="aws-us-east-1b" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="cd" deploy:region="aws-us-west-2a" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="delta" deploy:region="aws-us-west-2a" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-a" deploy:region="aws-us-west-2a" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-b" deploy:region="aws-us-west-2a" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="prod-c" deploy:region="aws-us-west-2a" count="2" groups="2"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="beta" deploy:region="aws-eu-west-1a" count="3" groups="3"> + <resources vcpu="36" memory="72Gb" disk="900Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="beta" deploy:region="aws-us-west-2a" count="3" groups="3"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:environment="perf" count="4" groups="4"> + <resources vcpu="48" memory="96Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="beta" deploy:region="aws-ap-southeast-1a" count="4" groups="4"> + <resources vcpu="36" memory="72Gb" disk="900Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="gamma" deploy:region="aws-us-west-2a" count="5" groups="5"> + <resources vcpu="96" memory="192Gb" disk="3600Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <nodes deploy:tags="gamma" deploy:region="aws-eu-west-1a" count="8" groups="8"> + <resources vcpu="72" memory="144Gb" disk="1800Gb" disk-speed="fast" storage-type="local" /> + </nodes> + + <redundancy>1</redundancy> + + </content> + + <content id="filedocument" version="1.0"> + <nodes count="2" groups="2"> + <resources vcpu="4" memory="8Gb" disk="32Gb" /> + </nodes> + <redundancy>1</redundancy> + </content> + +</services>
\ No newline at end of file |