1
0
Fork 0
Commit graph

420 commits

Author SHA1 Message Date
Joao Gilberto Magalhaes
52558e9277 Add log-stderr, keep-conn, and path_info presets to FastCGI plugin 2026-06-25 22:46:35 -04:00
Joao Gilberto Magalhaes
3dfc570d57 Bump version to 6.1.1 (chart 2.0.4) 2026-06-25 22:36:17 -04:00
Joao Gilberto Magalhaes
5eee2fcf19 Add pass_headers support to FastCGI plugin 2026-06-25 22:34:51 -04:00
Joao Gilberto Magalhaes
91da35650d Add extraEnv support to Helm chart for custom environment variables 2026-06-25 21:32:53 -04:00
Joao Gilberto Magalhaes
d3582ce1d0
Merge pull request #80 from byjg/fix-fastcgi
Add protocol support and enhance FastCGI plugin configuration
2026-06-25 00:03:40 -04:00
Joao Gilberto Magalhaes
3dc3e3d8b9 Upgrade GitHub Actions to latest major versions 2026-06-24 23:57:37 -04:00
Joao Gilberto Magalhaes
3284992ff6 Bump version to 6.1.0 (chart 2.0.3) 2026-06-24 23:53:55 -04:00
Joao Gilberto Magalhaes
ebbd50226a Bump dependencies (idna, urllib3, pytest, cryptography, pygments, requests, deepdiff, pyopenssl, pyjwt) 2026-06-24 23:44:30 -04:00
Joao Gilberto Magalhaes
e4b62a3925 Add protocol support and improve FastCGI plugin handling
- Introduced `easyhaproxy.proto` annotation for backend protocol configuration.
- Automatically set FastCGI protocol (`proto: fcgi`) when using the FastCGI plugin.
- Updated Kubernetes processor to handle `proto` annotations.
- Enhanced EasyMapping to allow plugin overrides for host-level configs.
- Updated documentation to reflect new `proto` behavior and FastCGI improvements.
- Improved multiprocessing configuration with better context handling in `haproxy.py`.
2026-06-24 21:21:27 -04:00
Joao Gilberto Magalhaes
2b7b2c887f Add dashboard port and CORS origin support to Helm chart (2.0.2)
- Add binding.ports.dashboard (default 11936) to values, deployment, and service templates
- Add easyhaproxy.stats.corsOrigin value mapped to HAPROXY_STATS_CORS_ORIGIN env var
- Bump chart version to 2.0.2
- Regenerate deploy/kubernetes manifests
- Update docs/reference/helm.md with new values
2026-02-22 21:35:03 -05:00
Joao Gilberto Magalhaes
6939c593a3 Bump version to 6.0.1 (chart 2.0.1) 2026-02-22 20:56:29 -05:00
Joao Gilberto Magalhaes
00b7bac5c0 Configure HAProxy stats and improve test fixture cleanup logic
- Set up HAProxy stats environment variables (`HAPROXY_USERNAME`, `HAPROXY_PASSWORD`, `HAPROXY_STATS_PORT`) for monitoring.
- Updated test fixture to ensure robust cleanup with try-finally blocks.
2026-02-22 20:51:16 -05:00
Joao Gilberto Magalhaes
d926cd7e69 Update documentation and guides for the monitoring dashboard
- Revised environment variables reference to clarify `HAPROXY_STATS_CORS_ORIGIN` requirements for the dashboard.
- Enhanced README with details about the real-time monitoring dashboard and its capabilities.
- Added a new "Monitoring Dashboard" guide, providing setup steps, login instructions, and feature overviews.
- Included images for dashboard visuals (`dashboard_thumbnail.png`, `dashboard_login.png`).
2026-02-22 20:20:00 -05:00
Joao Gilberto Magalhaes
4dda1ed631 Enable health checking for HAProxy backend servers
- Updated HAProxy configuration templates to include `check` for `srv_stats` and `srv_dashboard` backends.
- Adjusted expected test case outputs to account for the added health check settings.
2026-02-22 20:03:12 -05:00
Joao Gilberto Magalhaes
7e3134155a Introduce embedded HTTP server for HAProxy monitoring dashboard
- Added a Python-based HTTP server to serve `dashboard.html` at `/` or `/dashboard.html` paths.
- Updated HAProxy configuration to integrate backend for the dashboard.
- Enhanced handling of index paths with conditional redirects to the dashboard page.
- Modified tests and updated expected outputs to reflect these changes.
2026-02-22 19:42:51 -05:00
Joao Gilberto Magalhaes
67cfcf3aff Add HAProxy monitoring dashboard features
- Introduced a new `dashboard` frontend in HAProxy configuration to serve a real-time monitoring dashboard.
- Added support for returning prebuilt `dashboard.html` for `/` or `/index.html` paths.
- Updated test cases and expected outputs to accommodate the new frontend.
2026-02-22 18:10:00 -05:00
Joao Gilberto Magalhaes
580c90440e Fix build error 2026-02-20 14:46:39 -05:00
Joao Gilberto Magalhaes
4b7f42473a Fix build error 2026-02-20 14:34:38 -05:00
Joao Gilberto Magalhaes
a410b34521 Documentation Refactor 2026-02-20 11:46:57 -05:00
Joao Gilberto Magalhaes
3b8818e636
Merge pull request #68 from byjg/dependabot/uv/cryptography-46.0.5
Bump cryptography from 46.0.4 to 46.0.5
2026-02-18 17:57:20 -05:00
dependabot[bot]
4c98fd48e5
Bump cryptography from 46.0.4 to 46.0.5
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.4 to 46.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.4...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 22:52:00 +00:00
Joao Gilberto Magalhaes
deade0a928
Merge pull request #67 from byjg/ingressclassname
Add ingress status update and support for ingress class changes
2026-02-18 17:51:06 -05:00
Joao Gilberto Magalhaes
9eb0ab61a9
Merge branch 'master' into ingressclassname 2026-02-18 17:45:30 -05:00
Joao Gilberto Magalhaes
711bb43572 Prepare version 6.0.0 2026-02-18 17:38:46 -05:00
Joao Gilberto Magalhaes
1262946a3e Refine Kubernetes E2E polling logic to check backend readiness beyond HTTP 503
- Updated polling step to consider non-503 responses (e.g., 200/401/403) as backend readiness.
- Improved logging to reflect updated readiness criteria.
- Enhanced robustness by distinguishing between transient and configured backend states.
2026-02-18 17:26:24 -05:00
Joao Gilberto Magalhaes
81495216a7 Add Docker build and cache cleanup steps in CI, prevent redundant builds in Swarm E2E tests
- Updated GitHub workflow to include Docker cache cleanup and image build steps.
- Modified Swarm E2E test logic to skip Docker image build if it already exists, optimizing CI performance.
2026-02-18 16:58:55 -05:00
Joao Gilberto Magalhaes
3710b08995 Add Docker build and cache cleanup steps in CI, prevent redundant builds in Swarm E2E tests
- Updated GitHub workflow to include Docker cache cleanup and image build steps.
- Modified Swarm E2E test logic to skip Docker image build if it already exists, optimizing CI performance.
2026-02-18 16:42:44 -05:00
Joao Gilberto Magalhaes
3fd0fe0d46 Update plugin paths from /etc/haproxy to /etc/easyhaproxy across tests, configs, and documentation 2026-02-18 16:35:57 -05:00
Joao Gilberto Magalhaes
8532d49642 Refactor Swarm E2E tests: optimize timeouts, enhance stack deployment/wait logic, consolidate replicas, and update HAProxy config refresh cycle 2026-02-18 16:10:01 -05:00
Joao Gilberto Magalhaes
5a9f14e980 Refactor Swarm E2E tests: optimize timeouts, enhance stack deployment/wait logic, consolidate replicas, and update HAProxy config refresh cycle 2026-02-18 15:56:07 -05:00
Joao Gilberto Magalhaes
d9c7ff89cc Set pytest.fixture scope to class, add Swarm E2E tests, and update Docker Swarm configurations
- Modified `pytest.fixture` scope to `class` across tests to improve fixture lifecycle and reduce setup overhead.
- Introduced a new `tests_e2e/test_swarm.py` test suite for Docker Swarm stack configurations.
- Added E2E tests for Swarm mode with scenarios such as basic services and combined plugins.
- Updated HAProxy image in Swarm stack `.yml` files to `byjg/easy-haproxy:local` for local testing consistency.
- Added `swarm` marker in `pyproject.toml` for differentiating Docker Swarm-specific tests.
- Updated GitHub workflows to include a new Swarm E2E test pipeline.
2026-02-18 15:28:07 -05:00
Joao Gilberto Magalhaes
16fcee4280 Bump version to 6.0.0 and update release notes for major changes 2026-02-18 14:14:51 -05:00
Joao Gilberto Magalhaes
53f5f39ba9 Enable manual workflow dispatch with configurable inputs in CI/CD pipeline 2026-02-18 13:15:56 -05:00
Joao Gilberto Magalhaes
d894778ddc Add Certbot and HAProxy management modules, container environment parsing, and plugin management framework
- Introduced `certbot.py` for ACME certificate management, including certificate issuance, renewal, and environment validation.
- Added `haproxy.py` for HAProxy process management, configuration validation, and dynamic command handling.
- Implemented `container_env.py` for reading and parsing environment variables with YAML overrides.
- Created `consts.py` for centralized management of static and dynamic paths.
- Added `manager.py` to enable plugin discovery, initialization, configuration, and execution.
- Refactored logging and configuration handling across modules for consistency.

Enhances modularity and scalability by introducing feature-dedicated modules and structured configuration handling.
2026-02-18 12:43:45 -05:00
Joao Gilberto Magalhaes
48f6e1f783 Migrate build assets and scripts to deploy/docker structure
- Removed `install.sh` and moved Docker-related assets to `deploy/docker`.
- Updated all Dockerfile references from `build/` to `deploy/docker/`.
- Refactored paths in E2E tests, Makefile, and documentation for consistency with new directory structure.
- Added `HAPROXY_STATS_CORS_ORIGIN` environment variable in `docker-compose.yml`.
2026-02-18 02:58:32 -05:00
Joao Gilberto Magalhaes
53c32499b5 Remove Diffie-Hellman parameter generation and references in templates and tests 2026-02-18 02:08:46 -05:00
Joao Gilberto Magalhaes
44cb3dd5e0 Refactor Dockerfile for multi-stage build and runtime optimization
- Implemented a two-stage Dockerfile: build environment with Python dependencies and lean runtime stage with HAProxy.
- Added custom entrypoint script for dynamic Docker group adjustment.
- Improved HAProxy command generation by introducing a static method for binary resolution.
- Updated tests and functional logic to dynamically resolve the `haproxy` binary path.
- Adjusted file permissions in E2E key generation script for better security.
- Streamlined `.gitignore` by removing unnecessary exclusions.
2026-02-18 01:53:27 -05:00
Joao Gilberto Magalhaes
bfd38adea5 Add standalone Python entrypoint for EasyHAProxy and pip-based installation
- Introduced `/scripts/.venv/bin/easy-haproxy` as the default entrypoint for standalone environments.
- Added `_build_parser` and `start` functions to enable CLI-driven functionality configuration.
- Updated packaging to reflect new `easyhaproxy.main` module and adapted project name from `easymapping` to `easyhaproxy`.
- Modified `Dockerfile` to align with new script paths and entrypoints for better portability.
- Enhanced documentation with dedicated sections for pip-based installation, CLI references, and systemd setup for non-Docker environments.
- Adjusted helm, plugin, and environment-related docs for accurate sidebar ordering.
- Added a new GitHub workflow to automate package publishing to PyPI.
2026-02-17 21:41:33 -05:00
Joao Gilberto Magalhaes
3805100244 Refactor E2E tests: add wait_for_json_response helper for robust JSON response handling
- Replaced direct `curl` calls with `wait_for_json_response` to improve retry logic and error handling.
- Simplified tests for header validation and backend readiness verification.
2026-02-17 16:13:40 -05:00
Joao Gilberto Magalhaes
491f4a8c09 Add support for CORS in HAProxy stats dashboard
- Introduced `HAPROXY_STATS_CORS_ORIGIN` environment variable for enabling CORS in HAProxy stats.
- Updated HAProxy configuration template to handle CORS preflight and response headers.
- Added tests for static configuration mode with CORS enabled.
- Updated documentation to include new CORS configuration details and examples.
2026-02-16 20:54:27 -05:00
Joao Gilberto Magalhaes
353fd392f6 Add support for proxy-awareness headers: X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto, X-Forwarded-Host, and X-Request-ID
- Updated HAProxy configuration template to set all standard proxy headers for HTTP requests.
- Added support for a unique request ID via `unique-id-format` and `unique-id-header` directives.
- Implemented E2E tests for header validation, request correlation, and configuration correctness.
- Enhanced documentation to explain usage and examples of proxy headers.
- Updated CI workflows to include E2E tests for proxy headers.
2026-02-16 17:49:11 -05:00
Joao Gilberto Magalhaes
776f216a36 Add support for proxy-awareness headers: X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto, X-Forwarded-Host, and X-Request-ID
- Updated HAProxy configuration template to set all standard proxy headers for HTTP requests.
- Added support for a unique request ID via `unique-id-format` and `unique-id-header` directives.
- Implemented E2E tests for header validation, request correlation, and configuration correctness.
- Enhanced documentation to explain usage and examples of proxy headers.
- Updated CI workflows to include E2E tests for proxy headers.
2026-02-16 17:26:59 -05:00
Joao Gilberto Magalhaes
4aba68dd37 Improve SSL and ACME documentation
- Clarify that EASYHAPROXY_CERTBOT_AUTOCONFIG or CERTBOT_SERVER is required
- Add complete docker-compose.yml examples for ACME setup
- Explain SSL termination at HAProxy level vs backend containers
- Reorganize SSL docs to emphasize volume method over label method
- Add troubleshooting section for common ACME warnings
- Clarify certificate storage paths and selection priority
- Add examples showing both ACME and manual certificates together

Resolves confusion about ACME configuration requirements and makes
it clear that volume-mounted certificates are the recommended method
for manual SSL certificates.
2026-02-16 15:54:32 -05:00
Joao Gilberto Magalhaes
c340de1d9d Refactor ACME E2E tests: add Pebble health check container, simplify startup logic, and replace Python-based health check 2026-02-16 14:48:39 -05:00
Joao Gilberto Magalhaes
4646572953 Update ACME E2E tests: use specific Docker Compose file and ensure correct working directory
- Replaced `compose_file` references with `docker-compose-acme-e2e.yml` for improved clarity.
- Added working directory changes for Docker Compose commands to ensure relative paths work properly.
- Restored original working directory after test execution for cleanup consistency.
2026-02-16 14:20:02 -05:00
Joao Gilberto Magalhaes
6997777f41 Add Pebble readiness debug logs and skip ACME tests in specific CI environments 2026-02-16 14:07:29 -05:00
Joao Gilberto Magalhaes
9d1e947675 Refactor ACME/Certbot E2E test fixture to use staged service startup for improved reliability 2026-02-16 13:50:25 -05:00
Joao Gilberto Magalhaes
1493beb227 Remove Pebble health check container and replace with Python-based health check in E2E tests 2026-02-16 13:18:35 -05:00
Joao Gilberto Magalhaes
b867bb724d Adjust health checks and retry logic in E2E tests for improved CI reliability 2026-02-16 12:48:59 -05:00
Joao Gilberto Magalhaes
aa518e9686 Adjust health checks and retry logic in E2E tests for improved CI reliability 2026-02-16 12:13:13 -05:00