Skip to content

Commit 356be9b

Browse files
GODRIVER-2928 [master] Use AWS Secrets Manager for Remaining Secrets (#1566)
Co-authored-by: Preston Vasquez <prestonvasquez@icloud.com>
1 parent 39c025a commit 356be9b

9 files changed

+97
-161
lines changed

.evergreen/config.yml

Lines changed: 35 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ functions:
305305
script: |
306306
${PREPARE_SHELL}
307307
# Clean up cse servers
308-
bash ${DRIVERS_TOOLS}/.evergreen/csfle/stop_servers.sh
308+
bash ${DRIVERS_TOOLS}/.evergreen/csfle/stop-servers.sh
309309
- command: shell.exec
310310
params:
311311
shell: "bash"
@@ -366,10 +366,10 @@ functions:
366366
params:
367367
shell: "bash"
368368
working_dir: src/go.mongodb.org/mongo-driver
369-
add_expansions_to_env: true
369+
include_expansions_in_env: ["TOPOLOGY", "AUTH", "SSL", "MONGODB_URI", "CRYPT_SHARED_LIB_PATH", "SKIP_CRYPT_SHARED_LIB", "RACE", "MONGO_GO_DRIVER_COMPRESSOR", "REQUIRE_API_VERSION", "LOAD_BALANCER"]
370370
script: |
371371
${PREPARE_SHELL}
372-
sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
372+
bash ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
373373
374374
create-api-report:
375375
- command: shell.exec
@@ -389,90 +389,32 @@ functions:
389389
file: src/go.mongodb.org/mongo-driver/perf.json
390390

391391
run-enterprise-auth-tests:
392+
- command: ec2.assume_role
393+
params:
394+
role_arn: "${aws_test_secrets_role}"
392395
- command: shell.exec
393396
type: test
394397
params:
395398
shell: "bash"
396399
working_dir: src/go.mongodb.org/mongo-driver
400+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
397401
script: |
398-
# DO NOT ECHO WITH XTRACE
399-
if [ "Windows_NT" = "$OS" ]; then
400-
export GOPATH=$(cygpath -w $(dirname $(dirname $(dirname `pwd`))))
401-
export GOCACHE=$(cygpath -w "$(pwd)/.cache")
402-
else
403-
export GOPATH=$(dirname $(dirname $(dirname `pwd`)))
404-
export GOCACHE="$(pwd)/.cache"
405-
fi;
406-
export GOPATH="$GOPATH"
407-
export GOROOT="${GO_DIST}"
408-
export GOCACHE="$GOCACHE"
409-
export PATH="${GCC_PATH}:${GO_DIST}/bin:$PATH"
410-
export MONGODB_URI="${MONGODB_URI}"
411-
export MONGO_GO_DRIVER_COMPRESSOR="${MONGO_GO_DRIVER_COMPRESSOR}"
412-
413-
make -s evg-test-enterprise-auth
402+
${PREPARE_SHELL}
403+
bash ./etc/run-enterprise-plain-test.sh
414404
415405
run-enterprise-gssapi-auth-tests:
416-
- command: shell.exec
417-
type: test
406+
- command: ec2.assume_role
418407
params:
419-
shell: "bash"
420-
silent: true
421-
working_dir: src/go.mongodb.org/mongo-driver
422-
script: |
423-
# DO NOT ECHO WITH XTRACE
424-
if [ "Windows_NT" = "$OS" ]; then
425-
export GOPATH=$(cygpath -w $(dirname $(dirname $(dirname `pwd`))))
426-
export GOCACHE=$(cygpath -w "$(pwd)/.cache")
427-
export MONGODB_URI=${gssapi_auth_windows_mongodb_uri}
428-
else
429-
export GOPATH=$(dirname $(dirname $(dirname `pwd`)))
430-
export GOCACHE="$(pwd)/.cache"
431-
echo "${gssapi_auth_linux_keytab_base64}" > /tmp/drivers.keytab.base64
432-
base64 --decode /tmp/drivers.keytab.base64 > ${PROJECT_DIRECTORY}/.evergreen/drivers.keytab
433-
mkdir -p ~/.krb5
434-
cat .evergreen/krb5.config | tee -a ~/.krb5/config
435-
kinit -k -t ${PROJECT_DIRECTORY}/.evergreen/drivers.keytab -p "${gssapi_auth_username}"
436-
export MONGODB_URI="${gssapi_auth_linux_mongodb_uri}"
437-
fi;
438-
export GOPATH="$GOPATH"
439-
export GOROOT="${GO_DIST}"
440-
export GOCACHE="$GOCACHE"
441-
export PATH="${GCC_PATH}:${GO_DIST}/bin:$PATH"
442-
export MONGO_GO_DRIVER_COMPRESSOR="${MONGO_GO_DRIVER_COMPRESSOR}"
443-
444-
make -s evg-test-enterprise-auth
445-
446-
run-enterprise-gssapi-service-host-auth-tests:
408+
role_arn: "${aws_test_secrets_role}"
447409
- command: shell.exec
448410
type: test
449411
params:
450412
shell: "bash"
451-
silent: true
452413
working_dir: src/go.mongodb.org/mongo-driver
414+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
453415
script: |
454-
# DO NOT ECHO WITH XTRACE
455-
if [ "Windows_NT" = "$OS" ]; then
456-
export GOPATH=$(cygpath -w $(dirname $(dirname $(dirname `pwd`))))
457-
export GOCACHE=$(cygpath -w "$(pwd)/.cache")
458-
export MONGODB_URI="${gssapi_service_host_auth_windows_mongodb_uri}"
459-
else
460-
export GOPATH=$(dirname $(dirname $(dirname `pwd`)))
461-
export GOCACHE="$(pwd)/.cache"
462-
echo "${gssapi_auth_linux_keytab_base64}" > /tmp/drivers.keytab.base64
463-
base64 --decode /tmp/drivers.keytab.base64 > ${PROJECT_DIRECTORY}/.evergreen/drivers.keytab
464-
mkdir -p ~/.krb5
465-
cat .evergreen/krb5.config | tee -a ~/.krb5/config
466-
kinit -k -t ${PROJECT_DIRECTORY}/.evergreen/drivers.keytab -p "${gssapi_auth_username}"
467-
export MONGODB_URI="${gssapi_service_host_auth_linux_mongodb_uri}"
468-
fi;
469-
export GOPATH="$GOPATH"
470-
export GOROOT="${GO_DIST}"
471-
export GOCACHE="$GOCACHE"
472-
export PATH="${GCC_PATH}:${GO_DIST}/bin:$PATH"
473-
export MONGO_GO_DRIVER_COMPRESSOR="${MONGO_GO_DRIVER_COMPRESSOR}"
474-
475-
make -s evg-test-enterprise-auth
416+
${PREPARE_SHELL}
417+
bash ./etc/run-enterprise-gssapi-test.sh
476418
477419
run-atlas-test:
478420
- command: ec2.assume_role
@@ -513,7 +455,6 @@ functions:
513455
type: test
514456
params:
515457
shell: "bash"
516-
silent: true
517458
working_dir: src/go.mongodb.org/mongo-driver
518459
script: |
519460
${PREPARE_SHELL}
@@ -592,17 +533,9 @@ functions:
592533
params:
593534
shell: "bash"
594535
working_dir: src/go.mongodb.org/mongo-driver
595-
add_expansions_to_env: true
596536
script: |
597537
${PREPARE_SHELL}
598-
599-
AUTH="auth" \
600-
SSL="ssl" \
601-
MONGODB_URI="${SERVERLESS_URI}" \
602-
SERVERLESS="serverless" \
603-
SERVERLESS_ATLAS_USER="${SERVERLESS_ATLAS_USER}" \
604-
MAKEFILE_TARGET=evg-test-serverless \
605-
sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
538+
bash etc/run-serverless-test.sh
606539
607540
run-atlas-data-lake-test:
608541
- command: shell.exec
@@ -718,16 +651,13 @@ functions:
718651
- command: ec2.assume_role
719652
params:
720653
role_arn: ${aws_test_secrets_role}
721-
- command: shell.exec
654+
- command: subprocess.exec
722655
type: test
723656
params:
724657
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
725-
shell: "bash"
726-
working_dir: "src"
727-
script: |
728-
${PREPARE_SHELL}
729-
cd $DRIVERS_TOOLS/.evergreen/auth_aws
730-
./setup_secrets.sh drivers/aws_auth
658+
binary: "bash"
659+
args:
660+
- ${DRIVERS_TOOLS}/.evergreen/auth_aws/setup-secrets.sh
731661

732662
run-aws-auth-test-with-regular-aws-credentials:
733663
- command: shell.exec
@@ -861,14 +791,13 @@ functions:
861791
working_dir: src/go.mongodb.org/mongo-driver
862792
binary: bash
863793
args:
864-
- ${DRIVERS_TOOLS}/.evergreen/csfle/await_servers.sh
794+
- ${DRIVERS_TOOLS}/.evergreen/csfle/await-servers.sh
865795

866796
run-kms-tls-test:
867797
- command: shell.exec
868798
type: test
869799
params:
870800
shell: "bash"
871-
silent: true
872801
working_dir: src/go.mongodb.org/mongo-driver
873802
script: |
874803
${PREPARE_SHELL}
@@ -890,7 +819,6 @@ functions:
890819
type: test
891820
params:
892821
shell: "bash"
893-
silent: true
894822
working_dir: src/go.mongodb.org/mongo-driver
895823
script: |
896824
${PREPARE_SHELL}
@@ -1680,18 +1608,11 @@ tasks:
16801608
tags: ["test", "enterprise-auth"]
16811609
commands:
16821610
- func: run-enterprise-auth-tests
1683-
vars:
1684-
MONGODB_URI: "${plain_auth_mongodb_uri}"
16851611

16861612
- name: test-enterprise-auth-gssapi
16871613
tags: ["test", "enterprise-auth"]
16881614
commands:
16891615
- func: run-enterprise-gssapi-auth-tests
1690-
1691-
- name: test-enterprise-auth-gssapi-service-host
1692-
tags: ["test", "enterprise-auth"]
1693-
commands:
1694-
- func: run-enterprise-gssapi-service-host-auth-tests
16951616
vars:
16961617
MONGO_GO_DRIVER_COMPRESSOR: "snappy"
16971618

@@ -1834,7 +1755,7 @@ tasks:
18341755
PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
18351756
make build-kms-test
18361757
echo "Building build-kms-test ... end"
1837-
1758+
source $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/secrets-export.sh
18381759
echo "Copying files ... begin"
18391760
export GCPKMS_GCLOUD=${GCPKMS_GCLOUD}
18401761
export GCPKMS_PROJECT=${GCPKMS_PROJECT}
@@ -1855,6 +1776,7 @@ tasks:
18551776
working_dir: src/go.mongodb.org/mongo-driver
18561777
script: |
18571778
${PREPARE_SHELL}
1779+
source $DRIVERS_TOOLS/.evergreen/csfle/gcpkms/secrets-export.sh
18581780
export GCPKMS_GCLOUD=${GCPKMS_GCLOUD}
18591781
export GCPKMS_PROJECT=${GCPKMS_PROJECT}
18601782
export GCPKMS_ZONE=${GCPKMS_ZONE}
@@ -1889,23 +1811,10 @@ tasks:
18891811
type: test
18901812
params:
18911813
shell: "bash"
1892-
silent: true
18931814
working_dir: src/go.mongodb.org/mongo-driver
18941815
script: |
18951816
${PREPARE_SHELL}
1896-
echo "Building build-kms-test ... begin"
1897-
BUILD_TAGS="-tags=cse" \
1898-
PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1899-
make build-kms-test
1900-
echo "Building build-kms-test ... end"
1901-
1902-
export AWS_ACCESS_KEY_ID="${cse_aws_access_key_id}"
1903-
export AWS_SECRET_ACCESS_KEY="${cse_aws_secret_access_key}"
1904-
1905-
LD_LIBRARY_PATH=./install/libmongocrypt/lib64 \
1906-
MONGODB_URI='${atlas_free_tier_uri}' \
1907-
PROVIDER='aws' \
1908-
./testkms
1817+
bash etc/run-awskms-test.sh
19091818
19101819
- name: "testawskms-fail-task"
19111820
# testawskms-fail-task runs without environment variables.
@@ -1918,17 +1827,8 @@ tasks:
19181827
working_dir: src/go.mongodb.org/mongo-driver
19191828
script: |
19201829
${PREPARE_SHELL}
1921-
echo "Building build-kms-test ... begin"
1922-
BUILD_TAGS="-tags=cse" \
1923-
PKG_CONFIG_PATH=$PKG_CONFIG_PATH \
1924-
make build-kms-test
1925-
echo "Building build-kms-test ... end"
1926-
1927-
LD_LIBRARY_PATH=./install/libmongocrypt/lib64 \
1928-
MONGODB_URI='${atlas_free_tier_uri}' \
1929-
EXPECT_ERROR='status=400' \
1930-
PROVIDER='aws' \
1931-
./testkms
1830+
export EXPECT_ERROR='status=400'
1831+
bash etc/run-awskms-test.sh
19321832
19331833
- name: "testazurekms-task"
19341834
commands:
@@ -1963,8 +1863,7 @@ tasks:
19631863
working_dir: src/go.mongodb.org/mongo-driver
19641864
script: |
19651865
${PREPARE_SHELL}
1966-
# Get azurekms credentials from the vault.
1967-
. ./etc/get_aws_secrets.sh drivers/azurekms
1866+
source ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup-secrets.sh
19681867
export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
19691868
export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
19701869
export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
@@ -2008,11 +1907,11 @@ tasks:
20081907
params:
20091908
working_dir: src/go.mongodb.org/mongo-driver
20101909
shell: bash
2011-
add_expansions_to_env: true
20121910
env:
20131911
TEST_LAMBDA_DIRECTORY: ${PROJECT_DIRECTORY}/internal/cmd/faas/awslambda
20141912
LAMBDA_STACK_NAME: dbx-go-lambda
20151913
AWS_REGION: us-east-1
1914+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
20161915
script: |
20171916
${PREPARE_SHELL}
20181917
./.evergreen/run-deployed-lambda-aws-tests.sh
@@ -2248,10 +2147,6 @@ task_groups:
22482147
shell: "bash"
22492148
script: |
22502149
${PREPARE_SHELL}
2251-
echo '${testgcpkms_key_file}' > /tmp/testgcpkms_key_file.json
2252-
export GCPKMS_KEYFILE=/tmp/testgcpkms_key_file.json
2253-
export GCPKMS_DRIVERS_TOOLS=$DRIVERS_TOOLS
2254-
export GCPKMS_SERVICEACCOUNT="${testgcpkms_service_account}"
22552150
$DRIVERS_TOOLS/.evergreen/csfle/gcpkms/create-and-setup-instance.sh
22562151
# Load the GCPKMS_GCLOUD, GCPKMS_INSTANCE, GCPKMS_REGION, and GCPKMS_ZONE expansions.
22572152
- command: expansions.update
@@ -2263,10 +2158,6 @@ task_groups:
22632158
shell: "bash"
22642159
script: |
22652160
${PREPARE_SHELL}
2266-
export GCPKMS_GCLOUD=${GCPKMS_GCLOUD}
2267-
export GCPKMS_PROJECT=${GCPKMS_PROJECT}
2268-
export GCPKMS_ZONE=${GCPKMS_ZONE}
2269-
export GCPKMS_INSTANCENAME=${GCPKMS_INSTANCENAME}
22702161
$DRIVERS_TOOLS/.evergreen/csfle/gcpkms/delete-instance.sh
22712162
- func: handle-test-artifacts
22722163
- func: cleanup
@@ -2290,9 +2181,8 @@ task_groups:
22902181
export AZUREKMS_VMNAME_PREFIX="GODRIVER"
22912182
export AZUREKMS_DRIVERS_TOOLS=$DRIVERS_TOOLS
22922183
# Get azurekms credentials from the vault.
2293-
bash $DRIVERS_TOOLS/.evergreen/auth_aws/setup_secrets.sh drivers/azurekms
2294-
source ./secrets-export.sh
2295-
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/create-and-setup-vm.sh
2184+
. ${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/setup-secrets.sh
2185+
${DRIVERS_TOOLS}/.evergreen/csfle/azurekms/create-and-setup-vm.sh
22962186
- command: expansions.update
22972187
params:
22982188
file: testazurekms-expansions.yml
@@ -2322,21 +2212,18 @@ task_groups:
23222212
params:
23232213
working_dir: src/go.mongodb.org/mongo-driver
23242214
binary: bash
2325-
add_expansions_to_env: true
23262215
env:
23272216
LAMBDA_STACK_NAME: dbx-go-lambda
23282217
AWS_REGION: us-east-1
2218+
task_id: ${task_id}
2219+
execution: ${execution}
23292220
args:
23302221
- ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
2331-
- command: expansions.update
2332-
params:
2333-
file: src/go.mongodb.org/mongo-driver/atlas-expansion.yml
23342222
teardown_group:
23352223
- command: subprocess.exec
23362224
params:
23372225
working_dir: src/go.mongodb.org/mongo-driver
23382226
binary: bash
2339-
add_expansions_to_env: true
23402227
env:
23412228
LAMBDA_STACK_NAME: dbx-go-lambda
23422229
AWS_REGION: us-east-1
@@ -2357,9 +2244,12 @@ task_groups:
23572244
params:
23582245
working_dir: src/go.mongodb.org/mongo-driver
23592246
binary: bash
2360-
add_expansions_to_env: true
23612247
env:
23622248
MONGODB_VERSION: "7.0"
2249+
LAMBDA_STACK_NAME: dbx-go-lambda
2250+
AWS_REGION: us-east-1
2251+
task_id: ${task_id}
2252+
execution: ${execution}
23632253
args:
23642254
- ${DRIVERS_TOOLS}/.evergreen/atlas/setup-atlas-cluster.sh
23652255
- command: expansions.update
@@ -2379,7 +2269,6 @@ task_groups:
23792269
params:
23802270
working_dir: src/go.mongodb.org/mongo-driver
23812271
binary: bash
2382-
add_expansions_to_env: true
23832272
args:
23842273
- ${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh
23852274
- func: handle-test-artifacts

.evergreen/run-deployed-lambda-aws-tests.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#
33
set -o errexit # Exit the script with error if any of the commands fail.
44

5+
source ${DRIVERS_TOOLS}/.evergreen/atlas/secrets-export.sh
6+
57
VARLIST=(
68
AWS_REGION
79
DRIVERS_TOOLS

0 commit comments

Comments
 (0)