certbot/letstest
Brad Warren cc08242abc
update pinned dependencies (#10278)
this fixes the security alerts those with access can see at
https://github.com/certbot/certbot/security/dependabot

i based what needed to be done to drop python < 3.9.2 support on
https://github.com/certbot/certbot/pull/10077 and concluded we only
really needed to update `python_requires`. we could do a deprecation
period for this, but i think it's not necessary. cryptography didn't
(it's not even in mentioned in [their
changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst))
and none of the major LTS distros use python 3.9.0 or 3.9.1
2025-05-06 10:56:19 -07:00
..
letstest Replace aliased OSError. 2024-12-14 11:15:26 +01:00
scripts Add --use-pep517 flag to pip to silence warning in tools/venv.py, and switch codebase to src-layout (#10249) 2025-04-11 19:30:33 +00:00
targets update centos9 ami (#10210) 2025-02-25 15:46:28 -08:00
README.md Update GitHub repo location letsencrypt -> certbot (#9713) 2023-06-08 10:27:28 +10:00
setup.py update pinned dependencies (#10278) 2025-05-06 10:56:19 -07:00

letstest

Simple AWS testfarm scripts for certbot client testing

  • Launches EC2 instances with a given list of AMIs for different distros
  • Copies certbot repo and puts it on the instances
  • Runs certbot tests (bash scripts) on all of these
  • Logs execution and success/fail for debugging

Notes

  • Some AWS images, e.g. official CentOS and FreeBSD images require acceptance of user terms on the AWS marketplace website. This can't be automated.
  • AWS EC2 has a default limit of 20 t2/t1 instances, if more are needed, they need to be requested via online webform.

Installation and configuration

This package is installed in the Certbot development environment that is created by following the instructions at https://certbot.eff.org/docs/contributing.html#running-a-local-copy-of-the-client.

These tests use the AWS SDK for Python (boto3) to manipulate EC2 instances. Before running the tests, you'll need to set up credentials by following the instructions at https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration. You will also want to create a ~/.aws/config file setting the region for your profile to us-east-1, following the instructions in the boto3 quickstart guide above.

Lastly, you will want to create a file on your system containing a trusted SSH key by following the instructions at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html.

Usage

To run tests, activate the virtual environment you created above and from this directory run:

>letstest targets/targets.yaml /path/to/your/key.pem <profile name> scripts/<test to run>

A temporary directory whose name is output by the tests is also created with a log file from each instance of the test and a file named "results" containing the output above. The tests take quite a while to run.

Scripts

Example scripts are in the 'scripts' directory, these are just bash scripts that have a few parameters passed to them at runtime via environment variables. test_apache2.sh is a useful reference.

test_apache2 runs the dev venv and does local tests.

See:

Main repos: