@@ -487,6 +487,11 @@ functions:
487
487
}
488
488
EOF
489
489
490
+ " assume secrets manager identity " :
491
+ - command : ec2.assume_role
492
+ params :
493
+ role_arn : ${OIDC_AWS_ROLE_ARN}
494
+
490
495
" setup aws env " :
491
496
- command : shell.exec
492
497
type : test
@@ -500,256 +505,129 @@ functions:
500
505
cd -
501
506
502
507
" run aws auth test with regular aws credentials " :
503
- - command : shell.exec
504
- type : test
505
- params :
506
- working_dir : " src"
507
- shell : bash
508
- script : |
509
- ${PREPARE_SHELL}
510
- set -ex
511
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
512
- . ./activate-authawsvenv.sh
513
- python aws_tester.py regular
514
- - command : shell.exec
515
- type : test
516
- params :
517
- working_dir : " src"
518
- silent : true
519
- script : |
520
- cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
521
- alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
522
- USER=$(urlencode ${iam_auth_ecs_account})
523
- PASS=$(urlencode ${iam_auth_ecs_secret_access_key})
524
- export MONGODB_URI="mongodb://$USER:$PASS@localhost:27017/aws?authMechanism=MONGODB-AWS"
525
- EOF
526
- - command : shell.exec
508
+ - command : subprocess.exec
527
509
type : test
528
510
params :
511
+ include_expansions_in_env :
512
+ - MONGODB_URI
513
+ - DRIVERS_TOOLS
514
+ - MONGODB_AWS_SDK
529
515
env :
530
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
516
+ AWS_CREDENTIAL_TYPE : regular
531
517
working_dir : " src"
532
- script : |
533
- ${PREPARE_SHELL}
534
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
518
+ binary : bash
519
+ args :
520
+ - .evergreen/run-mongodb-aws-test.sh
535
521
536
522
" run aws auth test with assume role credentials " :
537
- - command : shell.exec
538
- type : test
539
- params :
540
- working_dir : " src"
541
- shell : bash
542
- script : |
543
- ${PREPARE_SHELL}
544
- set -ex
545
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
546
- . ./activate-authawsvenv.sh
547
- python aws_tester.py assume-role
548
- - command : shell.exec
549
- type : test
550
- params :
551
- working_dir : " src"
552
- silent : true
553
- script : |
554
- cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
555
- alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
556
- alias jsonkey='python3 -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
557
- USER=$(jsonkey AccessKeyId)
558
- USER=$(urlencode $USER)
559
- PASS=$(jsonkey SecretAccessKey)
560
- PASS=$(urlencode $PASS)
561
- SESSION_TOKEN=$(jsonkey SessionToken)
562
- SESSION_TOKEN=$(urlencode $SESSION_TOKEN)
563
- export MONGODB_URI="mongodb://$USER:$PASS@localhost:27017/aws?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:$SESSION_TOKEN"
564
- EOF
565
- - command : shell.exec
523
+ - command : subprocess.exec
566
524
type : test
567
525
params :
526
+ include_expansions_in_env :
527
+ - MONGODB_URI
528
+ - DRIVERS_TOOLS
529
+ - MONGODB_AWS_SDK
568
530
env :
569
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
531
+ AWS_CREDENTIAL_TYPE : assume-role
570
532
working_dir : " src"
571
- script : |
572
- ${PREPARE_SHELL}
573
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
533
+ binary : bash
534
+ args :
535
+ - .evergreen/run-mongodb-aws-test.sh
574
536
575
537
" run aws auth test with aws EC2 credentials " :
576
- - command : shell.exec
577
- type : test
578
- params :
579
- working_dir : " src"
580
- shell : bash
581
- script : |
582
- ${PREPARE_SHELL}
583
- # Write an empty prepare_mongodb_aws so no auth environment variables
584
- # are set.
585
- echo "" > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
586
- set -ex
587
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
588
- . ./activate-authawsvenv.sh
589
- python aws_tester.py ec2
590
- - command : shell.exec
538
+ - command : subprocess.exec
591
539
type : test
592
540
params :
541
+ include_expansions_in_env :
542
+ - MONGODB_URI
543
+ - DRIVERS_TOOLS
544
+ - MONGODB_AWS_SDK
593
545
env :
594
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
595
- working_dir : " src "
596
- script : |
597
- ${PREPARE_SHELL}
598
- export IS_EC2=true
599
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
546
+ AWS_CREDENTIAL_TYPE : ec2
547
+ IS_EC2 : ' true '
548
+ working_dir : src
549
+ binary : bash
550
+ args :
551
+ - .evergreen/run-mongodb-aws-test.sh
600
552
601
553
" run aws auth test with aws credentials as environment variables " :
602
- - command : shell.exec
603
- type : test
604
- params :
605
- working_dir : " src"
606
- silent : true
607
- shell : bash
608
- script : |
609
- set -ex
610
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
611
- . ./activate-authawsvenv.sh
612
- python aws_tester.py regular
613
- cd -
614
- cat <<EOF > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
615
- export AWS_ACCESS_KEY_ID=${iam_auth_ecs_account}
616
- export AWS_SECRET_ACCESS_KEY=${iam_auth_ecs_secret_access_key}
617
- export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS"
618
- EOF
619
- - command : shell.exec
554
+ - command : subprocess.exec
620
555
type : test
621
556
params :
557
+ include_expansions_in_env :
558
+ - MONGODB_URI
559
+ - DRIVERS_TOOLS
560
+ - MONGODB_AWS_SDK
622
561
env :
623
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
562
+ AWS_CREDENTIAL_TYPE : env-creds
624
563
working_dir : " src"
625
- script : |
626
- ${PREPARE_SHELL}
627
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
564
+ binary : bash
565
+ args :
566
+ - .evergreen/run-mongodb-aws-test.sh
628
567
629
568
" run aws auth test with aws credentials and session token as environment variables " :
630
- - command : shell.exec
631
- type : test
632
- params :
633
- working_dir : " src"
634
- silent : true
635
- shell : bash
636
- script : |
637
- set -ex
638
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
639
- . ./activate-authawsvenv.sh
640
- python aws_tester.py assume-role
641
- cd -
642
- cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
643
- export AWS_ACCESS_KEY_ID=$(jq -r '.AccessKeyId' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
644
- export AWS_SECRET_ACCESS_KEY=$(jq -r '.SecretAccessKey' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
645
- export AWS_SESSION_TOKEN=$(jq -r '.SessionToken' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
646
- export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS"
647
- EOF
648
- - command : shell.exec
569
+ - command : subprocess.exec
649
570
type : test
650
571
params :
651
- add_expansions_to_env : true
572
+ include_expansions_in_env :
573
+ - MONGODB_URI
574
+ - DRIVERS_TOOLS
575
+ - MONGODB_AWS_SDK
576
+ env :
577
+ AWS_CREDENTIAL_TYPE : session-creds
652
578
working_dir : " src"
653
- script : |
654
- ${PREPARE_SHELL}
655
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
579
+ binary : bash
580
+ args :
581
+ - .evergreen/run-mongodb-aws-test.sh
656
582
657
583
" run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set " :
658
- - command : shell.exec
659
- type : test
660
- params :
661
- working_dir : " src"
662
- silent : true
663
- shell : bash
664
- script : |
665
- set -ex
666
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
667
- . ./activate-authawsvenv.sh
668
- python aws_tester.py web-identity
669
- cd -
670
- cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
671
- export AWS_WEB_IDENTITY_TOKEN_FILE=${iam_web_identity_token_file}
672
- export AWS_ROLE_ARN=${iam_auth_assume_web_role_name}
673
- export AWS_ROLE_SESSION_NAME='test'
674
- export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS"
675
- EOF
676
- - command : shell.exec
584
+ - command : subprocess.exec
677
585
type : test
678
586
params :
587
+ include_expansions_in_env :
588
+ - MONGODB_URI
589
+ - DRIVERS_TOOLS
590
+ - MONGODB_AWS_SDK
679
591
env :
680
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
592
+ AWS_CREDENTIAL_TYPE : web-identity
593
+ AWS_ROLE_SESSION_NAME : test
681
594
working_dir : " src"
682
- script : |
683
- ${PREPARE_SHELL}
684
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
595
+ binary : bash
596
+ args :
597
+ - .evergreen/run-mongodb-aws-test.sh
685
598
686
599
" run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset " :
687
- - command : shell.exec
688
- type : test
689
- params :
690
- working_dir : " src"
691
- silent : true
692
- shell : bash
693
- script : |
694
- set -ex
695
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
696
- . ./activate-authawsvenv.sh
697
- python aws_tester.py web-identity
698
- cd -
699
- cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
700
- export AWS_WEB_IDENTITY_TOKEN_FILE=${iam_web_identity_token_file}
701
- export AWS_ROLE_ARN=${iam_auth_assume_web_role_name}
702
- export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS"
703
- EOF
704
- - command : shell.exec
600
+ - command : subprocess.exec
705
601
type : test
706
602
params :
603
+ include_expansions_in_env :
604
+ - MONGODB_URI
605
+ - DRIVERS_TOOLS
606
+ - MONGODB_AWS_SDK
707
607
env :
708
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
608
+ AWS_CREDENTIAL_TYPE : web-identity
709
609
working_dir : " src"
710
- script : |
711
- ${PREPARE_SHELL}
712
- ${PROJECT_DIRECTORY}/ .evergreen/run-mongodb-aws-test.sh
610
+ binary : bash
611
+ args :
612
+ - .evergreen/run-mongodb-aws-test.sh
713
613
714
614
" run aws ECS auth test " :
715
- - command : shell .exec
615
+ - command : subprocess .exec
716
616
type : test
717
617
params :
718
- working_dir : src
618
+ include_expansions_in_env :
619
+ - DRIVERS_TOOLS
620
+ - MONGODB_AWS_SDK
621
+ - PROJECT_DIRECTORY
622
+ - MONGODB_BINARIES
719
623
env :
720
- MONGODB_AWS_SDK : ${MONGODB_AWS_SDK}
721
- shell : bash
722
- script : |
723
- ${PREPARE_SHELL}
724
- AUTH_AWS_DIR=${DRIVERS_TOOLS}/.evergreen/auth_aws
725
- ECS_SRC_DIR=$AUTH_AWS_DIR/src
726
-
727
- # pack up project directory to ssh it to the container
728
- mkdir -p $ECS_SRC_DIR/.evergreen
729
-
730
- set -ex
731
-
732
- echo "export MONGODB_AWS_SDK=$MONGODB_AWS_SDK" >> $PROJECT_DIRECTORY/.evergreen/run-mongodb-aws-ecs-test.sh
733
- echo "if [ $MONGODB_AWS_SDK = 'false' ]; then rm -rf ./node_modules/@aws-sdk/credential-providers; fi" >> $PROJECT_DIRECTORY/.evergreen/run-mongodb-aws-ecs-test.sh
734
- echo "npm run check:aws" >> $PROJECT_DIRECTORY/.evergreen/run-mongodb-aws-ecs-test.sh
735
-
736
- cp $PROJECT_DIRECTORY/.evergreen/run-mongodb-aws-ecs-test.sh $ECS_SRC_DIR/.evergreen
737
-
738
- cd ..
739
- tar -czf src.tgz src drivers-tools
740
- mv src.tgz $ECS_SRC_DIR/src.tgz
741
-
742
-
743
- cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
744
- . ./activate-authawsvenv.sh
745
- export MONGODB_BINARIES="${MONGODB_BINARIES}";
746
- export PROJECT_DIRECTORY=$ECS_SRC_DIR;
747
- python aws_tester.py ecs
748
-
624
+ AWS_CREDENTIAL_TYPE : web-identity
625
+ working_dir : " src"
626
+ binary : bash
627
+ args :
628
+ - .evergreen/prepare-mongodb-aws-ecs-auth.sh
629
+
749
630
" run custom csfle tests " :
750
- - command : ec2.assume_role
751
- params :
752
- role_arn : ${OIDC_AWS_ROLE_ARN}
753
631
- command : subprocess.exec
754
632
type : test
755
633
params :
0 commit comments