Skip to content

Commit 6b15f20

Browse files
ci(NODE-6682, NODE-6684): deployed KMS tests and serverless tests use secrets manager (#4385)
1 parent 9419af7 commit 6b15f20

8 files changed

+209
-239
lines changed

.evergreen/config.in.yml

+21-76
Original file line numberDiff line numberDiff line change
@@ -238,27 +238,13 @@ functions:
238238
. ./set-temp-creds.sh
239239
popd
240240
241-
MONGODB_URI="${MONGODB_URI}" \
242-
AUTH=${AUTH} SSL=${SSL} TEST_CSFLE=true \
243-
MONGODB_API_VERSION="${MONGODB_API_VERSION}"
244-
245241
export MONGODB_API_VERSION="${MONGODB_API_VERSION}"
246242
export AUTH="auth"
247243
export SSL="ssl"
248-
export SERVERLESS="1"
249-
export SERVERLESS_ATLAS_USER="${SERVERLESS_ATLAS_USER}"
250-
export SERVERLESS_ATLAS_PASSWORD="${SERVERLESS_ATLAS_PASSWORD}"
251-
export SERVERLESS_URI="${SERVERLESS_URI}"
244+
export TEST_CSFLE=true
252245
253-
echo "setting SERVERLESS_URI: $SERVERLESS_URI"
254-
255-
export MONGODB_URI="${SERVERLESS_URI}"
256-
export SINGLE_MONGOS_LB_URI="${SERVERLESS_URI}"
257-
258-
# Setting MULTI_MONGOS to the SERVERLESS_URI is intentional
259-
# LB tests pick one host out of the comma separated list
260-
# so just passing the one host is equivalent
261-
export MULTI_MONGOS_LB_URI="${SERVERLESS_URI}"
246+
source secrets-export.sh
247+
source serverless.env
262248
263249
bash ${PROJECT_DIRECTORY}/.evergreen/run-serverless-tests.sh
264250
@@ -1171,29 +1157,10 @@ tasks:
11711157
type: setup
11721158
params:
11731159
binary: bash
1174-
add_expansions_to_env: true
11751160
env:
11761161
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
1177-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
1178-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
1179-
GCPKMS_ZONE: ${GCPKMS_ZONE}
1180-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
11811162
args:
1182-
- src/.evergreen/setup-gcp-testing.sh
1183-
# Run Mocha test over on GCE instance
1184-
- command: subprocess.exec
1185-
type: test
1186-
params:
1187-
working_dir: src
1188-
binary: bash
1189-
env:
1190-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
1191-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
1192-
GCPKMS_ZONE: ${GCPKMS_ZONE}
1193-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
1194-
GCPKMS_CMD: "env EXPECTED_GCPKMS_OUTCOME=success bash src/.evergreen/run-gcp-kms-tests.sh"
1195-
args:
1196-
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/run-command.sh
1163+
- src/.evergreen/run-deployed-gcp-kms-tests.sh
11971164

11981165
- name: "test-gcpkms-fail-task"
11991166
# test-gcpkms-fail-task runs in a non-GCE environment.
@@ -1230,9 +1197,10 @@ tasks:
12301197
type: setup
12311198
params:
12321199
binary: bash
1233-
add_expansions_to_env: true
1200+
env:
1201+
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
12341202
args:
1235-
- src/.evergreen/copy-driver-to-azure-and-run.sh
1203+
- src/.evergreen/run-deployed-azure-kms-tests.sh
12361204

12371205
- name: "test-azurekms-fail-task"
12381206
commands:
@@ -1427,32 +1395,24 @@ task_groups:
14271395
setup_group_timeout_secs: 1800 # 30 minutes
14281396
setup_group:
14291397
- func: "fetch source"
1430-
- command: shell.exec
1431-
params:
1432-
shell: bash
1433-
script: |
1434-
${PREPARE_SHELL}
1435-
set +o xtrace
1436-
LOADBALANCED=ON \
1437-
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
1438-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
1439-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
1440-
bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
1441-
- command: expansions.update
1398+
- command: subprocess.exec
14421399
params:
1443-
file: serverless-expansion.yml
1400+
working_dir: "src"
1401+
binary: bash
1402+
env:
1403+
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
1404+
args:
1405+
- .evergreen/setup-serverless.sh
1406+
14441407
teardown_group:
14451408
- func: "upload test results"
1446-
- command: shell.exec
1409+
- command: subprocess.exec
14471410
params:
1448-
script: |
1449-
${PREPARE_SHELL}
1450-
set +o xtrace
1451-
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
1452-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
1453-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
1454-
SERVERLESS_INSTANCE_NAME=${SERVERLESS_INSTANCE_NAME} \
1455-
bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
1411+
working_dir: "src"
1412+
binary: bash
1413+
args:
1414+
- ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
1415+
14561416
tasks:
14571417
- ".serverless"
14581418

@@ -1467,21 +1427,11 @@ task_groups:
14671427
binary: bash
14681428
args:
14691429
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/setup.sh
1470-
- command: expansions.update
1471-
# Load the GCPKMS_GCLOUD, GCPKMS_INSTANCE, GCPKMS_REGION, and GCPKMS_ZONE expansions.
1472-
params:
1473-
file: src/testgcpkms-expansions.yml
14741430

14751431
teardown_group:
14761432
- command: subprocess.exec
14771433
params:
14781434
binary: bash
1479-
add_expansions_to_env: true
1480-
env:
1481-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
1482-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
1483-
GCPKMS_ZONE: ${GCPKMS_ZONE}
1484-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
14851435
args:
14861436
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/teardown.sh
14871437
tasks:
@@ -1500,10 +1450,6 @@ task_groups:
15001450
AZUREKMS_VMNAME_PREFIX: "NODE_DRIVER"
15011451
args:
15021452
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup.sh
1503-
- command: expansions.update
1504-
# Load AZUREKMS_VMNAME into the expansions.
1505-
params:
1506-
file: src/testazurekms-expansions.yml
15071453

15081454
teardown_group:
15091455
# Load expansions again. The setup task may have failed before running `expansions.update`.
@@ -1513,7 +1459,6 @@ task_groups:
15131459
- command: subprocess.exec
15141460
params:
15151461
binary: bash
1516-
add_expansions_to_env: true
15171462
args:
15181463
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/teardown.sh
15191464
tasks:

.evergreen/config.yml

+19-73
Original file line numberDiff line numberDiff line change
@@ -209,27 +209,13 @@ functions:
209209
. ./set-temp-creds.sh
210210
popd
211211
212-
MONGODB_URI="${MONGODB_URI}" \
213-
AUTH=${AUTH} SSL=${SSL} TEST_CSFLE=true \
214-
MONGODB_API_VERSION="${MONGODB_API_VERSION}"
215-
216212
export MONGODB_API_VERSION="${MONGODB_API_VERSION}"
217213
export AUTH="auth"
218214
export SSL="ssl"
219-
export SERVERLESS="1"
220-
export SERVERLESS_ATLAS_USER="${SERVERLESS_ATLAS_USER}"
221-
export SERVERLESS_ATLAS_PASSWORD="${SERVERLESS_ATLAS_PASSWORD}"
222-
export SERVERLESS_URI="${SERVERLESS_URI}"
223-
224-
echo "setting SERVERLESS_URI: $SERVERLESS_URI"
225-
226-
export MONGODB_URI="${SERVERLESS_URI}"
227-
export SINGLE_MONGOS_LB_URI="${SERVERLESS_URI}"
215+
export TEST_CSFLE=true
228216
229-
# Setting MULTI_MONGOS to the SERVERLESS_URI is intentional
230-
# LB tests pick one host out of the comma separated list
231-
# so just passing the one host is equivalent
232-
export MULTI_MONGOS_LB_URI="${SERVERLESS_URI}"
217+
source secrets-export.sh
218+
source serverless.env
233219
234220
bash ${PROJECT_DIRECTORY}/.evergreen/run-serverless-tests.sh
235221
start-load-balancer:
@@ -1130,28 +1116,10 @@ tasks:
11301116
type: setup
11311117
params:
11321118
binary: bash
1133-
add_expansions_to_env: true
11341119
env:
11351120
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
1136-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
1137-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
1138-
GCPKMS_ZONE: ${GCPKMS_ZONE}
1139-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
1140-
args:
1141-
- src/.evergreen/setup-gcp-testing.sh
1142-
- command: subprocess.exec
1143-
type: test
1144-
params:
1145-
working_dir: src
1146-
binary: bash
1147-
env:
1148-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
1149-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
1150-
GCPKMS_ZONE: ${GCPKMS_ZONE}
1151-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
1152-
GCPKMS_CMD: env EXPECTED_GCPKMS_OUTCOME=success bash src/.evergreen/run-gcp-kms-tests.sh
11531121
args:
1154-
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/run-command.sh
1122+
- src/.evergreen/run-deployed-gcp-kms-tests.sh
11551123
- name: test-gcpkms-fail-task
11561124
commands:
11571125
- command: expansions.update
@@ -1184,9 +1152,10 @@ tasks:
11841152
type: setup
11851153
params:
11861154
binary: bash
1187-
add_expansions_to_env: true
1155+
env:
1156+
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
11881157
args:
1189-
- src/.evergreen/copy-driver-to-azure-and-run.sh
1158+
- src/.evergreen/run-deployed-azure-kms-tests.sh
11901159
- name: test-azurekms-fail-task
11911160
commands:
11921161
- command: expansions.update
@@ -4458,32 +4427,22 @@ task_groups:
44584427
setup_group_timeout_secs: 1800
44594428
setup_group:
44604429
- func: fetch source
4461-
- command: shell.exec
4462-
params:
4463-
shell: bash
4464-
script: |
4465-
${PREPARE_SHELL}
4466-
set +o xtrace
4467-
LOADBALANCED=ON \
4468-
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
4469-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
4470-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
4471-
bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
4472-
- command: expansions.update
4430+
- command: subprocess.exec
44734431
params:
4474-
file: serverless-expansion.yml
4432+
working_dir: src
4433+
binary: bash
4434+
env:
4435+
DRIVERS_TOOLS: ${DRIVERS_TOOLS}
4436+
args:
4437+
- .evergreen/setup-serverless.sh
44754438
teardown_group:
44764439
- func: upload test results
4477-
- command: shell.exec
4440+
- command: subprocess.exec
44784441
params:
4479-
script: |
4480-
${PREPARE_SHELL}
4481-
set +o xtrace
4482-
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
4483-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
4484-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
4485-
SERVERLESS_INSTANCE_NAME=${SERVERLESS_INSTANCE_NAME} \
4486-
bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
4442+
working_dir: src
4443+
binary: bash
4444+
args:
4445+
- ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
44874446
tasks:
44884447
- .serverless
44894448
- name: test_gcpkms_task_group
@@ -4497,19 +4456,10 @@ task_groups:
44974456
binary: bash
44984457
args:
44994458
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/setup.sh
4500-
- command: expansions.update
4501-
params:
4502-
file: src/testgcpkms-expansions.yml
45034459
teardown_group:
45044460
- command: subprocess.exec
45054461
params:
45064462
binary: bash
4507-
add_expansions_to_env: true
4508-
env:
4509-
GCPKMS_GCLOUD: ${GCPKMS_GCLOUD}
4510-
GCPKMS_PROJECT: ${GCPKMS_PROJECT}
4511-
GCPKMS_ZONE: ${GCPKMS_ZONE}
4512-
GCPKMS_INSTANCENAME: ${GCPKMS_INSTANCENAME}
45134463
args:
45144464
- ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/teardown.sh
45154465
tasks:
@@ -4527,17 +4477,13 @@ task_groups:
45274477
AZUREKMS_VMNAME_PREFIX: NODE_DRIVER
45284478
args:
45294479
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup.sh
4530-
- command: expansions.update
4531-
params:
4532-
file: src/testazurekms-expansions.yml
45334480
teardown_group:
45344481
- command: expansions.update
45354482
params:
45364483
file: testazurekms-expansions.yml
45374484
- command: subprocess.exec
45384485
params:
45394486
binary: bash
4540-
add_expansions_to_env: true
45414487
args:
45424488
- ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/teardown.sh
45434489
tasks:

.evergreen/copy-driver-to-azure-and-run.sh .evergreen/run-deployed-azure-kms-tests.sh

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
set -o errexit
44
source "${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/secrets-export.sh"
5+
source $DRIVERS_TOOLS/.evergreen/init-node-and-npm-env.sh
56

67
if [ -z ${AZUREKMS_RESOURCEGROUP+omitted} ]; then echo "AZUREKMS_RESOURCEGROUP is unset" && exit 1; fi
78
if [ -z ${AZUREKMS_VMNAME+omitted} ]; then echo "AZUREKMS_VMNAME is unset" && exit 1; fi
89

9-
source $DRIVERS_TOOLS/.evergreen/init-node-and-npm-env.sh
10-
1110
export AZUREKMS_PUBLICKEYPATH=/tmp/testazurekms_publickey
1211
export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
1312

.evergreen/setup-gcp-testing.sh .evergreen/run-deployed-gcp-kms-tests.sh

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#! /usr/bin/env bash
22

33
source "${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/secrets-export.sh"
4+
source $DRIVERS_TOOLS/.evergreen/init-node-and-npm-env.sh
45

56
# Assert required environment variables are present without printing them
67
if [ -z ${GCPKMS_GCLOUD+omitted} ]; then echo "GCPKMS_GCLOUD is unset" && exit 1; fi
@@ -10,8 +11,6 @@ if [ -z ${GCPKMS_INSTANCENAME+omitted} ]; then echo "GCPKMS_INSTANCENAME is unse
1011

1112
set -o errexit
1213

13-
source $DRIVERS_TOOLS/.evergreen/init-node-and-npm-env.sh
14-
1514
export GCPKMS_SRC=node-driver-source.tgz
1615
export GCPKMS_DST=$GCPKMS_INSTANCENAME:
1716

@@ -28,3 +27,6 @@ echo "decompressing node driver tar on gcp ... begin"
2827
export GCPKMS_CMD="tar -xzf $GCPKMS_SRC"
2928
"${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/run-command.sh"
3029
echo "decompressing node driver tar on gcp ... end"
30+
31+
export GCPKMS_CMD="env EXPECTED_GCPKMS_OUTCOME=success bash src/.evergreen/run-gcp-kms-tests.sh"
32+
bash ${DRIVERS_TOOLS}/.evergreen/csfle/gcpkms/run-command.sh

.evergreen/run-serverless-tests.sh

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
source $DRIVERS_TOOLS/.evergreen/init-node-and-npm-env.sh
44

55
if [ -z ${SERVERLESS+omitted} ]; then echo "SERVERLESS is unset" && exit 1; fi
6-
if [ -z ${SERVERLESS_URI+omitted} ]; then echo "SERVERLESS_URI is unset" && exit 1; fi
76
if [ -z ${SINGLE_MONGOS_LB_URI+omitted} ]; then echo "SINGLE_MONGOS_LB_URI is unset" && exit 1; fi
87
if [ -z ${MULTI_MONGOS_LB_URI+omitted} ]; then echo "MULTI_MONGOS_LB_URI is unset" && exit 1; fi
98
if [ -z ${MONGODB_URI+omitted} ]; then echo "MONGODB_URI is unset" && exit 1; fi

.evergreen/setup-serverless.sh

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
bash ${DRIVERS_TOOLS}/.evergreen/secrets_handling/setup-secrets.sh drivers/serverless
4+
bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
5+
6+
cp ${DRIVERS_TOOLS}/.evergreen/serverless/secrets-export.sh .
7+
8+
# generate a source-able expansion file
9+
cat serverless-expansion.yml | sed 's/: /=/g' > serverless.env
10+
11+
echo 'export MONGODB_URI="${SERVERLESS_URI}"' >> serverless.env
12+
echo 'export SINGLE_MONGOS_LB_URI="${SERVERLESS_URI}"' >> serverless.env
13+
echo 'export MULTI_MONGOS_LB_URI="${SERVERLESS_URI}"' >> serverless.env
14+
echo 'export SERVERLESS=1' >> serverless.env

0 commit comments

Comments
 (0)