Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
218 changes: 197 additions & 21 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2354,16 +2354,6 @@ axes:
variables:
ORCHESTRATION_FILE: "versioned-api-testing.json"

# Run load balancer tests?
- id: loadbalancer
display_name: "Load Balancer"
values:
- id: "enabled"
display_name: "Load Balancer"
variables:
test_loadbalancer: true
batchtime: 10080 # 7 days

- id: serverless
display_name: "Serverless"
values:
Expand Down Expand Up @@ -3580,6 +3570,203 @@ buildvariants:
VERSION: "8.0"
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3

# Load balancer tests
- name: load-balancer-rhel8-v6.0-py3.9-auth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v6.0 py3.9 Auth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "6.0"
AUTH: auth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.9/bin/python3
- name: load-balancer-rhel8-v6.0-py3.10-noauth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v6.0 py3.10 NoAuth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "6.0"
AUTH: noauth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.10/bin/python3
- name: load-balancer-rhel8-v6.0-py3.11-noauth-nossl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v6.0 py3.11 NoAuth NoSSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "6.0"
AUTH: noauth
SSL: nossl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.11/bin/python3
- name: load-balancer-rhel8-v7.0-py3.12-auth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v7.0 py3.12 Auth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "7.0"
AUTH: auth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.12/bin/python3
- name: load-balancer-rhel8-v7.0-py3.13-noauth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v7.0 py3.13 NoAuth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "7.0"
AUTH: noauth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.13/bin/python3
- name: load-balancer-rhel8-v7.0-pypy3.9-noauth-nossl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v7.0 pypy3.9 NoAuth NoSSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "7.0"
AUTH: noauth
SSL: nossl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/pypy3.9/bin/python3
- name: load-balancer-rhel8-v8.0-pypy3.10-auth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v8.0 pypy3.10 Auth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "8.0"
AUTH: auth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/pypy3.10/bin/python3
- name: load-balancer-rhel8-v8.0-py3.9-noauth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v8.0 py3.9 NoAuth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "8.0"
AUTH: noauth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.9/bin/python3
- name: load-balancer-rhel8-v8.0-py3.10-noauth-nossl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 v8.0 py3.10 NoAuth NoSSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: "8.0"
AUTH: noauth
SSL: nossl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.10/bin/python3
- name: load-balancer-rhel8-latest-py3.11-auth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 latest py3.11 Auth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: latest
AUTH: auth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.11/bin/python3
- name: load-balancer-rhel8-latest-py3.12-noauth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 latest py3.12 NoAuth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: latest
AUTH: noauth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.12/bin/python3
- name: load-balancer-rhel8-latest-py3.13-noauth-nossl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 latest py3.13 NoAuth NoSSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: latest
AUTH: noauth
SSL: nossl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.13/bin/python3
- name: load-balancer-rhel8-rapid-pypy3.9-auth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 rapid pypy3.9 Auth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: rapid
AUTH: auth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/pypy3.9/bin/python3
- name: load-balancer-rhel8-rapid-pypy3.10-noauth-ssl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 rapid pypy3.10 NoAuth SSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: rapid
AUTH: noauth
SSL: ssl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/pypy3.10/bin/python3
- name: load-balancer-rhel8-rapid-py3.9-noauth-nossl
tasks:
- name: load-balancer-test
display_name: Load Balancer RHEL8 rapid py3.9 NoAuth NoSSL
run_on:
- rhel87-small
batchtime: 10080
expansions:
VERSION: rapid
AUTH: noauth
SSL: nossl
test_loadbalancer: "true"
PYTHON_BINARY: /opt/python/3.9/bin/python3

- matrix_name: "oidc-auth-test"
matrix_spec:
platform: [ rhel8, macos, windows ]
Expand Down Expand Up @@ -3643,17 +3830,6 @@ buildvariants:
- name: "aws-auth-test-rapid"
- name: "aws-auth-test-latest"

- matrix_name: "load-balancer"
matrix_spec:
platform: rhel8
mongodb-version: ["6.0", "7.0", "8.0", "rapid", "latest"]
auth-ssl: "*"
python-version: "*"
loadbalancer: "*"
display_name: "Load Balancer ${platform} ${python-version} ${mongodb-version} ${auth-ssl}"
tasks:
- name: "load-balancer-test"

- name: testgcpkms-variant
display_name: "GCP KMS"
run_on:
Expand Down
38 changes: 33 additions & 5 deletions .evergreen/scripts/generate_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,14 @@ def get_python_binary(python: str, host: str) -> str:
def get_display_name(base: str, host: str, **kwargs) -> str:
"""Get the display name of a variant."""
display_name = f"{base} {HOSTS[host].display_name}"
version = kwargs.pop("VERSION", None)
if version:
if version not in ["rapid", "latest"]:
version = f"v{version}"
display_name = f"{display_name} {version}"
for key, value in kwargs.items():
name = value
if key == "version":
if value not in ["rapid", "latest"]:
name = f"v{value}"
elif key == "python":
if key.lower() == "python":
if not value.startswith("pypy"):
name = f"py{value}"
elif key.lower() in DISPLAY_LOOKUP:
Expand Down Expand Up @@ -309,8 +311,34 @@ def get_encryption_expansions(encryption, ssl="ssl"):
return variants


def create_load_balancer_variants():
# Load balancer tests - run all supported versions for all combinations of auth and ssl and system python.
host = "rhel8"
task_names = ["load-balancer-test"]
batchtime = BATCHTIME_WEEK
expansions_base = dict(test_loadbalancer="true")
versions = ["6.0", "7.0", "8.0", "latest", "rapid"]
variants = []
pythons = CPYTHONS + PYPYS
for ind, (version, (auth, ssl)) in enumerate(product(versions, AUTH_SSLS)):
expansions = dict(VERSION=version, AUTH=auth, SSL=ssl)
expansions.update(expansions_base)
python = pythons[ind % len(pythons)]
display_name = get_display_name("Load Balancer", host, python=python, **expansions)
variant = create_variant(
task_names,
display_name,
python=python,
host=host,
expansions=expansions,
batchtime=batchtime,
)
variants.append(variant)
return variants


##################
# Generate Config
##################

generate_yaml(variants=create_encryption_variants())
generate_yaml(variants=create_load_balancer_variants())
Loading