From d66c4f85954eaeb2cc13ca3119b2229d567d0c94 Mon Sep 17 00:00:00 2001 From: Joao Gilberto Magalhaes Date: Thu, 12 Feb 2026 17:05:04 -0500 Subject: [PATCH] Migrate examples to `tests_e2e` directory structure - Relocated all files and scripts from `examples` to `tests_e2e` for better organization. - Updated references and paths in configurations, scripts, and test files. - Adjusted `bump-version.sh` to handle the new `tests_e2e` structure. - Updated `.gitignore` to reflect path changes. --- .gitignore | 18 +++++++++--------- README.md | 2 +- scripts/bump-version.sh | 6 +++--- {examples => tests_e2e}/docker/AGENTS.md | 0 {examples => tests_e2e}/docker/README.md | 0 .../docker/docker-compose-acme.yml | 0 .../docker/docker-compose-changed-label.yml | 0 .../docker/docker-compose-cloudflare.yml | 0 .../docker/docker-compose-ip-whitelist.yml | 0 .../docker/docker-compose-jwt-validator.yml | 2 +- .../docker/docker-compose-multi-containers.yml | 0 .../docker/docker-compose-php-fpm.yml | 0 .../docker/docker-compose-plugins-combined.yml | 2 +- .../docker-compose-portainer-app-example.yml | 0 .../docker/docker-compose-portainer.yml | 0 .../docker/docker-compose.yml | 2 +- .../docker/php-app/README.md | 0 .../docker/php-app/index.php | 0 .../docker/php-app/info.php | 0 .../docker/php-app/test-path-info.php | 0 .../fixtures/header-echo/Dockerfile | 0 .../fixtures/header-echo/README.md | 8 ++++---- .../fixtures/header-echo/server.py | 0 {examples => tests_e2e}/generate-keys.sh | 0 {examples => tests_e2e}/kubernetes/.gitignore | 0 {examples => tests_e2e}/kubernetes/README.md | 0 .../kubernetes/cloudflare.yml | 0 .../kubernetes/ip-whitelist.yml | 0 .../jwt-validator-secret-example.yml | 0 .../kubernetes/jwt-validator.yml | 0 .../kubernetes/plugins-combined.yml | 0 {examples => tests_e2e}/kubernetes/service.yml | 0 .../kubernetes/service_tls.yml | 0 .../kubernetes/setup-cluster.sh | 0 .../kubernetes/teardown-cluster.sh | 0 {examples => tests_e2e}/static/README.md | 4 ++-- .../static/conf/config-basic.yml | 0 .../static/conf/config-certbot.yml | 0 .../static/conf/config-deny-pages.yml | 0 .../static/conf/config-jwt-validator.yml | 0 .../static/docker-compose.yml | 2 +- {examples => tests_e2e}/swarm/README.md | 0 {examples => tests_e2e}/swarm/cloudflare.yml | 0 {examples => tests_e2e}/swarm/easyhaproxy.yml | 0 {examples => tests_e2e}/swarm/ip-whitelist.yml | 0 .../swarm/jwt-validator.yml | 0 .../swarm/plugins-combined.yml | 0 {examples => tests_e2e}/swarm/portainer.yml | 0 {examples => tests_e2e}/swarm/services.yml | 2 +- .../test_docker_compose.py | 12 ++++++------ .../test_kubernetes.py | 10 +++++----- 51 files changed, 35 insertions(+), 35 deletions(-) rename {examples => tests_e2e}/docker/AGENTS.md (100%) rename {examples => tests_e2e}/docker/README.md (100%) rename {examples => tests_e2e}/docker/docker-compose-acme.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-changed-label.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-cloudflare.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-ip-whitelist.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-jwt-validator.yml (97%) rename {examples => tests_e2e}/docker/docker-compose-multi-containers.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-php-fpm.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-plugins-combined.yml (98%) rename {examples => tests_e2e}/docker/docker-compose-portainer-app-example.yml (100%) rename {examples => tests_e2e}/docker/docker-compose-portainer.yml (100%) rename {examples => tests_e2e}/docker/docker-compose.yml (99%) rename {examples => tests_e2e}/docker/php-app/README.md (100%) rename {examples => tests_e2e}/docker/php-app/index.php (100%) rename {examples => tests_e2e}/docker/php-app/info.php (100%) rename {examples => tests_e2e}/docker/php-app/test-path-info.php (100%) rename {examples => tests_e2e}/fixtures/header-echo/Dockerfile (100%) rename {examples => tests_e2e}/fixtures/header-echo/README.md (85%) rename {examples => tests_e2e}/fixtures/header-echo/server.py (100%) rename {examples => tests_e2e}/generate-keys.sh (100%) rename {examples => tests_e2e}/kubernetes/.gitignore (100%) rename {examples => tests_e2e}/kubernetes/README.md (100%) rename {examples => tests_e2e}/kubernetes/cloudflare.yml (100%) rename {examples => tests_e2e}/kubernetes/ip-whitelist.yml (100%) rename {examples => tests_e2e}/kubernetes/jwt-validator-secret-example.yml (100%) rename {examples => tests_e2e}/kubernetes/jwt-validator.yml (100%) rename {examples => tests_e2e}/kubernetes/plugins-combined.yml (100%) rename {examples => tests_e2e}/kubernetes/service.yml (100%) rename {examples => tests_e2e}/kubernetes/service_tls.yml (100%) rename {examples => tests_e2e}/kubernetes/setup-cluster.sh (100%) rename {examples => tests_e2e}/kubernetes/teardown-cluster.sh (100%) rename {examples => tests_e2e}/static/README.md (95%) rename {examples => tests_e2e}/static/conf/config-basic.yml (100%) rename {examples => tests_e2e}/static/conf/config-certbot.yml (100%) rename {examples => tests_e2e}/static/conf/config-deny-pages.yml (100%) rename {examples => tests_e2e}/static/conf/config-jwt-validator.yml (100%) rename {examples => tests_e2e}/static/docker-compose.yml (97%) rename {examples => tests_e2e}/swarm/README.md (100%) rename {examples => tests_e2e}/swarm/cloudflare.yml (100%) rename {examples => tests_e2e}/swarm/easyhaproxy.yml (100%) rename {examples => tests_e2e}/swarm/ip-whitelist.yml (100%) rename {examples => tests_e2e}/swarm/jwt-validator.yml (100%) rename {examples => tests_e2e}/swarm/plugins-combined.yml (100%) rename {examples => tests_e2e}/swarm/portainer.yml (100%) rename {examples => tests_e2e}/swarm/services.yml (99%) rename {examples/docker => tests_e2e}/test_docker_compose.py (99%) rename {examples/kubernetes => tests_e2e}/test_kubernetes.py (99%) diff --git a/.gitignore b/.gitignore index e1632ff..fc6af0b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,12 +15,12 @@ dist/ build/ *.egg-info/ -/examples/static/conf/config.yml -/examples/docker/certs/haproxy/.place_holder_cert.pem -/examples/static/host1.local.pem -/examples/swarm/certs/host1.local.pem -/examples/docker/host2.local.pem -/examples/swarm/certs/host2.local.pem -/examples/docker/jwt_private.pem -/examples/docker/jwt_pubkey.pem -/examples/docker/cloudflare_ips.lst +/tests_e2e/static/conf/config.yml +/tests_e2e/docker/certs/haproxy/.place_holder_cert.pem +/tests_e2e/static/host1.local.pem +/tests_e2e/swarm/certs/host1.local.pem +/tests_e2e/docker/host2.local.pem +/tests_e2e/swarm/certs/host2.local.pem +/tests_e2e/docker/jwt_private.pem +/tests_e2e/docker/jwt_pubkey.pem +/tests_e2e/docker/cloudflare_ips.lst diff --git a/README.md b/README.md index cb8d033..677359b 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ Click on the image to see the videos (use HD for better visualization) [![Static Configuration](docs/video-static.png)](https://youtu.be/B_bYZnRTGJM) [![TCP Mode](docs/video-tcp-mysql.png)](https://youtu.be/JHqcq9crbDI) -[Here is the code](https://gist.github.com/byjg/e125e478a0562190176d69ea795fd3d4) applied in the examples above. +[Here is the code](https://gist.github.com/byjg/e125e478a0562190176d69ea795fd3d4) applied in the test examples above. ---- diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh index 1d10fed..394b8f6 100755 --- a/scripts/bump-version.sh +++ b/scripts/bump-version.sh @@ -94,7 +94,7 @@ if [[ "$MODE" == "verify" ]]; then check_contains "easy-haproxy:$NEW_VERSION" deploy/docker/docker-compose.yml "Docker compose image tag" check_contains "version = \"$NEW_VERSION\"" pyproject.toml "pyproject.toml version" - if grep -R "byjg/easy-haproxy:" examples | grep -v "$NEW_VERSION" >/dev/null; then + if grep -R "byjg/easy-haproxy:" tests_e2e | grep -v "$NEW_VERSION" >/dev/null; then echo "❌ Examples still reference a different tag. Run bump-version.sh to update." STATUS=1 else @@ -122,9 +122,9 @@ sed -i "s#^version = \"[a-zA-Z0-9\\.-]*\"#version = \"$NEW_VERSION\"#g" pyprojec sed -i "s#appVersion: \"[a-zA-Z0-9\\.-]*\"#appVersion: \"$NEW_VERSION\"#g" "$CHART_FILE" # Update examples -find examples -type f -name '*.yml' -exec sed -i "s#\\(byjg/easy-haproxy:\\)[a-zA-Z0-9\\.-]*#\\1$NEW_VERSION#g" {} \; -print +find tests_e2e -type f -name '*.yml' -exec sed -i "s#\\(byjg/easy-haproxy:\\)[a-zA-Z0-9\\.-]*#\\1$NEW_VERSION#g" {} \; -print # Update raw GitHub URLs in Kubernetes examples -find examples/kubernetes -type f -name '*.yml' -exec sed -i "s#raw.githubusercontent.com/byjg/docker-easy-haproxy/[a-zA-Z0-9\\.\\-]*/deploy/kubernetes/easyhaproxy-daemonset.yml#raw.githubusercontent.com/byjg/docker-easy-haproxy/$NEW_VERSION/deploy/kubernetes/easyhaproxy-daemonset.yml#g" {} \; +find tests_e2e/kubernetes -type f -name '*.yml' -exec sed -i "s#raw.githubusercontent.com/byjg/docker-easy-haproxy/[a-zA-Z0-9\\.\\-]*/deploy/kubernetes/easyhaproxy-daemonset.yml#raw.githubusercontent.com/byjg/docker-easy-haproxy/$NEW_VERSION/deploy/kubernetes/easyhaproxy-daemonset.yml#g" {} \; # Bump chart version (patch) SANITIZED_CHART_VERSION="${CURRENT_CHART_VERSION%\.}" diff --git a/examples/docker/AGENTS.md b/tests_e2e/docker/AGENTS.md similarity index 100% rename from examples/docker/AGENTS.md rename to tests_e2e/docker/AGENTS.md diff --git a/examples/docker/README.md b/tests_e2e/docker/README.md similarity index 100% rename from examples/docker/README.md rename to tests_e2e/docker/README.md diff --git a/examples/docker/docker-compose-acme.yml b/tests_e2e/docker/docker-compose-acme.yml similarity index 100% rename from examples/docker/docker-compose-acme.yml rename to tests_e2e/docker/docker-compose-acme.yml diff --git a/examples/docker/docker-compose-changed-label.yml b/tests_e2e/docker/docker-compose-changed-label.yml similarity index 100% rename from examples/docker/docker-compose-changed-label.yml rename to tests_e2e/docker/docker-compose-changed-label.yml diff --git a/examples/docker/docker-compose-cloudflare.yml b/tests_e2e/docker/docker-compose-cloudflare.yml similarity index 100% rename from examples/docker/docker-compose-cloudflare.yml rename to tests_e2e/docker/docker-compose-cloudflare.yml diff --git a/examples/docker/docker-compose-ip-whitelist.yml b/tests_e2e/docker/docker-compose-ip-whitelist.yml similarity index 100% rename from examples/docker/docker-compose-ip-whitelist.yml rename to tests_e2e/docker/docker-compose-ip-whitelist.yml diff --git a/examples/docker/docker-compose-jwt-validator.yml b/tests_e2e/docker/docker-compose-jwt-validator.yml similarity index 97% rename from examples/docker/docker-compose-jwt-validator.yml rename to tests_e2e/docker/docker-compose-jwt-validator.yml index 6c976c2..d2dd636 100644 --- a/examples/docker/docker-compose-jwt-validator.yml +++ b/tests_e2e/docker/docker-compose-jwt-validator.yml @@ -11,7 +11,7 @@ # REQUIREMENTS (run these first): # ```bash # # Generate SSL certificates and JWT keys (from project root) -# cd ../.. && ./examples/generate-keys.sh && cd examples/docker +# cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/docker # ``` # # HOW TO START: diff --git a/examples/docker/docker-compose-multi-containers.yml b/tests_e2e/docker/docker-compose-multi-containers.yml similarity index 100% rename from examples/docker/docker-compose-multi-containers.yml rename to tests_e2e/docker/docker-compose-multi-containers.yml diff --git a/examples/docker/docker-compose-php-fpm.yml b/tests_e2e/docker/docker-compose-php-fpm.yml similarity index 100% rename from examples/docker/docker-compose-php-fpm.yml rename to tests_e2e/docker/docker-compose-php-fpm.yml diff --git a/examples/docker/docker-compose-plugins-combined.yml b/tests_e2e/docker/docker-compose-plugins-combined.yml similarity index 98% rename from examples/docker/docker-compose-plugins-combined.yml rename to tests_e2e/docker/docker-compose-plugins-combined.yml index 31dadd1..ec26370 100644 --- a/examples/docker/docker-compose-plugins-combined.yml +++ b/tests_e2e/docker/docker-compose-plugins-combined.yml @@ -13,7 +13,7 @@ # REQUIREMENTS (run these first): # ```bash # # Generate SSL certificates and JWT keys (from project root) -# cd ../.. && ./examples/generate-keys.sh && cd examples/docker +# cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/docker # # # Download Cloudflare IPs (idempotent - overwrites if exists) # curl -s https://www.cloudflare.com/ips-v4 > cloudflare_ips.lst diff --git a/examples/docker/docker-compose-portainer-app-example.yml b/tests_e2e/docker/docker-compose-portainer-app-example.yml similarity index 100% rename from examples/docker/docker-compose-portainer-app-example.yml rename to tests_e2e/docker/docker-compose-portainer-app-example.yml diff --git a/examples/docker/docker-compose-portainer.yml b/tests_e2e/docker/docker-compose-portainer.yml similarity index 100% rename from examples/docker/docker-compose-portainer.yml rename to tests_e2e/docker/docker-compose-portainer.yml diff --git a/examples/docker/docker-compose.yml b/tests_e2e/docker/docker-compose.yml similarity index 99% rename from examples/docker/docker-compose.yml rename to tests_e2e/docker/docker-compose.yml index 6d4f470..460855c 100644 --- a/examples/docker/docker-compose.yml +++ b/tests_e2e/docker/docker-compose.yml @@ -11,7 +11,7 @@ # REQUIREMENTS (run these first): # # # Generate SSL certificates -# cd ../.. && ./examples/generate-keys.sh && cd examples/docker +# cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/docker # ``` # # HOW TO START: diff --git a/examples/docker/php-app/README.md b/tests_e2e/docker/php-app/README.md similarity index 100% rename from examples/docker/php-app/README.md rename to tests_e2e/docker/php-app/README.md diff --git a/examples/docker/php-app/index.php b/tests_e2e/docker/php-app/index.php similarity index 100% rename from examples/docker/php-app/index.php rename to tests_e2e/docker/php-app/index.php diff --git a/examples/docker/php-app/info.php b/tests_e2e/docker/php-app/info.php similarity index 100% rename from examples/docker/php-app/info.php rename to tests_e2e/docker/php-app/info.php diff --git a/examples/docker/php-app/test-path-info.php b/tests_e2e/docker/php-app/test-path-info.php similarity index 100% rename from examples/docker/php-app/test-path-info.php rename to tests_e2e/docker/php-app/test-path-info.php diff --git a/examples/fixtures/header-echo/Dockerfile b/tests_e2e/fixtures/header-echo/Dockerfile similarity index 100% rename from examples/fixtures/header-echo/Dockerfile rename to tests_e2e/fixtures/header-echo/Dockerfile diff --git a/examples/fixtures/header-echo/README.md b/tests_e2e/fixtures/header-echo/README.md similarity index 85% rename from examples/fixtures/header-echo/README.md rename to tests_e2e/fixtures/header-echo/README.md index d84bb63..8a5d58d 100644 --- a/examples/fixtures/header-echo/README.md +++ b/tests_e2e/fixtures/header-echo/README.md @@ -60,7 +60,7 @@ curl http://localhost:8080 ## Used By -- `examples/docker/docker-compose-cloudflare.yml` -- `examples/docker/test_docker_compose.py::TestCloudflare` -- `examples/kubernetes/cloudflare.yml` -- `examples/kubernetes/test_kubernetes.py::TestCloudflare` +- `tests_e2e/docker/docker-compose-cloudflare.yml` +- `tests_e2e/test_docker_compose.py::TestCloudflare` +- `tests_e2e/kubernetes/cloudflare.yml` +- `tests_e2e/test_kubernetes.py::TestCloudflare` diff --git a/examples/fixtures/header-echo/server.py b/tests_e2e/fixtures/header-echo/server.py similarity index 100% rename from examples/fixtures/header-echo/server.py rename to tests_e2e/fixtures/header-echo/server.py diff --git a/examples/generate-keys.sh b/tests_e2e/generate-keys.sh similarity index 100% rename from examples/generate-keys.sh rename to tests_e2e/generate-keys.sh diff --git a/examples/kubernetes/.gitignore b/tests_e2e/kubernetes/.gitignore similarity index 100% rename from examples/kubernetes/.gitignore rename to tests_e2e/kubernetes/.gitignore diff --git a/examples/kubernetes/README.md b/tests_e2e/kubernetes/README.md similarity index 100% rename from examples/kubernetes/README.md rename to tests_e2e/kubernetes/README.md diff --git a/examples/kubernetes/cloudflare.yml b/tests_e2e/kubernetes/cloudflare.yml similarity index 100% rename from examples/kubernetes/cloudflare.yml rename to tests_e2e/kubernetes/cloudflare.yml diff --git a/examples/kubernetes/ip-whitelist.yml b/tests_e2e/kubernetes/ip-whitelist.yml similarity index 100% rename from examples/kubernetes/ip-whitelist.yml rename to tests_e2e/kubernetes/ip-whitelist.yml diff --git a/examples/kubernetes/jwt-validator-secret-example.yml b/tests_e2e/kubernetes/jwt-validator-secret-example.yml similarity index 100% rename from examples/kubernetes/jwt-validator-secret-example.yml rename to tests_e2e/kubernetes/jwt-validator-secret-example.yml diff --git a/examples/kubernetes/jwt-validator.yml b/tests_e2e/kubernetes/jwt-validator.yml similarity index 100% rename from examples/kubernetes/jwt-validator.yml rename to tests_e2e/kubernetes/jwt-validator.yml diff --git a/examples/kubernetes/plugins-combined.yml b/tests_e2e/kubernetes/plugins-combined.yml similarity index 100% rename from examples/kubernetes/plugins-combined.yml rename to tests_e2e/kubernetes/plugins-combined.yml diff --git a/examples/kubernetes/service.yml b/tests_e2e/kubernetes/service.yml similarity index 100% rename from examples/kubernetes/service.yml rename to tests_e2e/kubernetes/service.yml diff --git a/examples/kubernetes/service_tls.yml b/tests_e2e/kubernetes/service_tls.yml similarity index 100% rename from examples/kubernetes/service_tls.yml rename to tests_e2e/kubernetes/service_tls.yml diff --git a/examples/kubernetes/setup-cluster.sh b/tests_e2e/kubernetes/setup-cluster.sh similarity index 100% rename from examples/kubernetes/setup-cluster.sh rename to tests_e2e/kubernetes/setup-cluster.sh diff --git a/examples/kubernetes/teardown-cluster.sh b/tests_e2e/kubernetes/teardown-cluster.sh similarity index 100% rename from examples/kubernetes/teardown-cluster.sh rename to tests_e2e/kubernetes/teardown-cluster.sh diff --git a/examples/static/README.md b/tests_e2e/static/README.md similarity index 95% rename from examples/static/README.md rename to tests_e2e/static/README.md index a1f6c4b..0a82eaf 100644 --- a/examples/static/README.md +++ b/tests_e2e/static/README.md @@ -31,7 +31,7 @@ Choose one of these pre-made configurations: ## Prerequisites -- SSL certificates generated (`./examples/generate-keys.sh`) +- SSL certificates generated (`./tests_e2e/generate-keys.sh`) - `/etc/hosts` entry for `host1.local` - Backend container running on port 8080 @@ -50,7 +50,7 @@ The docker-compose.yml file contains: ```bash # 1. Generate certificates -cd ../.. && ./examples/generate-keys.sh && cd examples/static +cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/static # 2. Choose a configuration cp conf/config-basic.yml conf/config.yml diff --git a/examples/static/conf/config-basic.yml b/tests_e2e/static/conf/config-basic.yml similarity index 100% rename from examples/static/conf/config-basic.yml rename to tests_e2e/static/conf/config-basic.yml diff --git a/examples/static/conf/config-certbot.yml b/tests_e2e/static/conf/config-certbot.yml similarity index 100% rename from examples/static/conf/config-certbot.yml rename to tests_e2e/static/conf/config-certbot.yml diff --git a/examples/static/conf/config-deny-pages.yml b/tests_e2e/static/conf/config-deny-pages.yml similarity index 100% rename from examples/static/conf/config-deny-pages.yml rename to tests_e2e/static/conf/config-deny-pages.yml diff --git a/examples/static/conf/config-jwt-validator.yml b/tests_e2e/static/conf/config-jwt-validator.yml similarity index 100% rename from examples/static/conf/config-jwt-validator.yml rename to tests_e2e/static/conf/config-jwt-validator.yml diff --git a/examples/static/docker-compose.yml b/tests_e2e/static/docker-compose.yml similarity index 97% rename from examples/static/docker-compose.yml rename to tests_e2e/static/docker-compose.yml index b05ddb1..f64c3a6 100644 --- a/examples/static/docker-compose.yml +++ b/tests_e2e/static/docker-compose.yml @@ -10,7 +10,7 @@ # REQUIREMENTS (run these first): # ```bash # # Generate SSL certificates -# cd ../.. && ./examples/generate-keys.sh && cd examples/static +# cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/static # # # Add to /etc/hosts (idempotent) # grep -q "host1.local" /etc/hosts || echo "127.0.0.1 host1.local" | sudo tee -a /etc/hosts diff --git a/examples/swarm/README.md b/tests_e2e/swarm/README.md similarity index 100% rename from examples/swarm/README.md rename to tests_e2e/swarm/README.md diff --git a/examples/swarm/cloudflare.yml b/tests_e2e/swarm/cloudflare.yml similarity index 100% rename from examples/swarm/cloudflare.yml rename to tests_e2e/swarm/cloudflare.yml diff --git a/examples/swarm/easyhaproxy.yml b/tests_e2e/swarm/easyhaproxy.yml similarity index 100% rename from examples/swarm/easyhaproxy.yml rename to tests_e2e/swarm/easyhaproxy.yml diff --git a/examples/swarm/ip-whitelist.yml b/tests_e2e/swarm/ip-whitelist.yml similarity index 100% rename from examples/swarm/ip-whitelist.yml rename to tests_e2e/swarm/ip-whitelist.yml diff --git a/examples/swarm/jwt-validator.yml b/tests_e2e/swarm/jwt-validator.yml similarity index 100% rename from examples/swarm/jwt-validator.yml rename to tests_e2e/swarm/jwt-validator.yml diff --git a/examples/swarm/plugins-combined.yml b/tests_e2e/swarm/plugins-combined.yml similarity index 100% rename from examples/swarm/plugins-combined.yml rename to tests_e2e/swarm/plugins-combined.yml diff --git a/examples/swarm/portainer.yml b/tests_e2e/swarm/portainer.yml similarity index 100% rename from examples/swarm/portainer.yml rename to tests_e2e/swarm/portainer.yml diff --git a/examples/swarm/services.yml b/tests_e2e/swarm/services.yml similarity index 99% rename from examples/swarm/services.yml rename to tests_e2e/swarm/services.yml index 28c6b4f..dee51ff 100644 --- a/examples/swarm/services.yml +++ b/tests_e2e/swarm/services.yml @@ -14,7 +14,7 @@ # docker stack deploy -c easyhaproxy.yml easyhaproxy # # # Generate SSL certificates -# cd ../.. && ./examples/generate-keys.sh && cd examples/swarm +# cd ../.. && ./tests_e2e/generate-keys.sh && cd tests_e2e/swarm # # # Add to /etc/hosts (idempotent) # grep -q "host1.local" /etc/hosts || echo "127.0.0.1 host1.local host2.local" | sudo tee -a /etc/hosts diff --git a/examples/docker/test_docker_compose.py b/tests_e2e/test_docker_compose.py similarity index 99% rename from examples/docker/test_docker_compose.py rename to tests_e2e/test_docker_compose.py index 073d8f2..0a11fca 100644 --- a/examples/docker/test_docker_compose.py +++ b/tests_e2e/test_docker_compose.py @@ -44,16 +44,16 @@ def generate_ssl_certificates(): Generate SSL certificates once for all tests that require them. This runs automatically at the start of the test session. """ - script_path = BASE_DIR.parent / "generate-keys.sh" + script_path = BASE_DIR / "generate-keys.sh" # Check if script exists if not script_path.exists(): pytest.skip(f"SSL certificate generation script not found: {script_path}") - # Run the script from the examples directory + # Run the script from the tests_e2e directory result = subprocess.run( ["bash", str(script_path)], - cwd=BASE_DIR.parent, + cwd=BASE_DIR, capture_output=True, text=True ) @@ -69,7 +69,7 @@ class DockerComposeFixture: """Helper class to manage docker-compose lifecycle""" def __init__(self, compose_file: str, startup_wait: int = 3, build: bool = True): - self.compose_file = str(BASE_DIR / compose_file) + self.compose_file = str(BASE_DIR / "docker" / compose_file) self.startup_wait = startup_wait self.build = build @@ -152,7 +152,7 @@ def docker_compose_ip_whitelist() -> Generator[None, None, None]: def docker_compose_cloudflare() -> Generator[None, None, None]: """Fixture for docker-compose-cloudflare.yml""" # Set up cloudflare_ips.lst with Docker network for testing - cloudflare_ips_path = BASE_DIR / "cloudflare_ips.lst" + cloudflare_ips_path = BASE_DIR / "docker" / "cloudflare_ips.lst" # Download Cloudflare IPs subprocess.run( @@ -184,7 +184,7 @@ def docker_compose_cloudflare() -> Generator[None, None, None]: @pytest.fixture def jwt_token() -> str: """Generate a valid JWT token for testing""" - private_key_path = BASE_DIR / "jwt_private.pem" + private_key_path = BASE_DIR / "docker" / "jwt_private.pem" with open(private_key_path, 'r') as f: private_key = f.read() diff --git a/examples/kubernetes/test_kubernetes.py b/tests_e2e/test_kubernetes.py similarity index 99% rename from examples/kubernetes/test_kubernetes.py rename to tests_e2e/test_kubernetes.py index b1d679f..383761e 100644 --- a/examples/kubernetes/test_kubernetes.py +++ b/tests_e2e/test_kubernetes.py @@ -40,7 +40,7 @@ except ImportError: # Base directory for Kubernetes manifests BASE_DIR = Path(__file__).parent.absolute() -BIN_DIR = BASE_DIR / ".kind" +BIN_DIR = BASE_DIR / "kubernetes" / ".kind" KIND_BIN = BIN_DIR / "kind" KUBECTL_BIN = BIN_DIR / "kubectl" HELM_BIN = BIN_DIR / "helm" @@ -468,7 +468,7 @@ class KubernetesFixture: """Helper class to manage Kubernetes manifest lifecycle""" def __init__(self, manifest_file: str, kubectl_cmd: str, namespace: str = "default", wait_time: int = 5): - self.manifest_file = str(BASE_DIR / manifest_file) + self.manifest_file = str(BASE_DIR / "kubernetes" / manifest_file) self.kubectl = kubectl_cmd self.namespace = namespace self.wait_time = wait_time @@ -846,7 +846,7 @@ def k8s_cloudflare(kind_cluster, kind_cmd) -> Generator[str, None, None]: cluster_name = kind_cluster["name"] # Build header-echo server image locally - header_echo_dir = BASE_DIR.parent / "fixtures" / "header-echo" + header_echo_dir = BASE_DIR / "fixtures" / "header-echo" print(" → Building header-echo-server:test image...") subprocess.run( ["docker", "build", "-t", "header-echo-server:test", str(header_echo_dir)], @@ -877,7 +877,7 @@ def k8s_cloudflare(kind_cluster, kind_cmd) -> Generator[str, None, None]: ip_list_base64 = base64.b64encode(ip_list_content.encode('utf-8')).decode('ascii') # Read the original manifest - manifest_path = BASE_DIR / "cloudflare.yml" + manifest_path = BASE_DIR / "kubernetes" / "cloudflare.yml" with open(manifest_path, 'r') as f: manifest_content = f.read() @@ -889,7 +889,7 @@ def k8s_cloudflare(kind_cluster, kind_cmd) -> Generator[str, None, None]: ) # Write modified manifest to temp file - temp_manifest_path = BASE_DIR / "cloudflare_test.yml" + temp_manifest_path = BASE_DIR / "kubernetes" / "cloudflare_test.yml" with open(temp_manifest_path, 'w') as f: f.write(manifest_modified)