easyhaproxy 6.0.1__tar.gz → 6.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.github/workflows/build.yml +16 -16
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/PKG-INFO +6 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/README.md +5 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/RELEASE.md +3 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/docker-compose.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/kubernetes/easyhaproxy-clusterip.yml +19 -13
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/kubernetes/easyhaproxy-daemonset.yml +14 -11
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/kubernetes/easyhaproxy-nodeport.yml +19 -13
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/kubernetes.md +3 -3
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/swarm.md +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/acme.md +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/ssl.md +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/container-labels.md +11 -10
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/helm.md +10 -8
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/fastcgi.md +67 -15
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/Chart.yaml +2 -2
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/deployment.yaml +10 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/service.yaml +3 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/values.yaml +15 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/pyproject.toml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/easymapping/config_generator.py +5 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/haproxy.py +2 -2
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/fastcgi.py +89 -5
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/kubernetes.py +3 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_plugins.py +126 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-acme.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-php-fpm.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-portainer.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/cloudflare.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/ip-whitelist.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/jwt-validator.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/plugins-combined.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/service.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/service_tls.yml +1 -1
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/test_docker_compose.py +1 -1
- easyhaproxy-6.1.1/uv.lock +1583 -0
- easyhaproxy-6.0.1/uv.lock +0 -882
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.dockerignore +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.github/FUNDING.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.github/dependabot.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.gitignore +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.python-version +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.run/pytest in tests.run.xml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.vscode/launch.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/.vscode/settings.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/CONTRIBUTING.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/LICENSE +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/Makefile +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/build-multiarch.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/Dockerfile +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/entrypoint.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/conf.d/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/400.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/403.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/408.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/500.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/502.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/503.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/haproxy/errors-custom/504.http +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/docker/assets/etc/easyhaproxy/www/dashboard.html +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/deploy/kubernetes/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/concepts/_category_.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/concepts/index.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/concepts/limitations.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/dashboard.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/dashboard_login.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/dashboard_thumbnail.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_digitalocean.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_docker.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_dokku.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_helm.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_kubernetes.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_logo.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_microk8s.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_static.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/easyhaproxy_swarm.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/_category_.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/docker.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/index.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/native.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/getting-started/static.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/_category_.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/dashboard.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/digitalocean.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/dokku.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/helm.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/microk8s.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/plugin-development.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/guides/plugins.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/icons.xcf +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/logo.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/logo.xcf +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/_category_.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/cli.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/environment-variables.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/other.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/_category_.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/cleanup.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/cloudflare.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/deny-pages.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/ip-whitelist.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/plugins/jwt-validator.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/reference/volumes.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-docker-ssl.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-docker.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-kubernetes-letsencrypt.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-kubernetes.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-static.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/docs/video-tcp-mysql.png +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/.helmignore +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/LICENSE +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/_helpers.tpl +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/clusterrole.yaml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/clusterrolebinding.yaml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/ingressclass.yaml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/templates/serviceaccount.yaml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/helm/easyhaproxy/values.schema.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/scripts/bump-version.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/easyhaproxy/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/easyhaproxy/main.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/easymapping/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/easymapping/label_handler.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/certbot.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/consts.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/container_env.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/filter.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/functions.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/functions/loggers.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/cleanup.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/cloudflare.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/deny_pages.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/ip_whitelist.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/builtin/jwt_validator.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/interface.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/manager.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/plugins/types.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/docker.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/interface.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/static.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/processor/swarm.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/bind.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/frontend-mode-http.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/frontend-mode-tcp.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/haproxy.cfg.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/ssl_default.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/ssl_loose.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/src/templates/ssl_strict.j2 +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/__init__.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/conftest.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/docker.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/no-services.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-fcgi.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-letsencrypt.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-multi-containers.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-multiple-hosts.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-redirect-ssl.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services-tcp.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/services.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/ssl-loose.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/ssl-strict.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/static-cors.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/expected/static.txt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/00_haproxy.cfg +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/10_haproxy.cfg +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/no-services +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/run_bash.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-changed-label +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-clone-to-ssl +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-fcgi +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-letsencrypt +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-multi-containers +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-multiple-hosts +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-redirect-ssl +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-tcp +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-with-cloudflare +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-with-deny-pages +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-with-ip-whitelist +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-with-jwt-validator +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/services-with-multiple-plugins +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/static.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/static_cors.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/fixtures/static_multi_domain.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_certbot.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_certbot_haproxy_config.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_containerenv.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_daemonize.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_docker.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_functions.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_kubernetes_processor.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_labels.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_parser.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests/test_static.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/conftest.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/AGENTS.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-acme-e2e.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-changed-label.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-cloudflare.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-ip-whitelist.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-jwt-validator.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-multi-containers.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-plugins-combined.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-portainer-app-example.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose-proxy-headers.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/docker-compose.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/pebble-config.json +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/php-app/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/php-app/index.php +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/php-app/info.php +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/docker/php-app/test-path-info.php +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/fixtures/header-echo/Dockerfile +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/fixtures/header-echo/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/fixtures/header-echo/server.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/generate-keys.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/.gitignore +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/jwt-validator-secret-example.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/setup-cluster.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/kubernetes/teardown-cluster.sh +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/conf/config-basic.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/conf/config-certbot.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/conf/config-deny-pages.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/conf/config-jwt-validator.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/static/docker-compose.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/README.md +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/cloudflare.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/easyhaproxy.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/ip-whitelist.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/jwt-validator.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/plugins-combined.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/portainer.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/swarm/services.yml +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/test_kubernetes.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/test_proxy_headers.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/test_static.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/test_swarm.py +0 -0
- {easyhaproxy-6.0.1 → easyhaproxy-6.1.1}/tests_e2e/utils.py +0 -0
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
|
|
35
35
|
steps:
|
|
36
36
|
- name: Checkout repository
|
|
37
|
-
uses: actions/checkout@
|
|
37
|
+
uses: actions/checkout@v7
|
|
38
38
|
|
|
39
39
|
- name: Install uv
|
|
40
40
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
|
|
59
59
|
steps:
|
|
60
60
|
- name: Checkout repository
|
|
61
|
-
uses: actions/checkout@
|
|
61
|
+
uses: actions/checkout@v7
|
|
62
62
|
|
|
63
63
|
- name: Install uv
|
|
64
64
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -82,7 +82,7 @@ jobs:
|
|
|
82
82
|
|
|
83
83
|
steps:
|
|
84
84
|
- name: Checkout repository
|
|
85
|
-
uses: actions/checkout@
|
|
85
|
+
uses: actions/checkout@v7
|
|
86
86
|
|
|
87
87
|
- name: Install uv
|
|
88
88
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -106,7 +106,7 @@ jobs:
|
|
|
106
106
|
|
|
107
107
|
steps:
|
|
108
108
|
- name: Checkout repository
|
|
109
|
-
uses: actions/checkout@
|
|
109
|
+
uses: actions/checkout@v7
|
|
110
110
|
|
|
111
111
|
- name: Install uv
|
|
112
112
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -138,7 +138,7 @@ jobs:
|
|
|
138
138
|
|
|
139
139
|
steps:
|
|
140
140
|
- name: Checkout repository
|
|
141
|
-
uses: actions/checkout@
|
|
141
|
+
uses: actions/checkout@v7
|
|
142
142
|
|
|
143
143
|
- name: Install uv
|
|
144
144
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -170,17 +170,17 @@ jobs:
|
|
|
170
170
|
|
|
171
171
|
steps:
|
|
172
172
|
- name: Checkout repository
|
|
173
|
-
uses: actions/checkout@
|
|
173
|
+
uses: actions/checkout@v7
|
|
174
174
|
|
|
175
175
|
- name: Set up QEMU
|
|
176
|
-
uses: docker/setup-qemu-action@
|
|
176
|
+
uses: docker/setup-qemu-action@v4
|
|
177
177
|
|
|
178
178
|
- name: Set up Docker Buildx
|
|
179
|
-
uses: docker/setup-buildx-action@
|
|
179
|
+
uses: docker/setup-buildx-action@v4
|
|
180
180
|
|
|
181
181
|
- name: Log into registry
|
|
182
182
|
if: github.event_name == 'push' || github.event.inputs.push == 'true'
|
|
183
|
-
uses: docker/login-action@
|
|
183
|
+
uses: docker/login-action@v4
|
|
184
184
|
with:
|
|
185
185
|
registry: ${{ secrets.DOCKER_REGISTRY }}
|
|
186
186
|
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
|
@@ -190,11 +190,11 @@ jobs:
|
|
|
190
190
|
# https://github.com/docker/metadata-action
|
|
191
191
|
- name: Extract Docker metadata
|
|
192
192
|
id: meta
|
|
193
|
-
uses: docker/metadata-action@
|
|
193
|
+
uses: docker/metadata-action@v6
|
|
194
194
|
with:
|
|
195
195
|
images: ${{ secrets.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
196
196
|
|
|
197
|
-
- uses: actions/github-script@
|
|
197
|
+
- uses: actions/github-script@v9
|
|
198
198
|
id: tags
|
|
199
199
|
with:
|
|
200
200
|
script: |
|
|
@@ -215,7 +215,7 @@ jobs:
|
|
|
215
215
|
run: |
|
|
216
216
|
echo "${{ steps.tags.outputs.result }}"
|
|
217
217
|
|
|
218
|
-
- uses: actions/github-script@
|
|
218
|
+
- uses: actions/github-script@v9
|
|
219
219
|
id: normalized
|
|
220
220
|
with:
|
|
221
221
|
script: |
|
|
@@ -239,7 +239,7 @@ jobs:
|
|
|
239
239
|
# Build and push Docker image with Buildx (don't push on PR)
|
|
240
240
|
# https://github.com/docker/build-push-action
|
|
241
241
|
- name: Build and push Docker image
|
|
242
|
-
uses: docker/build-push-action@
|
|
242
|
+
uses: docker/build-push-action@v7
|
|
243
243
|
with:
|
|
244
244
|
context: .
|
|
245
245
|
file: deploy/docker/Dockerfile
|
|
@@ -271,7 +271,7 @@ jobs:
|
|
|
271
271
|
|
|
272
272
|
steps:
|
|
273
273
|
- name: Checkout repository
|
|
274
|
-
uses: actions/checkout@
|
|
274
|
+
uses: actions/checkout@v7
|
|
275
275
|
|
|
276
276
|
- name: Install uv
|
|
277
277
|
run: curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -291,12 +291,12 @@ jobs:
|
|
|
291
291
|
env:
|
|
292
292
|
DOC_GITHUB_TOKEN: '${{ secrets.DOC_TOKEN }}'
|
|
293
293
|
steps:
|
|
294
|
-
- uses: actions/checkout@
|
|
294
|
+
- uses: actions/checkout@v7
|
|
295
295
|
if: startsWith(github.ref, 'refs/tags/')
|
|
296
296
|
with:
|
|
297
297
|
ref: master
|
|
298
298
|
|
|
299
|
-
- uses: actions/checkout@
|
|
299
|
+
- uses: actions/checkout@v7
|
|
300
300
|
if: github.ref == 'refs/heads/master'
|
|
301
301
|
|
|
302
302
|
- name: Get result
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: easyhaproxy
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.1.1
|
|
4
4
|
Summary: HAProxy label based routing with service discovery for Docker, Swarm, and Kubernetes
|
|
5
5
|
License: MIT License
|
|
6
6
|
|
|
@@ -45,6 +45,11 @@ Requires-Dist: pyyaml>=6.0
|
|
|
45
45
|
Requires-Dist: requests>=2.31.0
|
|
46
46
|
Description-Content-Type: text/markdown
|
|
47
47
|
|
|
48
|
+
---
|
|
49
|
+
sidebar_key: docker-easy-haproxy
|
|
50
|
+
tags: [docker, devops]
|
|
51
|
+
---
|
|
52
|
+
|
|
48
53
|
# EasyHAProxy
|
|
49
54
|
|
|
50
55
|
[](https://github.com/sponsors/byjg)
|
|
@@ -54,7 +54,7 @@ EasyHAProxy follows [Semantic Versioning](https://semver.org/):
|
|
|
54
54
|
- **MINOR**: New features, plugin additions, backward-compatible changes
|
|
55
55
|
- **PATCH**: Bug fixes, documentation updates, minor improvements
|
|
56
56
|
|
|
57
|
-
**Current Version:** `6.
|
|
57
|
+
**Current Version:** `6.1.1` (as of Chart.yaml)
|
|
58
58
|
|
|
59
59
|
## Automated Release (Recommended)
|
|
60
60
|
|
|
@@ -329,6 +329,8 @@ helm show chart byjg/easyhaproxy
|
|
|
329
329
|
|
|
330
330
|
| Version | Release Date | Type | Highlights |
|
|
331
331
|
|---------|--------------|-------|---------------------------------------------------------------------------------------------------------------------------------------|
|
|
332
|
+
| 6.1.1 | 2026-06-25 | Patch | Add pass_headers support to FastCGI plugin, fix flaky ACME e2e test timeout |
|
|
333
|
+
| 6.1.0 | 2026-06-24 | Minor | FastCGI protocol support, certbot sidecar plugin, dependency updates |
|
|
332
334
|
| 6.0.1 | 2026-02-23 | Patch | HAProxy dashboard, real-time monitoring dashboard with live traffic charts, ACME e2e test fixes |
|
|
333
335
|
| 6.0.0 | 2026-XX-XX | Major | Python module refactoring (one-class-per-file), IngressClassName support (spec.ingressClassName + deprecated annotation fallback), modernized build system (uv/pyproject.toml), improved version management and release tooling, GitHub Actions workflow_dispatch push control |
|
|
334
336
|
| 5.0.0 | 2025-12-04 | Major | Plugin framework (builtin plugins: JWT, FastCGI, Cloudflare, IP whitelist, deny pages, cleanup), docs restructure, examples refreshed |
|
|
@@ -6,10 +6,10 @@ metadata:
|
|
|
6
6
|
name: ingress-easyhaproxy
|
|
7
7
|
namespace: easyhaproxy
|
|
8
8
|
labels:
|
|
9
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
9
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
10
10
|
app.kubernetes.io/name: easyhaproxy
|
|
11
11
|
app.kubernetes.io/instance: ingress
|
|
12
|
-
app.kubernetes.io/version: "6.
|
|
12
|
+
app.kubernetes.io/version: "6.1.1"
|
|
13
13
|
app.kubernetes.io/managed-by: Helm
|
|
14
14
|
---
|
|
15
15
|
# Source: easyhaproxy/templates/clusterrole.yaml
|
|
@@ -19,10 +19,10 @@ metadata:
|
|
|
19
19
|
name: ingress-easyhaproxy
|
|
20
20
|
namespace: easyhaproxy
|
|
21
21
|
labels:
|
|
22
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
22
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
23
23
|
app.kubernetes.io/name: easyhaproxy
|
|
24
24
|
app.kubernetes.io/instance: ingress
|
|
25
|
-
app.kubernetes.io/version: "6.
|
|
25
|
+
app.kubernetes.io/version: "6.1.1"
|
|
26
26
|
app.kubernetes.io/managed-by: Helm
|
|
27
27
|
rules:
|
|
28
28
|
- apiGroups:
|
|
@@ -83,10 +83,10 @@ metadata:
|
|
|
83
83
|
name: ingress-easyhaproxy
|
|
84
84
|
namespace: easyhaproxy
|
|
85
85
|
labels:
|
|
86
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
86
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
87
87
|
app.kubernetes.io/name: easyhaproxy
|
|
88
88
|
app.kubernetes.io/instance: ingress
|
|
89
|
-
app.kubernetes.io/version: "6.
|
|
89
|
+
app.kubernetes.io/version: "6.1.1"
|
|
90
90
|
app.kubernetes.io/managed-by: Helm
|
|
91
91
|
roleRef:
|
|
92
92
|
apiGroup: rbac.authorization.k8s.io
|
|
@@ -105,10 +105,10 @@ metadata:
|
|
|
105
105
|
name: ingress-easyhaproxy
|
|
106
106
|
namespace: easyhaproxy
|
|
107
107
|
labels:
|
|
108
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
108
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
109
109
|
app.kubernetes.io/name: easyhaproxy
|
|
110
110
|
app.kubernetes.io/instance: ingress
|
|
111
|
-
app.kubernetes.io/version: "6.
|
|
111
|
+
app.kubernetes.io/version: "6.1.1"
|
|
112
112
|
app.kubernetes.io/managed-by: Helm
|
|
113
113
|
annotations:
|
|
114
114
|
{}
|
|
@@ -124,6 +124,9 @@ spec:
|
|
|
124
124
|
- name: stats
|
|
125
125
|
port: 1936
|
|
126
126
|
|
|
127
|
+
- name: dashboard
|
|
128
|
+
port: 11936
|
|
129
|
+
|
|
127
130
|
|
|
128
131
|
|
|
129
132
|
selector:
|
|
@@ -137,10 +140,10 @@ metadata:
|
|
|
137
140
|
name: ingress-easyhaproxy
|
|
138
141
|
namespace: easyhaproxy
|
|
139
142
|
labels:
|
|
140
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
143
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
141
144
|
app.kubernetes.io/name: easyhaproxy
|
|
142
145
|
app.kubernetes.io/instance: ingress
|
|
143
|
-
app.kubernetes.io/version: "6.
|
|
146
|
+
app.kubernetes.io/version: "6.1.1"
|
|
144
147
|
app.kubernetes.io/managed-by: Helm
|
|
145
148
|
spec:
|
|
146
149
|
replicas: 1
|
|
@@ -161,7 +164,7 @@ spec:
|
|
|
161
164
|
- name: easyhaproxy
|
|
162
165
|
securityContext:
|
|
163
166
|
{}
|
|
164
|
-
image: "byjg/easy-haproxy:6.
|
|
167
|
+
image: "byjg/easy-haproxy:6.1.1"
|
|
165
168
|
imagePullPolicy: Always
|
|
166
169
|
ports:
|
|
167
170
|
- name: http
|
|
@@ -173,6 +176,9 @@ spec:
|
|
|
173
176
|
- name: stats
|
|
174
177
|
containerPort: 1936
|
|
175
178
|
|
|
179
|
+
- name: dashboard
|
|
180
|
+
containerPort: 11936
|
|
181
|
+
|
|
176
182
|
resources:
|
|
177
183
|
{}
|
|
178
184
|
env:
|
|
@@ -211,10 +217,10 @@ kind: IngressClass
|
|
|
211
217
|
metadata:
|
|
212
218
|
name: easyhaproxy
|
|
213
219
|
labels:
|
|
214
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
220
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
215
221
|
app.kubernetes.io/name: easyhaproxy
|
|
216
222
|
app.kubernetes.io/instance: ingress
|
|
217
|
-
app.kubernetes.io/version: "6.
|
|
223
|
+
app.kubernetes.io/version: "6.1.1"
|
|
218
224
|
app.kubernetes.io/managed-by: Helm
|
|
219
225
|
spec:
|
|
220
226
|
controller: byjg.com/easyhaproxy
|
|
@@ -6,10 +6,10 @@ metadata:
|
|
|
6
6
|
name: ingress-easyhaproxy
|
|
7
7
|
namespace: easyhaproxy
|
|
8
8
|
labels:
|
|
9
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
9
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
10
10
|
app.kubernetes.io/name: easyhaproxy
|
|
11
11
|
app.kubernetes.io/instance: ingress
|
|
12
|
-
app.kubernetes.io/version: "6.
|
|
12
|
+
app.kubernetes.io/version: "6.1.1"
|
|
13
13
|
app.kubernetes.io/managed-by: Helm
|
|
14
14
|
---
|
|
15
15
|
# Source: easyhaproxy/templates/clusterrole.yaml
|
|
@@ -19,10 +19,10 @@ metadata:
|
|
|
19
19
|
name: ingress-easyhaproxy
|
|
20
20
|
namespace: easyhaproxy
|
|
21
21
|
labels:
|
|
22
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
22
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
23
23
|
app.kubernetes.io/name: easyhaproxy
|
|
24
24
|
app.kubernetes.io/instance: ingress
|
|
25
|
-
app.kubernetes.io/version: "6.
|
|
25
|
+
app.kubernetes.io/version: "6.1.1"
|
|
26
26
|
app.kubernetes.io/managed-by: Helm
|
|
27
27
|
rules:
|
|
28
28
|
- apiGroups:
|
|
@@ -83,10 +83,10 @@ metadata:
|
|
|
83
83
|
name: ingress-easyhaproxy
|
|
84
84
|
namespace: easyhaproxy
|
|
85
85
|
labels:
|
|
86
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
86
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
87
87
|
app.kubernetes.io/name: easyhaproxy
|
|
88
88
|
app.kubernetes.io/instance: ingress
|
|
89
|
-
app.kubernetes.io/version: "6.
|
|
89
|
+
app.kubernetes.io/version: "6.1.1"
|
|
90
90
|
app.kubernetes.io/managed-by: Helm
|
|
91
91
|
roleRef:
|
|
92
92
|
apiGroup: rbac.authorization.k8s.io
|
|
@@ -104,10 +104,10 @@ metadata:
|
|
|
104
104
|
name: ingress-easyhaproxy
|
|
105
105
|
namespace: easyhaproxy
|
|
106
106
|
labels:
|
|
107
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
107
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
108
108
|
app.kubernetes.io/name: easyhaproxy
|
|
109
109
|
app.kubernetes.io/instance: ingress
|
|
110
|
-
app.kubernetes.io/version: "6.
|
|
110
|
+
app.kubernetes.io/version: "6.1.1"
|
|
111
111
|
app.kubernetes.io/managed-by: Helm
|
|
112
112
|
spec:
|
|
113
113
|
selector:
|
|
@@ -136,7 +136,7 @@ spec:
|
|
|
136
136
|
- name: easyhaproxy
|
|
137
137
|
securityContext:
|
|
138
138
|
{}
|
|
139
|
-
image: "byjg/easy-haproxy:6.
|
|
139
|
+
image: "byjg/easy-haproxy:6.1.1"
|
|
140
140
|
imagePullPolicy: Always
|
|
141
141
|
ports:
|
|
142
142
|
- name: http
|
|
@@ -148,6 +148,9 @@ spec:
|
|
|
148
148
|
- name: stats
|
|
149
149
|
containerPort: 1936
|
|
150
150
|
hostPort: 1936
|
|
151
|
+
- name: dashboard
|
|
152
|
+
containerPort: 11936
|
|
153
|
+
hostPort: 11936
|
|
151
154
|
resources:
|
|
152
155
|
{}
|
|
153
156
|
env:
|
|
@@ -186,10 +189,10 @@ kind: IngressClass
|
|
|
186
189
|
metadata:
|
|
187
190
|
name: easyhaproxy
|
|
188
191
|
labels:
|
|
189
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
192
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
190
193
|
app.kubernetes.io/name: easyhaproxy
|
|
191
194
|
app.kubernetes.io/instance: ingress
|
|
192
|
-
app.kubernetes.io/version: "6.
|
|
195
|
+
app.kubernetes.io/version: "6.1.1"
|
|
193
196
|
app.kubernetes.io/managed-by: Helm
|
|
194
197
|
spec:
|
|
195
198
|
controller: byjg.com/easyhaproxy
|
|
@@ -6,10 +6,10 @@ metadata:
|
|
|
6
6
|
name: ingress-easyhaproxy
|
|
7
7
|
namespace: easyhaproxy
|
|
8
8
|
labels:
|
|
9
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
9
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
10
10
|
app.kubernetes.io/name: easyhaproxy
|
|
11
11
|
app.kubernetes.io/instance: ingress
|
|
12
|
-
app.kubernetes.io/version: "6.
|
|
12
|
+
app.kubernetes.io/version: "6.1.1"
|
|
13
13
|
app.kubernetes.io/managed-by: Helm
|
|
14
14
|
---
|
|
15
15
|
# Source: easyhaproxy/templates/clusterrole.yaml
|
|
@@ -19,10 +19,10 @@ metadata:
|
|
|
19
19
|
name: ingress-easyhaproxy
|
|
20
20
|
namespace: easyhaproxy
|
|
21
21
|
labels:
|
|
22
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
22
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
23
23
|
app.kubernetes.io/name: easyhaproxy
|
|
24
24
|
app.kubernetes.io/instance: ingress
|
|
25
|
-
app.kubernetes.io/version: "6.
|
|
25
|
+
app.kubernetes.io/version: "6.1.1"
|
|
26
26
|
app.kubernetes.io/managed-by: Helm
|
|
27
27
|
rules:
|
|
28
28
|
- apiGroups:
|
|
@@ -83,10 +83,10 @@ metadata:
|
|
|
83
83
|
name: ingress-easyhaproxy
|
|
84
84
|
namespace: easyhaproxy
|
|
85
85
|
labels:
|
|
86
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
86
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
87
87
|
app.kubernetes.io/name: easyhaproxy
|
|
88
88
|
app.kubernetes.io/instance: ingress
|
|
89
|
-
app.kubernetes.io/version: "6.
|
|
89
|
+
app.kubernetes.io/version: "6.1.1"
|
|
90
90
|
app.kubernetes.io/managed-by: Helm
|
|
91
91
|
roleRef:
|
|
92
92
|
apiGroup: rbac.authorization.k8s.io
|
|
@@ -105,10 +105,10 @@ metadata:
|
|
|
105
105
|
name: ingress-easyhaproxy
|
|
106
106
|
namespace: easyhaproxy
|
|
107
107
|
labels:
|
|
108
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
108
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
109
109
|
app.kubernetes.io/name: easyhaproxy
|
|
110
110
|
app.kubernetes.io/instance: ingress
|
|
111
|
-
app.kubernetes.io/version: "6.
|
|
111
|
+
app.kubernetes.io/version: "6.1.1"
|
|
112
112
|
app.kubernetes.io/managed-by: Helm
|
|
113
113
|
annotations:
|
|
114
114
|
{}
|
|
@@ -124,6 +124,9 @@ spec:
|
|
|
124
124
|
- name: stats
|
|
125
125
|
port: 1936
|
|
126
126
|
nodePort: 1936
|
|
127
|
+
- name: dashboard
|
|
128
|
+
port: 11936
|
|
129
|
+
nodePort: 11936
|
|
127
130
|
|
|
128
131
|
|
|
129
132
|
selector:
|
|
@@ -137,10 +140,10 @@ metadata:
|
|
|
137
140
|
name: ingress-easyhaproxy
|
|
138
141
|
namespace: easyhaproxy
|
|
139
142
|
labels:
|
|
140
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
143
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
141
144
|
app.kubernetes.io/name: easyhaproxy
|
|
142
145
|
app.kubernetes.io/instance: ingress
|
|
143
|
-
app.kubernetes.io/version: "6.
|
|
146
|
+
app.kubernetes.io/version: "6.1.1"
|
|
144
147
|
app.kubernetes.io/managed-by: Helm
|
|
145
148
|
spec:
|
|
146
149
|
replicas: 1
|
|
@@ -161,7 +164,7 @@ spec:
|
|
|
161
164
|
- name: easyhaproxy
|
|
162
165
|
securityContext:
|
|
163
166
|
{}
|
|
164
|
-
image: "byjg/easy-haproxy:6.
|
|
167
|
+
image: "byjg/easy-haproxy:6.1.1"
|
|
165
168
|
imagePullPolicy: Always
|
|
166
169
|
ports:
|
|
167
170
|
- name: http
|
|
@@ -173,6 +176,9 @@ spec:
|
|
|
173
176
|
- name: stats
|
|
174
177
|
containerPort: 1936
|
|
175
178
|
|
|
179
|
+
- name: dashboard
|
|
180
|
+
containerPort: 11936
|
|
181
|
+
|
|
176
182
|
resources:
|
|
177
183
|
{}
|
|
178
184
|
env:
|
|
@@ -211,10 +217,10 @@ kind: IngressClass
|
|
|
211
217
|
metadata:
|
|
212
218
|
name: easyhaproxy
|
|
213
219
|
labels:
|
|
214
|
-
helm.sh/chart: easyhaproxy-2.0.
|
|
220
|
+
helm.sh/chart: easyhaproxy-2.0.4
|
|
215
221
|
app.kubernetes.io/name: easyhaproxy
|
|
216
222
|
app.kubernetes.io/instance: ingress
|
|
217
|
-
app.kubernetes.io/version: "6.
|
|
223
|
+
app.kubernetes.io/version: "6.1.1"
|
|
218
224
|
app.kubernetes.io/managed-by: Helm
|
|
219
225
|
spec:
|
|
220
226
|
controller: byjg.com/easyhaproxy
|
|
@@ -41,7 +41,7 @@ Exposes HAProxy on NodePort `31080` (HTTP), `31443` (HTTPS), and `31936` (stats)
|
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
kubectl apply -f \
|
|
44
|
-
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.
|
|
44
|
+
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.1.1/deploy/kubernetes/easyhaproxy-nodeport.yml
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### ClusterIP (behind a LoadBalancer)
|
|
@@ -50,7 +50,7 @@ Cluster-internal only. Pair with an external cloud LoadBalancer or `kubectl port
|
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
kubectl apply -f \
|
|
53
|
-
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.
|
|
53
|
+
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.1.1/deploy/kubernetes/easyhaproxy-clusterip.yml
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### DaemonSet (special cases — requires node label)
|
|
@@ -64,7 +64,7 @@ The node label must be reapplied after any node replacement. Failing to do so wi
|
|
|
64
64
|
kubectl label nodes node-01 "easyhaproxy/node=master"
|
|
65
65
|
|
|
66
66
|
kubectl apply -f \
|
|
67
|
-
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.
|
|
67
|
+
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/6.1.1/deploy/kubernetes/easyhaproxy-daemonset.yml
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
If you need to configure environment variables (log levels, stats password, etc.), see the [environment variable reference](../reference/environment-variables.md).
|
|
@@ -157,7 +157,7 @@ Here's a complete `docker-compose.yml` showing proper ACME configuration:
|
|
|
157
157
|
```yaml
|
|
158
158
|
services:
|
|
159
159
|
easyhaproxy:
|
|
160
|
-
image: byjg/easy-haproxy:6.
|
|
160
|
+
image: byjg/easy-haproxy:6.1.1
|
|
161
161
|
volumes:
|
|
162
162
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
163
163
|
# REQUIRED: Persist Certbot certificates (ACME)
|
|
@@ -83,7 +83,7 @@ docker cp single.pem easyhaproxy:/etc/easyhaproxy/certs/haproxy/example.com.pem
|
|
|
83
83
|
```yaml
|
|
84
84
|
services:
|
|
85
85
|
easyhaproxy:
|
|
86
|
-
image: byjg/easy-haproxy:6.
|
|
86
|
+
image: byjg/easy-haproxy:6.1.1
|
|
87
87
|
volumes:
|
|
88
88
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
89
89
|
- certs_haproxy:/etc/easyhaproxy/certs/haproxy
|
|
@@ -153,16 +153,17 @@ docker run \
|
|
|
153
153
|
|
|
154
154
|
When using Kubernetes, configure EasyHAProxy behavior with these annotations on your Ingress resources. Annotations apply to **all hosts** in the ingress configuration.
|
|
155
155
|
|
|
156
|
-
| Annotation | Description
|
|
157
|
-
|
|
158
|
-
| kubernetes.io/ingress.class | (deprecated) Activate EasyHAProxy. Use `spec.ingressClassName` instead.
|
|
159
|
-
| easyhaproxy.redirect_ssl | (optional) Boolean. Force redirect all endpoints to HTTPS.
|
|
160
|
-
| easyhaproxy.certbot | (optional) Boolean. Request certbot certificates for the ingress domains.
|
|
161
|
-
| easyhaproxy.redirect | (optional) JSON. Key pair with a domain and its destination.
|
|
162
|
-
| easyhaproxy.mode | (optional) Set the HTTP mode for that connection.
|
|
163
|
-
| easyhaproxy.
|
|
164
|
-
| easyhaproxy.
|
|
165
|
-
| easyhaproxy.
|
|
156
|
+
| Annotation | Description | Default | Example |
|
|
157
|
+
|-------------------------------------|------------------------------------------------------------------------------------------------|------------|----------------------------|
|
|
158
|
+
| kubernetes.io/ingress.class | (deprecated) Activate EasyHAProxy. Use `spec.ingressClassName` instead. | *optional* | easyhaproxy-ingress |
|
|
159
|
+
| easyhaproxy.redirect_ssl | (optional) Boolean. Force redirect all endpoints to HTTPS. | false | true or false |
|
|
160
|
+
| easyhaproxy.certbot | (optional) Boolean. Request certbot certificates for the ingress domains. | false | true or false |
|
|
161
|
+
| easyhaproxy.redirect | (optional) JSON. Key pair with a domain and its destination. | *empty* | \{"domain":"redirect_url"} |
|
|
162
|
+
| easyhaproxy.mode | (optional) Set the HTTP mode for that connection. | http | http or tcp |
|
|
163
|
+
| easyhaproxy.proto | (optional) Backend server protocol. Automatically set to `fcgi` when using the fastcgi plugin. | *empty* | fcgi, h2 |
|
|
164
|
+
| easyhaproxy.listen_port | (optional) Override the HTTP listen port created for that ingress. | 80 | 8081 |
|
|
165
|
+
| easyhaproxy.plugins | (optional) Comma-separated list of plugins to enable for this ingress. | *empty* | cloudflare,deny_pages |
|
|
166
|
+
| easyhaproxy.plugin.`{name}`.`{key}` | (optional) Plugin-specific configuration (see [Using Plugins](../guides/plugins.md)) | *varies* | See plugin docs |
|
|
166
167
|
|
|
167
168
|
For annotation usage examples, see the [Kubernetes getting started guide](../getting-started/kubernetes.md).
|
|
168
169
|
|
|
@@ -35,19 +35,21 @@ Set `service.create: true` and `service.type: NodePort` for most setups. DaemonS
|
|
|
35
35
|
|
|
36
36
|
## Port Binding
|
|
37
37
|
|
|
38
|
-
| Value
|
|
39
|
-
|
|
40
|
-
| `binding.ports.http`
|
|
41
|
-
| `binding.ports.https`
|
|
42
|
-
| `binding.ports.stats`
|
|
43
|
-
| `binding.
|
|
38
|
+
| Value | Description | Default |
|
|
39
|
+
|----------------------------|--------------------------------------------------------------------|----------|
|
|
40
|
+
| `binding.ports.http` | HTTP port | `80` |
|
|
41
|
+
| `binding.ports.https` | HTTPS port | `443` |
|
|
42
|
+
| `binding.ports.stats` | HAProxy stats port | `1936` |
|
|
43
|
+
| `binding.ports.dashboard` | Monitoring dashboard port (always `stats + 10000` inside the pod) | `11936` |
|
|
44
|
+
| `binding.additionalPorts` | List of additional ports to expose | `[]` |
|
|
44
45
|
|
|
45
46
|
## EasyHAProxy Settings
|
|
46
47
|
|
|
47
48
|
| Value | Description | Default |
|
|
48
49
|
|------------------------------------|-----------------------------------------------------|------------|
|
|
49
|
-
| `easyhaproxy.stats.username` | HAProxy stats
|
|
50
|
-
| `easyhaproxy.stats.password` | HAProxy stats dashboard
|
|
50
|
+
| `easyhaproxy.stats.username` | HAProxy stats username | `admin` |
|
|
51
|
+
| `easyhaproxy.stats.password` | HAProxy stats password. **Required** to enable the stats endpoint and dashboard. | `password` |
|
|
52
|
+
| `easyhaproxy.stats.corsOrigin` | Allowed origin for stats API CORS (e.g. `http://node01:11936`). **Required** for the dashboard to load in a browser. | `""` |
|
|
51
53
|
| `easyhaproxy.refresh` | Seconds between service discovery polls | `"10"` |
|
|
52
54
|
| `easyhaproxy.customErrors` | Enable custom HTML error pages | `"true"` |
|
|
53
55
|
| `easyhaproxy.sslMode` | TLS mode: `strict`, `default`, or `loose` | `loose` |
|