<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:26:20 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[DRIVERS-2748] Limit max simultaneous Astrolabe Atlas (cloud-qa) clusters</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2748</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-color: #21313c;border-style: solid;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;Astrolabe creates Atlas clusters in the &quot;cloud-qa&quot; environment to test driver behavior during Atlas planned maintenance tasks. The Atlas &quot;cloud-qa&quot; environment limits the max number of simultaneous clusters we can create (max of 25; TODO: Figure out the real number?), and will either return an API error or take a very long time to create clusters (&amp;gt; 1 hour) if that number is exceeded. To prevent hitting that limit, we need to limit how many Astrolabe Evergreen tasks that create Atlas clusters can run in parallel.&lt;/p&gt;

&lt;p&gt;Previously, we used the Evergreen distro &quot;ubuntu1804-drivers-atlas-testing&quot; that was specifically configured to only allow a max of 25 (TODO: Figure out the real number). However, there are two problems with that approach:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;That distro seems to have silently lost the important &quot;max hosts&quot; configuration at some point. That could happen again.&lt;/li&gt;
	&lt;li&gt;We don&apos;t want to create special Evergreen distros every time we need to change to a different base distro.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Instead, we can use &lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Tag sets of tasks and make that set of tasks dependent on other setes of tasks. For example, label all of the Atlas tasks per driver language (e.g. &quot;atlas-go&quot;, &quot;atlas-java&quot;, &quot;atlas-python&quot;, etc) and make each language group run after the previous language group (e.g. &quot;atlas-go&quot; depends on &quot;atlas-java&quot;, &quot;atlas-java&quot; depends on &quot;atlas-python&quot;, etc). That would effectively limit the parallelism to ~14 (which is how many Atlas tasks there are per driver).&lt;br/&gt;
See an example of how to create tag dependencies &lt;a href=&quot;https://github.com/mongodb/mongo-python-driver/blob/8eb74838db37d85b0051d9258af906b6e9ac44bf/.evergreen/config.yml#L2023&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Put all Atlas tasks in an Evergreen &lt;a href=&quot;https://docs.devprod.prod.corp.mongodb.com/evergreen/Project-Configuration/Project-Configuration-Files/#task-groups&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;task_group&lt;/a&gt;. Configure the &lt;tt&gt;task_group&lt;/tt&gt; with &lt;tt&gt;max_hosts&lt;/tt&gt; to limit parallelism (e.g. set it to 25). Note that a &lt;tt&gt;task_group&lt;/tt&gt; changes the task run environment slightly, so could cause unexpected problems.&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Who are the stakeholders?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Are they blocked? Are they annoyed? Are they confused?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Main path? Edge case?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can&apos;t complete?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Does this ticket have a required timeline? What is it?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Needed by e.g. Atlas, Shell, Compass?&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Does this ticket have any functional impact, or is it just test improvements?&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;AcceptanceCriteria&quot;&gt;&lt;/a&gt;&lt;b&gt;Acceptance Criteria&lt;/b&gt;&lt;/h3&gt;

&lt;ul&gt;
	&lt;li&gt;Astrolabe Evergreen builds limit the maximum simultaneous number of Atlas &quot;cloud-qa&quot; clusters to 25 or less.&lt;/li&gt;
	&lt;li&gt;Astrolabe Evergreen builds still complete in a reasonable period of time (&amp;lt; 4 hours).&lt;/li&gt;
	&lt;li&gt;Ideally, only &quot;atlas-&quot; tasks should be limited; &quot;kind-&quot; tasks should not be impacted.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2477086">DRIVERS-2748</key>
            <summary>Limit max simultaneous Astrolabe Atlas (cloud-qa) clusters</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="matt.dale@mongodb.com">Matt Dale</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Oct 2023 23:38:10 +0000</created>
                <updated>Sat, 18 Nov 2023 01:54:31 +0000</updated>
                                                                <component>Astrolabe</component>
                    <component>Atlas Testing</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2430516">NODE-5598</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10940"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2eemc:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>