Skip to content

Commit 0b062e6

Browse files
jyeminvbabanin
authored andcommitted
Remove legacy shell from test scripts (mongodb#1404)
The legacy shell was only used in AWS authentication tests, so updating those gets rid of the last remaining use of the legacy shell. JAVA-4791
1 parent 4c81a75 commit 0b062e6

File tree

2 files changed

+33
-184
lines changed

2 files changed

+33
-184
lines changed

.evergreen/.evg.yml

+31-171
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ functions:
150150
${PREPARE_SHELL}
151151
REQUIRE_API_VERSION=${REQUIRE_API_VERSION} LOAD_BALANCER=${LOAD_BALANCER} MONGODB_VERSION=${VERSION} TOPOLOGY=${TOPOLOGY} \
152152
AUTH=${AUTH} SSL=${SSL} STORAGE_ENGINE=${STORAGE_ENGINE} ORCHESTRATION_FILE=${ORCHESTRATION_FILE} \
153-
INSTALL_LEGACY_SHELL=${INSTALL_LEGACY_SHELL} bash ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
153+
bash ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh
154154
# run-orchestration generates expansion file with the MONGODB_URI for the cluster
155155
- command: expansions.update
156156
params:
@@ -344,241 +344,108 @@ functions:
344344
JAVA_VERSION="8" MONGODB_URI="${plain_auth_mongodb_uri}" .evergreen/run-plain-auth-test.sh
345345
346346
"add aws auth variables to file":
347+
- command: ec2.assume_role
348+
params:
349+
role_arn: ${aws_test_secrets_role}
347350
- command: shell.exec
348351
type: test
349352
params:
353+
include_expansions_in_env: [ "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN" ]
354+
shell: "bash"
350355
working_dir: "src"
351-
silent: true
352356
script: |
353-
cat <<EOF > ${DRIVERS_TOOLS}/.evergreen/auth_aws/aws_e2e_setup.json
354-
{
355-
"iam_auth_ecs_account" : "${iam_auth_ecs_account}",
356-
"iam_auth_ecs_secret_access_key" : "${iam_auth_ecs_secret_access_key}",
357-
"iam_auth_ecs_account_arn": "arn:aws:iam::557821124784:user/authtest_fargate_user",
358-
"iam_auth_ecs_cluster": "${iam_auth_ecs_cluster}",
359-
"iam_auth_ecs_task_definition": "${iam_auth_ecs_task_definition}",
360-
"iam_auth_ecs_subnet_a": "${iam_auth_ecs_subnet_a}",
361-
"iam_auth_ecs_subnet_b": "${iam_auth_ecs_subnet_b}",
362-
"iam_auth_ecs_security_group": "${iam_auth_ecs_security_group}",
363-
364-
"iam_auth_assume_aws_account" : "${iam_auth_assume_aws_account}",
365-
"iam_auth_assume_aws_secret_access_key" : "${iam_auth_assume_aws_secret_access_key}",
366-
"iam_auth_assume_role_name" : "${iam_auth_assume_role_name}",
367-
368-
"iam_auth_ec2_instance_account" : "${iam_auth_ec2_instance_account}",
369-
"iam_auth_ec2_instance_secret_access_key" : "${iam_auth_ec2_instance_secret_access_key}",
370-
"iam_auth_ec2_instance_profile" : "${iam_auth_ec2_instance_profile}",
371-
372-
"iam_auth_assume_web_role_name": "${iam_auth_assume_web_role_name}",
373-
"iam_web_identity_issuer": "${iam_web_identity_issuer}",
374-
"iam_web_identity_rsa_key": "${iam_web_identity_rsa_key}",
375-
"iam_web_identity_jwks_uri": "${iam_web_identity_jwks_uri}",
376-
"iam_web_identity_token_file": "${iam_web_identity_token_file}"
377-
}
378-
EOF
357+
${PREPARE_SHELL}
358+
cd $DRIVERS_TOOLS/.evergreen/auth_aws
359+
./setup_secrets.sh drivers/aws_auth
379360
380361
"run aws auth test with regular aws credentials":
381362
- command: shell.exec
382363
type: test
383364
params:
384-
working_dir: "src"
385365
shell: "bash"
386-
script: |
387-
${PREPARE_SHELL}
388-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
389-
. ./activate-authawsvenv.sh
390-
mongo aws_e2e_regular_aws.js
391-
- command: shell.exec
392-
type: test
393-
params:
394366
working_dir: "src"
395-
silent: true
396367
script: |
397-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
398-
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
399-
USER=$(urlencode ${iam_auth_ecs_account})
400-
PASS=$(urlencode ${iam_auth_ecs_secret_access_key})
401-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
402-
EOF
403-
JAVA_VERSION=${JAVA_VERSION} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} \
404-
AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} \
405-
.evergreen/run-mongodb-aws-test.sh
368+
${PREPARE_SHELL}
369+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh regular
406370
407371
"run aws auth test with assume role credentials":
408372
- command: shell.exec
409373
type: test
410374
params:
411-
working_dir: "src"
412375
shell: "bash"
413-
script: |
414-
${PREPARE_SHELL}
415-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
416-
. ./activate-authawsvenv.sh
417-
mongo aws_e2e_assume_role.js
418-
- command: shell.exec
419-
type: test
420-
params:
421376
working_dir: "src"
422-
silent: true
423377
script: |
424-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
425-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
426-
alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
427-
USER=$(jq -r '.AccessKeyId' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
428-
USER=$(urlencode $USER)
429-
PASS=$(jq -r '.SecretAccessKey' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
430-
PASS=$(urlencode $PASS)
431-
SESSION_TOKEN=$(jq -r '.SessionToken' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
432-
SESSION_TOKEN=$(urlencode $SESSION_TOKEN)
433-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
434-
EOF
435-
JAVA_VERSION=${JAVA_VERSION} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} DRIVERS_TOOLS=${DRIVERS_TOOLS} \
436-
AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} \
437-
.evergreen/run-mongodb-aws-test.sh
378+
${PREPARE_SHELL}
379+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh assume-role
438380
439381
"run aws auth test with aws EC2 credentials":
440382
- command: shell.exec
441383
type: test
442384
params:
443-
working_dir: "src"
444385
shell: "bash"
445-
script: |
446-
${PREPARE_SHELL}
447-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
448-
. ./activate-authawsvenv.sh
449-
mongo aws_e2e_ec2.js
450-
- command: shell.exec
451-
type: test
452-
params:
453386
working_dir: "src"
454-
shell: "bash"
455387
script: |
456388
${PREPARE_SHELL}
457-
# Write an empty prepare_mongodb_aws so no auth environment variables are set.
458-
echo "" > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
459-
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh
389+
if [ "${SKIP_EC2_AUTH_TEST}" = "true" ]; then
390+
echo "This platform does not support the EC2 auth test, skipping..."
391+
exit 0
392+
fi
393+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh ec2
460394
461395
"run aws auth test with web identity credentials":
462396
- command: shell.exec
463397
type: test
464398
params:
465-
working_dir: "src"
466399
shell: "bash"
467-
script: |
468-
${PREPARE_SHELL}
469-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
470-
. ./activate-authawsvenv.sh
471-
mongo aws_e2e_web_identity.js
472-
- command: shell.exec
473-
type: test
474-
params:
475400
working_dir: "src"
476-
shell: "bash"
477-
silent: true
478-
script: |
479-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
480-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
481-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
482-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
483-
EOF
484-
- command: shell.exec
485-
type: test
486-
params:
487-
working_dir: "src"
488-
shell: "bash"
489401
script: |
490402
${PREPARE_SHELL}
491403
if [ "${AWS_CREDENTIAL_PROVIDER}" = "builtIn" ]; then
492404
echo "Built-in AWS credential provider does not support the web identity auth test, skipping..."
493405
exit 0
494406
fi
495-
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} ASSERT_NO_URI_CREDS=true .evergreen/run-mongodb-aws-test.sh
407+
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
408+
echo "This platform does not support the web identity auth test, skipping..."
409+
exit 0
410+
fi
411+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh web-identity
496412
- command: shell.exec
497413
type: test
498414
params:
499-
working_dir: "src"
500415
shell: "bash"
501-
silent: true
502-
script: |
503-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
504-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
505-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
506-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
507-
export AWS_ROLE_SESSION_NAME="test"
508-
EOF
509-
- command: shell.exec
510-
type: test
511-
params:
512416
working_dir: "src"
513-
shell: "bash"
514417
script: |
515418
${PREPARE_SHELL}
516419
if [ "${AWS_CREDENTIAL_PROVIDER}" = "builtIn" ]; then
517420
echo "Built-in AWS credential provider does not support the web identity auth test, skipping..."
518421
exit 0
519422
fi
520-
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} ASSERT_NO_URI_CREDS=true .evergreen/run-mongodb-aws-test.sh
423+
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
424+
echo "This platform does not support the web identity auth test, skipping..."
425+
exit 0
426+
fi
427+
export AWS_ROLE_SESSION_NAME="test"
428+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh web-identity
521429
522430
"run aws auth test with aws credentials as environment variables":
523431
- command: shell.exec
524432
type: test
525433
params:
526-
working_dir: "src"
527434
shell: "bash"
528-
script: |
529-
${PREPARE_SHELL}
530-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
531-
. ./activate-authawsvenv.sh
532-
mongo aws_e2e_regular_aws.js
533-
- command: shell.exec
534-
type: test
535-
params:
536-
working_dir: "src"
537-
silent: true
538-
script: |
539-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
540-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
541-
export AWS_ACCESS_KEY_ID=${iam_auth_ecs_account}
542-
export AWS_SECRET_ACCESS_KEY=${iam_auth_ecs_secret_access_key}
543-
EOF
544-
- command: shell.exec
545-
type: test
546-
params:
547435
working_dir: "src"
548436
script: |
549437
${PREPARE_SHELL}
550-
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh
438+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh env-creds
551439
552440
"run aws auth test with aws credentials and session token as environment variables":
553441
- command: shell.exec
554442
type: test
555443
params:
556-
working_dir: "src"
557444
shell: "bash"
558-
script: |
559-
${PREPARE_SHELL}
560-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
561-
. ./activate-authawsvenv.sh
562-
mongo aws_e2e_assume_role.js
563-
- command: shell.exec
564-
type: test
565-
params:
566-
working_dir: "src"
567-
silent: true
568-
script: |
569-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
570-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
571-
export AWS_ACCESS_KEY_ID=$(jq -r '.AccessKeyId' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
572-
export AWS_SECRET_ACCESS_KEY=$(jq -r '.SecretAccessKey' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
573-
export AWS_SESSION_TOKEN=$(jq -r '.SessionToken' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
574-
EOF
575-
- command: shell.exec
576-
type: test
577-
params:
578445
working_dir: "src"
579446
script: |
580447
${PREPARE_SHELL}
581-
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh
448+
JAVA_VERSION=${JAVA_VERSION} AWS_CREDENTIAL_PROVIDER=${AWS_CREDENTIAL_PROVIDER} .evergreen/run-mongodb-aws-test.sh session-creds
582449
583450
"run aws ECS auth test":
584451
- command: shell.exec
@@ -951,7 +818,6 @@ tasks:
951818
AUTH: "auth"
952819
ORCHESTRATION_FILE: "auth-aws.json"
953820
TOPOLOGY: "server"
954-
INSTALL_LEGACY_SHELL: "true"
955821
- func: "add aws auth variables to file"
956822
- func: "run aws auth test with regular aws credentials"
957823

@@ -962,7 +828,6 @@ tasks:
962828
AUTH: "auth"
963829
ORCHESTRATION_FILE: "auth-aws.json"
964830
TOPOLOGY: "server"
965-
INSTALL_LEGACY_SHELL: "true"
966831
- func: "add aws auth variables to file"
967832
- func: "run aws auth test with assume role credentials"
968833

@@ -973,7 +838,6 @@ tasks:
973838
AUTH: "auth"
974839
ORCHESTRATION_FILE: "auth-aws.json"
975840
TOPOLOGY: "server"
976-
INSTALL_LEGACY_SHELL: "true"
977841
- func: "add aws auth variables to file"
978842
- func: "run aws auth test with aws credentials as environment variables"
979843

@@ -984,7 +848,6 @@ tasks:
984848
AUTH: "auth"
985849
ORCHESTRATION_FILE: "auth-aws.json"
986850
TOPOLOGY: "server"
987-
INSTALL_LEGACY_SHELL: "true"
988851
- func: "add aws auth variables to file"
989852
- func: "run aws auth test with aws credentials and session token as environment variables"
990853

@@ -995,7 +858,6 @@ tasks:
995858
AUTH: "auth"
996859
ORCHESTRATION_FILE: "auth-aws.json"
997860
TOPOLOGY: "server"
998-
INSTALL_LEGACY_SHELL: "true"
999861
- func: "add aws auth variables to file"
1000862
- func: "run aws auth test with aws EC2 credentials"
1001863

@@ -1006,7 +868,6 @@ tasks:
1006868
AUTH: "auth"
1007869
ORCHESTRATION_FILE: "auth-aws.json"
1008870
TOPOLOGY: "server"
1009-
INSTALL_LEGACY_SHELL: "true"
1010871
- func: "add aws auth variables to file"
1011872
- func: "run aws auth test with web identity credentials"
1012873

@@ -1017,7 +878,6 @@ tasks:
1017878
AUTH: "auth"
1018879
ORCHESTRATION_FILE: "auth-aws.json"
1019880
TOPOLOGY: "server"
1020-
INSTALL_LEGACY_SHELL: "true"
1021881
- func: "add aws auth variables to file"
1022882
- func: "run aws ECS auth test"
1023883

.evergreen/run-mongodb-aws-test.sh

+2-13
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,8 @@ RELATIVE_DIR_PATH="$(dirname "${BASH_SOURCE:-$0}")"
1515

1616
echo "Running MONGODB-AWS authentication tests"
1717

18-
19-
# ensure no secrets are printed in log files
20-
set +x
21-
22-
# load the script
23-
shopt -s expand_aliases # needed for `urlencode` alias
24-
[ -s "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh" ] && source "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
25-
26-
MONGODB_URI=${MONGODB_URI:-"mongodb://localhost"}
27-
MONGODB_URI="${MONGODB_URI}/aws?authMechanism=MONGODB-AWS"
28-
if [[ -n ${SESSION_TOKEN} ]]; then
29-
MONGODB_URI="${MONGODB_URI}&authMechanismProperties=AWS_SESSION_TOKEN:${SESSION_TOKEN}"
30-
fi
18+
# Handle credentials and environment setup.
19+
. $DRIVERS_TOOLS/.evergreen/auth_aws/aws_setup.sh $1
3120

3221
# show test output
3322
set -x

0 commit comments

Comments
 (0)