Skip to content

Commit 998e3f4

Browse files
wip
1 parent 3359737 commit 998e3f4

35 files changed

+3932
-566
lines changed

.evergreen/config.yml

Lines changed: 210 additions & 194 deletions
Large diffs are not rendered by default.

.evergreen/config/axes.yml.erb

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,26 +65,18 @@ axes:
6565
- id: "topology"
6666
display_name: Topology
6767
values:
68-
- id: "standalone"
69-
display_name: Standalone
68+
- id: "server"
69+
display_name: Server
7070
variables:
71-
TOPOLOGY: standalone
72-
- id: "replica-set"
71+
TOPOLOGY: server
72+
- id: "replica_set"
7373
display_name: Replica Set
7474
variables:
75-
TOPOLOGY: replica-set
76-
- id: "replica-set-single-node"
77-
display_name: Replica Set (Single Node)
75+
TOPOLOGY: replica_set
76+
- id: "sharded_cluster"
77+
display_name: Sharded Cluster
7878
variables:
79-
TOPOLOGY: replica-set-single-node
80-
- id: "sharded-cluster"
81-
display_name: Sharded
82-
variables:
83-
TOPOLOGY: sharded-cluster
84-
- id: "load-balanced"
85-
display_name: Load Balanced
86-
variables:
87-
TOPOLOGY: load-balanced
79+
TOPOLOGY: sharded_cluster
8880

8981
- id: "single-mongos"
9082
display_name: Single Mongos

.evergreen/config/common.yml.erb

Lines changed: 110 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,6 @@ functions:
112112
export OCSP_CONNECTIVITY="${OCSP_CONNECTIVITY}"
113113
export OCSP_VERIFIER="${OCSP_VERIFIER}"
114114

115-
export ATLAS_REPLICA_SET_URI="${atlas_replica_set_uri}"
116-
export ATLAS_SHARDED_URI="${atlas_sharded_uri}"
117-
export ATLAS_FREE_TIER_URI="${atlas_free_tier_uri}"
118-
export ATLAS_TLS11_URI="${atlas_tls11_uri}"
119-
export ATLAS_TLS12_URI="${atlas_tls12_uri}"
120115
export RVM_RUBY="${RVM_RUBY}"
121116
EOT
122117

@@ -129,36 +124,111 @@ functions:
129124
params:
130125
file: src/expansion.yml
131126

132-
"export AWS auth credentials":
127+
bootstrap-mongo-orchestration:
133128
- command: shell.exec
134-
type: test
135129
params:
136-
silent: true
137-
working_dir: "src"
130+
shell: "bash"
138131
script: |
139-
cat <<EOT > .env.private
140-
IAM_AUTH_ASSUME_AWS_ACCOUNT="${iam_auth_assume_aws_account}"
141-
IAM_AUTH_ASSUME_AWS_SECRET_ACCESS_KEY="${iam_auth_assume_aws_secret_access_key}"
142-
IAM_AUTH_ASSUME_ROLE_NAME="${iam_auth_assume_role_name}"
143-
IAM_AUTH_EC2_INSTANCE_ACCOUNT="${iam_auth_ec2_instance_account}"
144-
IAM_AUTH_EC2_INSTANCE_PROFILE="${iam_auth_ec2_instance_profile}"
145-
IAM_AUTH_EC2_INSTANCE_SECRET_ACCESS_KEY="${iam_auth_ec2_instance_secret_access_key}"
146-
IAM_AUTH_ECS_ACCOUNT="${iam_auth_ecs_account}"
147-
IAM_AUTH_ECS_ACCOUNT_ARN="${iam_auth_ecs_account_arn}"
148-
IAM_AUTH_ECS_CLUSTER="${iam_auth_ecs_cluster}"
149-
IAM_AUTH_ECS_SECRET_ACCESS_KEY="${iam_auth_ecs_secret_access_key}"
150-
IAM_AUTH_ECS_SECURITY_GROUP="${iam_auth_ecs_security_group}"
151-
IAM_AUTH_ECS_SUBNET_A="${iam_auth_ecs_subnet_a}"
152-
IAM_AUTH_ECS_SUBNET_B="${iam_auth_ecs_subnet_b}"
153-
IAM_AUTH_ECS_TASK_DEFINITION="${iam_auth_ecs_task_definition_ubuntu2004}"
154-
155-
IAM_WEB_IDENTITY_ISSUER="${iam_web_identity_issuer}"
156-
IAM_WEB_IDENTITY_JWKS_URI="${iam_web_identity_jwks_uri}"
157-
IAM_WEB_IDENTITY_RSA_KEY="${iam_web_identity_rsa_key}"
158-
IAM_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
159-
IAM_AUTH_ASSUME_WEB_ROLE_NAME="${iam_auth_assume_web_role_name}"
132+
set -x
133+
${PREPARE_SHELL}
160134

161-
EOT
135+
MONGODB_VERSION=${VERSION} \
136+
TOPOLOGY=${TOPOLOGY} \
137+
AUTH=${AUTH} \
138+
SSL=${SSL} \
139+
ORCHESTRATION_FILE=${ORCHESTRATION_FILE} \
140+
REQUIRE_API_VERSION=${REQUIRE_API_VERSION} \
141+
LOAD_BALANCER=${LOAD_BALANCER} \
142+
sh ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
143+
- command: expansions.update
144+
params:
145+
file: mo-expansion.yml
146+
147+
run-valid-ocsp-server:
148+
- command: shell.exec
149+
params:
150+
shell: "bash"
151+
background: true
152+
script: |
153+
cd ${DRIVERS_TOOLS}/.evergreen/ocsp
154+
. ./activate-ocspvenv.sh
155+
156+
python ocsp_mock.py \
157+
--ca_file ${OCSP_ALGORITHM}/ca.pem \
158+
--ocsp_responder_cert ${OCSP_ALGORITHM}/ca.crt \
159+
--ocsp_responder_key ${OCSP_ALGORITHM}/ca.key \
160+
-p 8100 -v
161+
162+
run-revoked-ocsp-server:
163+
- command: shell.exec
164+
params:
165+
shell: "bash"
166+
background: true
167+
script: |
168+
cd ${DRIVERS_TOOLS}/.evergreen/ocsp
169+
. ./activate-ocspvenv.sh
170+
171+
python ocsp_mock.py \
172+
--ca_file ${OCSP_ALGORITHM}/ca.pem \
173+
--ocsp_responder_cert ${OCSP_ALGORITHM}/ca.crt \
174+
--ocsp_responder_key ${OCSP_ALGORITHM}/ca.key \
175+
-p 8100 \
176+
-v \
177+
--fault revoked
178+
179+
run-valid-delegate-ocsp-server:
180+
- command: shell.exec
181+
params:
182+
shell: "bash"
183+
background: true
184+
script: |
185+
cd ${DRIVERS_TOOLS}/.evergreen/ocsp
186+
. ./activate-ocspvenv.sh
187+
188+
python ocsp_mock.py \
189+
--ca_file ${OCSP_ALGORITHM}/ca.pem \
190+
--ocsp_responder_cert ${OCSP_ALGORITHM}/ocsp-responder.crt \
191+
--ocsp_responder_key ${OCSP_ALGORITHM}/ocsp-responder.key \
192+
-p 8100 -v
193+
194+
run-revoked-delegate-ocsp-server:
195+
- command: shell.exec
196+
params:
197+
shell: "bash"
198+
background: true
199+
script: |
200+
cd ${DRIVERS_TOOLS}/.evergreen/ocsp
201+
. ./activate-ocspvenv.sh
202+
203+
python ocsp_mock.py \
204+
--ca_file ${OCSP_ALGORITHM}/ca.pem \
205+
--ocsp_responder_cert ${OCSP_ALGORITHM}/ocsp-responder.crt \
206+
--ocsp_responder_key ${OCSP_ALGORITHM}/ocsp-responder.key \
207+
-p 8100 \
208+
-v \
209+
--fault revoked
210+
211+
run-load-balancer:
212+
- command: shell.exec
213+
params:
214+
shell: "bash"
215+
script: |
216+
DRIVERS_TOOLS=${DRIVERS_TOOLS} MONGODB_URI=${MONGODB_URI} bash ${DRIVERS_TOOLS}/.evergreen/run-load-balancer.sh start
217+
- command: expansions.update
218+
params:
219+
file: lb-expansion.yml
220+
221+
"export AWS auth credentials":
222+
- command: ec2.assume_role
223+
params:
224+
role_arn: ${aws_test_secrets_role}
225+
- command: subprocess.exec
226+
type: test
227+
params:
228+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
229+
binary: "bash"
230+
args:
231+
- ${DRIVERS_TOOLS}/.evergreen/auth_aws/setup-secrets.sh
162232

163233
"run CSOT tests":
164234
- command: shell.exec
@@ -168,46 +238,10 @@ functions:
168238
working_dir: "src"
169239
script: |
170240
${PREPARE_SHELL}
171-
# Needed for generating temporary aws credentials.
172-
if [ -n "${FLE}" ];
173-
then
174-
export AWS_ACCESS_KEY_ID="${fle_aws_key}"
175-
export AWS_SECRET_ACCESS_KEY="${fle_aws_secret}"
176-
export AWS_DEFAULT_REGION="${fle_aws_region}"
177-
fi
178241
export CSOT_SPEC_TESTS=1
179242
TEST_CMD="bundle exec rspec spec/spec_tests/client_side_operations_timeout_spec.rb" \
180243
.evergreen/run-tests.sh
181244

182-
"export FLE credentials":
183-
- command: shell.exec
184-
type: test
185-
params:
186-
silent: true
187-
working_dir: "src"
188-
script: |
189-
cat <<EOT > .env.private
190-
MONGO_RUBY_DRIVER_AWS_KEY="${fle_aws_key}"
191-
MONGO_RUBY_DRIVER_AWS_SECRET="${fle_aws_secret}"
192-
MONGO_RUBY_DRIVER_AWS_REGION="${fle_aws_region}"
193-
MONGO_RUBY_DRIVER_AWS_ARN="${fle_aws_arn}"
194-
195-
MONGO_RUBY_DRIVER_AZURE_TENANT_ID="${fle_azure_tenant_id}"
196-
MONGO_RUBY_DRIVER_AZURE_CLIENT_ID="${fle_azure_client_id}"
197-
MONGO_RUBY_DRIVER_AZURE_CLIENT_SECRET="${fle_azure_client_secret}"
198-
MONGO_RUBY_DRIVER_AZURE_IDENTITY_PLATFORM_ENDPOINT="${fle_azure_identity_platform_endpoint}"
199-
MONGO_RUBY_DRIVER_AZURE_KEY_VAULT_ENDPOINT="${fle_azure_key_vault_endpoint}"
200-
MONGO_RUBY_DRIVER_AZURE_KEY_NAME="${fle_azure_key_name}"
201-
202-
MONGO_RUBY_DRIVER_GCP_EMAIL="${fle_gcp_email}"
203-
MONGO_RUBY_DRIVER_GCP_PRIVATE_KEY="${fle_gcp_private_key}"
204-
MONGO_RUBY_DRIVER_GCP_PROJECT_ID="${fle_gcp_project_id}"
205-
MONGO_RUBY_DRIVER_GCP_LOCATION="${fle_gcp_location}"
206-
MONGO_RUBY_DRIVER_GCP_KEY_RING="${fle_gcp_key_ring}"
207-
MONGO_RUBY_DRIVER_GCP_KEY_NAME="${fle_gcp_key_name}"
208-
MONGO_RUBY_DRIVER_MONGOCRYPTD_PORT="${fle_mongocryptd_port}"
209-
EOT
210-
211245
"export Kerberos credentials":
212246
- command: shell.exec
213247
type: test
@@ -338,7 +372,7 @@ functions:
338372
"upload test results":
339373
- command: attach.xunit_results
340374
params:
341-
file: ./src/rspec.xml
375+
file: ./src/tmp/*.xml
342376

343377
"delete private environment":
344378
- command: shell.exec
@@ -370,13 +404,6 @@ functions:
370404
working_dir: "src"
371405
script: |
372406
${PREPARE_SHELL}
373-
# Needed for generating temporary aws credentials.
374-
if [ -n "${FLE}" ];
375-
then
376-
export AWS_ACCESS_KEY_ID="${fle_aws_key}"
377-
export AWS_SECRET_ACCESS_KEY="${fle_aws_secret}"
378-
export AWS_DEFAULT_REGION="${fle_aws_region}"
379-
fi
380407
.evergreen/run-tests.sh
381408

382409
"run AWS auth tests":
@@ -408,26 +435,18 @@ functions:
408435
script: |
409436
${PREPARE_SHELL}
410437
AUTH=${AUTH} SSL=${SSL} TOPOLOGY=${TOPOLOGY} RVM_RUBY="${RVM_RUBY}" \
411-
ATLAS_REPLICA_SET_URI=${atlas_replica_set_uri} ATLAS_SHARDED_URI=${atlas_sharded_uri} \
412-
ATLAS_FREE_TIER_URI=${atlas_free_tier_uri} ATLAS_TLS11_URI=${atlas_tls11_uri} \
413-
ATLAS_TLS12_URI=${atlas_tls12_uri} ATLAS_SERVERLESS_URI=${atlas_serverless_uri} \
414-
ATLAS_SERVERLESS_LB_URI=${atlas_serverless_lb_uri} \
415-
ATLAS_X509_CERT_BASE64="${atlas_x509_cert_base64}" \
416-
ATLAS_X509_URI="${atlas_x509}" \
417-
ATLAS_X509_DEV_CERT_BASE64="${atlas_x509_dev_cert_base64}" \
418-
ATLAS_X509_DEV_URI="${atlas_x509_dev}" \
419438
.evergreen/run-tests-atlas.sh
420439

421440
pre:
422441
- func: "fetch source"
423442
- func: "create expansions"
424443

425444
post:
445+
- func: "upload test results"
426446
- func: "delete private environment"
427447
# Removed, causing timeouts
428448
# - func: "upload working dir"
429449
- func: "upload mo artifacts"
430-
# - func: "upload test results"
431450
- func: "upload test results to s3"
432451

433452
task_groups:
@@ -616,24 +635,29 @@ tasks:
616635
- name: "test-atlas"
617636
commands:
618637
- func: "run Atlas tests"
619-
- name: "test-mlaunch"
638+
- name: "test-main"
620639
commands:
640+
- func: bootstrap-mongo-orchestration
621641
- func: "run tests"
622642
- name: "driver-bench"
623643
commands:
644+
- func: bootstrap-mongo-orchestration
624645
- func: "run benchmarks"
625646
- name: "test-kerberos"
626647
commands:
648+
- func: bootstrap-mongo-orchestration
627649
- func: "run Kerberos unit tests"
628650
- name: "test-csot"
629651
commands:
652+
- func: bootstrap-mongo-orchestration
630653
- func: "run CSOT tests"
631654
- name: "test-fle"
632655
commands:
633-
- func: "export FLE credentials"
656+
- func: bootstrap-mongo-orchestration
634657
- func: "run tests"
635658
- name: "test-aws-auth"
636659
commands:
660+
- func: bootstrap-mongo-orchestration
637661
- func: "export AWS auth credentials"
638662
- func: "run AWS auth tests"
639663
- name: "test-full-atlas-task"

0 commit comments

Comments
 (0)