[DRIVERS-2710] Atlas cluster setup script should create a unique cluster per-invocation, not per commit Created: 30/Aug/23  Updated: 07/Sep/23

Status: Implementing
Project: Drivers
Component/s: None
Fix Version/s: None

Type: Bug Priority: Minor - P4
Reporter: Bailey Pearson Assignee: Bailey Pearson
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
split to CSHARP-4777 Atlas cluster setup script should cre... Backlog
split to CXX-2743 Atlas cluster setup script should cre... Backlog
split to CDRIVER-4714 Atlas cluster setup script should cre... Closed
split to GODRIVER-2969 Atlas cluster setup script should cre... Closed
split to MOTOR-1185 Atlas cluster setup script should cre... Closed
split to NODE-5601 Atlas cluster setup script should cre... Closed
split to RUBY-3324 Atlas cluster setup script should cre... Closed
split to RUST-1755 Atlas cluster setup script should cre... Closed
split to PYTHON-3944 Atlas cluster setup script should cre... Scheduled
split to PHPLIB-1226 Atlas cluster setup script should cre... Closed
split to JAVA-5130 Atlas cluster setup script should cre... Closed
Driver Changes: Needed
Downstream Changes Summary:

setup-atlas-cluster.sh and teardown-atlas-cluster.sh have been updated to ensure that they generate unique atlas clusters per task instead of per commit. both scripts now rely on the default evergreen expansion `task_id`.

If a driver is calling these scripts while using the `include_expansions_in_env` or `add_expansions_to_env`, no changes should be necessary. If a driver is not providing the `task_id` to the setup and teardown script, the config must be updated to pass this expansion as an environment variable for the scripts.

Engineering Lead: Durran Jordan Durran Jordan
Start date:
Driver Compliance:
Key Status/Resolution FixVersion
CDRIVER-4714 Won't Do
CXX-2743 Backlog
CSHARP-4777 Backlog
GODRIVER-2969 Done
JAVA-5130 Done
NODE-5601 Done
MOTOR-1185 Won't Do
PYTHON-3944 Scheduled
PHPLIB-1226 Works as Designed
RUBY-3324 Fixed 2.19.1
RUST-1755 Fixed 2.8.0

 Description   

Summary

drivers-evergreen-tools' setup-atlas-cluster.sh  creates a unique cluster per-commit but not per invocation.  This can lead to race conditions for drivers that have implemented both the search index management API and the FAAS failover testing where the CI tasks setup / teardown a cluster with the same name within the same CI run.  We should add a unique identifier (a task id, a random number, ect) to the provisioned cluster's name so CI tasks do not interfere with each other.

Motivation

Who is the affected end user?

drivers engineers.

How does this affect the end user?

Drivers may see flaky FAAS failover tests and search index tests.

How likely is it that this problem or use case will occur?

likely.

If the problem does occur, what are the consequences and how severe are they?

minor annoyance.

Is this issue urgent?

This ticket should be done soon so that as more drivers implement the new CI tasks, they are not adding flaky tests into their CI and so that drivers who currently have this can fix their flaky tests.

Is this ticket required by a downstream team?

no.

Is this ticket only for tests?

yes.

Acceptance Criteria

Update setup-atlas-cluster to create a unique cluster name per-invocation instead of a unique name per-commit.


Generated at Thu Feb 08 08:26:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.