From 5b4b91b0066ff327b3e1d9f9597b314a45c8c04c Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 10:26:51 -0600 Subject: [PATCH 1/8] test configurable cert paths --- .../scripts/bootstrap-mongo-orchestration.sh | 39 +++++-------------- .evergreen/scripts/configure-env.sh | 6 ++- .evergreen/scripts/prepare-resources.sh | 24 ------------ .evergreen/scripts/setup-system.sh | 29 +++++++++++++- 4 files changed, 42 insertions(+), 56 deletions(-) delete mode 100755 .evergreen/scripts/prepare-resources.sh diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index 5c6387d4b1..30c8043f34 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -2,40 +2,19 @@ set -eu - -# Enable core dumps if enabled on the machine -# Copied from https://github.com/mongodb/mongo/blob/master/etc/evergreen.yml -if [ -f /proc/self/coredump_filter ]; then - # Set the shell process (and its children processes) to dump ELF headers (bit 4), - # anonymous shared mappings (bit 1), and anonymous private mappings (bit 0). - echo 0x13 >/proc/self/coredump_filter - - if [ -f /sbin/sysctl ]; then - # Check that the core pattern is set explicitly on our distro image instead - # of being the OS's default value. This ensures that coredump names are consistent - # across distros and can be picked up by Evergreen. - core_pattern=$(/sbin/sysctl -n "kernel.core_pattern") - if [ "$core_pattern" = "dump_%e.%p.core" ]; then - echo "Enabling coredumps" - ulimit -c unlimited - fi - fi -fi - -if [ "$(uname -s)" = "Darwin" ]; then - core_pattern_mac=$(/usr/sbin/sysctl -n "kern.corefile") - if [ "$core_pattern_mac" = "dump_%N.%P.core" ]; then - echo "Enabling coredumps" - ulimit -c unlimited - fi -fi - if [ -z "${TEST_CRYPT_SHARED:-}" ]; then export SKIP_CRYPT_SHARED=1 fi -MONGODB_VERSION=${VERSION} \ - TOPOLOGY=${TOPOLOGY} \ +# Override the tls files if applicable. +if [ "${SSL:-}" == "ssl" ]; then + export TLS_CERT_KEY_FILE=${PROJECT_DIRECTORY}/test/certificates/client.pem + export TLS_PEM_KEY_FILE=${PROJECT_DIRECTORY}/test/certificates/server.pem + export TLS_CA_FILE=${PROJECT_DIRECTORY}/test/certificates/ca.pem +fi + +MONGODB_VERSION=${VERSION:-} \ + TOPOLOGY=${TOPOLOGY:-} \ AUTH=${AUTH:-noauth} \ SSL=${SSL:-nossl} \ STORAGE_ENGINE=${STORAGE_ENGINE:-} \ diff --git a/.evergreen/scripts/configure-env.sh b/.evergreen/scripts/configure-env.sh index 5515413562..2cde48bd23 100755 --- a/.evergreen/scripts/configure-env.sh +++ b/.evergreen/scripts/configure-env.sh @@ -76,7 +76,11 @@ EOT # Write the .env file for drivers-tools. rm -rf $DRIVERS_TOOLS -git clone https://github.com/mongodb-labs/drivers-evergreen-tools.git $DRIVERS_TOOLS +BRANCH=master +ORG=mongodb-labs +BRANCH=configurable-cert-paths +ORG=blink1073 +git clone --branch $BRANCH https://github.com/$ORG/drivers-evergreen-tools.git $DRIVERS_TOOLS cat < ${DRIVERS_TOOLS}/.env SKIP_LEGACY_SHELL=1 diff --git a/.evergreen/scripts/prepare-resources.sh b/.evergreen/scripts/prepare-resources.sh deleted file mode 100755 index f5285a39de..0000000000 --- a/.evergreen/scripts/prepare-resources.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -eu - -HERE=$(dirname ${BASH_SOURCE:-$0}) -pushd $HERE -. env.sh - -popd - -# Copy PyMongo's test certificates over driver-evergreen-tools' -cp ${PROJECT_DIRECTORY}/test/certificates/* ${DRIVERS_TOOLS}/.evergreen/x509gen/ - -# Replace MongoOrchestration's client certificate. -cp ${PROJECT_DIRECTORY}/test/certificates/client.pem ${MONGO_ORCHESTRATION_HOME}/lib/client.pem - -if [ -w /etc/hosts ]; then - SUDO="" -else - SUDO="sudo" -fi - -# Add 'server' and 'hostname_not_in_cert' as a hostnames -echo "127.0.0.1 server" | $SUDO tee -a /etc/hosts -echo "127.0.0.1 hostname_not_in_cert" | $SUDO tee -a /etc/hosts diff --git a/.evergreen/scripts/setup-system.sh b/.evergreen/scripts/setup-system.sh index d78d924f6b..0ab08ff01c 100755 --- a/.evergreen/scripts/setup-system.sh +++ b/.evergreen/scripts/setup-system.sh @@ -7,8 +7,35 @@ pushd "$(dirname "$(dirname $HERE)")" echo "Setting up system..." bash .evergreen/scripts/configure-env.sh source .evergreen/scripts/env.sh -bash .evergreen/scripts/prepare-resources.sh bash $DRIVERS_TOOLS/.evergreen/setup.sh bash .evergreen/scripts/install-dependencies.sh popd + +# Enable core dumps if enabled on the machine +# Copied from https://github.com/mongodb/mongo/blob/master/etc/evergreen.yml +if [ -f /proc/self/coredump_filter ]; then + # Set the shell process (and its children processes) to dump ELF headers (bit 4), + # anonymous shared mappings (bit 1), and anonymous private mappings (bit 0). + echo 0x13 >/proc/self/coredump_filter + + if [ -f /sbin/sysctl ]; then + # Check that the core pattern is set explicitly on our distro image instead + # of being the OS's default value. This ensures that coredump names are consistent + # across distros and can be picked up by Evergreen. + core_pattern=$(/sbin/sysctl -n "kernel.core_pattern") + if [ "$core_pattern" = "dump_%e.%p.core" ]; then + echo "Enabling coredumps" + ulimit -c unlimited + fi + fi +fi + +if [ "$(uname -s)" = "Darwin" ]; then + core_pattern_mac=$(/usr/sbin/sysctl -n "kern.corefile") + if [ "$core_pattern_mac" = "dump_%N.%P.core" ]; then + echo "Enabling coredumps" + ulimit -c unlimited + fi +fi + echo "Setting up system... done." From ea71796a1b8d32bfeb51da5dfd7563d63c18a90f Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 10:38:11 -0600 Subject: [PATCH 2/8] fix bootstrap --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index 30c8043f34..ff4efcb587 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -2,15 +2,19 @@ set -eu +HERE=$(dirname ${BASH_SOURCE:-$0}) +HERE="$( cd -- "$HERE" > /dev/null 2>&1 && pwd )" +ROOT=$(dirname "$(dirname $HERE)") + if [ -z "${TEST_CRYPT_SHARED:-}" ]; then export SKIP_CRYPT_SHARED=1 fi # Override the tls files if applicable. if [ "${SSL:-}" == "ssl" ]; then - export TLS_CERT_KEY_FILE=${PROJECT_DIRECTORY}/test/certificates/client.pem - export TLS_PEM_KEY_FILE=${PROJECT_DIRECTORY}/test/certificates/server.pem - export TLS_CA_FILE=${PROJECT_DIRECTORY}/test/certificates/ca.pem + export TLS_CERT_KEY_FILE=${ROOT}/test/certificates/client.pem + export TLS_PEM_KEY_FILE=${ROOT}/test/certificates/server.pem + export TLS_CA_FILE=${ROOT}/test/certificates/ca.pem fi MONGODB_VERSION=${VERSION:-} \ From e22dcd07265f7dd69ef2a320d0ebc9e60851358a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 13:48:18 -0600 Subject: [PATCH 3/8] windows fix --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index ff4efcb587..05a7e718f4 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -6,6 +6,10 @@ HERE=$(dirname ${BASH_SOURCE:-$0}) HERE="$( cd -- "$HERE" > /dev/null 2>&1 && pwd )" ROOT=$(dirname "$(dirname $HERE)") +if [ "Windows_NT" = "${OS:-}" ]; + ROOT=$(cygpath -m $ROOT) +fi + if [ -z "${TEST_CRYPT_SHARED:-}" ]; then export SKIP_CRYPT_SHARED=1 fi From e51153ef289da4b26129da8f4ac27ccd23c8dcce Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 13:53:25 -0600 Subject: [PATCH 4/8] syntax --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index 05a7e718f4..648564e615 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -6,7 +6,7 @@ HERE=$(dirname ${BASH_SOURCE:-$0}) HERE="$( cd -- "$HERE" > /dev/null 2>&1 && pwd )" ROOT=$(dirname "$(dirname $HERE)") -if [ "Windows_NT" = "${OS:-}" ]; +if [ "Windows_NT" = "${OS:-}" ]; then ROOT=$(cygpath -m $ROOT) fi From fc9db37491a8f02c9babe7c5454b1900dd0a4c6b Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 16:08:39 -0600 Subject: [PATCH 5/8] try with normalized paths --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index 648564e615..ff4efcb587 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -6,10 +6,6 @@ HERE=$(dirname ${BASH_SOURCE:-$0}) HERE="$( cd -- "$HERE" > /dev/null 2>&1 && pwd )" ROOT=$(dirname "$(dirname $HERE)") -if [ "Windows_NT" = "${OS:-}" ]; then - ROOT=$(cygpath -m $ROOT) -fi - if [ -z "${TEST_CRYPT_SHARED:-}" ]; then export SKIP_CRYPT_SHARED=1 fi From b273625b624b882b923ddab42c806a629e0e9e06 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 16:45:40 -0600 Subject: [PATCH 6/8] debug windows --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index ff4efcb587..709383fdf0 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -12,6 +12,8 @@ fi # Override the tls files if applicable. if [ "${SSL:-}" == "ssl" ]; then + echo $ROOT + exit 1 export TLS_CERT_KEY_FILE=${ROOT}/test/certificates/client.pem export TLS_PEM_KEY_FILE=${ROOT}/test/certificates/server.pem export TLS_CA_FILE=${ROOT}/test/certificates/ca.pem From be61c7fdc8b044b6053dc19e557ae7e2512b067d Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 25 Feb 2025 16:48:28 -0600 Subject: [PATCH 7/8] debug windows --- .evergreen/scripts/bootstrap-mongo-orchestration.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.evergreen/scripts/bootstrap-mongo-orchestration.sh b/.evergreen/scripts/bootstrap-mongo-orchestration.sh index 709383fdf0..ff4efcb587 100755 --- a/.evergreen/scripts/bootstrap-mongo-orchestration.sh +++ b/.evergreen/scripts/bootstrap-mongo-orchestration.sh @@ -12,8 +12,6 @@ fi # Override the tls files if applicable. if [ "${SSL:-}" == "ssl" ]; then - echo $ROOT - exit 1 export TLS_CERT_KEY_FILE=${ROOT}/test/certificates/client.pem export TLS_PEM_KEY_FILE=${ROOT}/test/certificates/server.pem export TLS_CA_FILE=${ROOT}/test/certificates/ca.pem From 334a7931f0e5d79ac5eecc21e98004cd31c609c7 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 26 Feb 2025 10:25:50 -0600 Subject: [PATCH 8/8] update to upstream --- .evergreen/scripts/configure-env.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.evergreen/scripts/configure-env.sh b/.evergreen/scripts/configure-env.sh index 2cde48bd23..f23af8a811 100755 --- a/.evergreen/scripts/configure-env.sh +++ b/.evergreen/scripts/configure-env.sh @@ -78,8 +78,6 @@ EOT rm -rf $DRIVERS_TOOLS BRANCH=master ORG=mongodb-labs -BRANCH=configurable-cert-paths -ORG=blink1073 git clone --branch $BRANCH https://github.com/$ORG/drivers-evergreen-tools.git $DRIVERS_TOOLS cat < ${DRIVERS_TOOLS}/.env