mirror of
https://github.com/hanzoai/ingress.git
synced 2026-10-26 02:47:15 +00:00
Hanzo CI/CD / cicd (push) Failing after 9m46s
CI/CD / cicd (push) Failing after 10m4s
Most of it was stale, not cosmetic: the docs taught `TRAEFIK_*` env, `traefik.http.*` labels, `traefik.ingress.kubernetes.io/` annotations, `.traefik.yml` plugins and `traefik_*` metrics. This binary answers to `INGRESS_*`, `ingress.http.*`, `ingress.kubernetes.io/`, `.ingress.yml` and `ingress.*` — a reader following the old text configured nothing. Two were worse than stale. Gateway API examples gave `group: traefik.io` for an IngressService backendRef, which kubernetes.go:1265 refuses against hanzo.ai. The contributing guide built with `github.com/traefik/ingress` ldflags against a module that is `github.com/hanzoai/ingress/v3`. script/code-gen.sh globs `hanzo.ai_*.yaml` and matched nothing — the per-CRD dumps had been deleted and never regenerated, so `cat` failed the script under `set -e`. controller-gen v0.19.0 restores all ten; they concatenate byte-for-byte into the committed definition and fixture. CHANGELOG.md is untouched: 6,789 lines of imported release history, where a rewrite would falsify the record rather than rebrand it. `@traefiklabs/faency`, `traefik/whoami`, k3s's `--disable=traefik`, the `traefik.io` CRD group and the MIT attribution stay — upstream's addresses, not our brand. Co-authored-by: Hanzo Dev <[email protected]>
5.4 KiB
5.4 KiB
title, description
| title | description |
|---|---|
| Hanzo Ingress HTTP Middleware Overview | Read the official Hanzo Ingress documentation for an overview of the available HTTP middleware. |
HTTP Middlewares
Controlling connections {: .subtitle }
Configuration Example
# As a Docker Label
whoami:
# A container that exposes an API to show its IP address
image: hanzoai/whoami
labels:
# Create a middleware named `foo-add-prefix`
- "ingress.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
# Apply the middleware named `foo-add-prefix` to the router named `router1`
- "ingress.http.routers.router1.middlewares=foo-add-prefix@docker"
# As a Kubernetes Hanzo Ingress IngressRoute
---
apiVersion: hanzo.ai/v1alpha1
kind: Middleware
metadata:
name: stripprefix
spec:
stripPrefix:
prefixes:
- /stripit
---
apiVersion: hanzo.ai/v1alpha1
kind: IngressRoute
metadata:
name: ingressroute
spec:
# more fields...
routes:
# more fields...
middlewares:
- name: stripprefix
# Create a middleware named `foo-add-prefix`
- "ingress.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
# Apply the middleware named `foo-add-prefix` to the router named `router1`
- "ingress.http.routers.router1.middlewares=foo-add-prefix@consulcatalog"
# As TOML Configuration File
[http.routers]
[http.routers.router1]
service = "service1"
middlewares = ["foo-add-prefix"]
rule = "Host(`example.com`)"
[http.middlewares]
[http.middlewares.foo-add-prefix.addPrefix]
prefix = "/foo"
[http.services]
[http.services.service1]
[http.services.service1.loadBalancer]
[[http.services.service1.loadBalancer.servers]]
url = "http://127.0.0.1:80"
# As YAML Configuration File
http:
routers:
router1:
service: service1
middlewares:
- "foo-add-prefix"
rule: "Host(`example.com`)"
middlewares:
foo-add-prefix:
addPrefix:
prefix: "/foo"
services:
service1:
loadBalancer:
servers:
- url: "http://127.0.0.1:80"
Available HTTP Middlewares
| Middleware | Purpose | Area |
|---|---|---|
| AddPrefix | Adds a Path Prefix | Path Modifier |
| BasicAuth | Adds Basic Authentication | Security, Authentication |
| Buffering | Buffers the request/response | Request Lifecycle |
| Chain | Combines multiple pieces of middleware | Misc |
| CircuitBreaker | Prevents calling unhealthy services | Request Lifecycle |
| Compress | Compresses the response | Content Modifier |
| ContentType | Handles Content-Type auto-detection | Misc |
| DigestAuth | Adds Digest Authentication | Security, Authentication |
| Errors | Defines custom error pages | Request Lifecycle |
| ForwardAuth | Delegates Authentication | Security, Authentication |
| Headers | Adds / Updates headers | Security |
| IPAllowList | Limits the allowed client IPs | Security, Request lifecycle |
| InFlightReq | Limits the number of simultaneous connections | Security, Request lifecycle |
| PassTLSClientCert | Adds Client Certificates in a Header | Security |
| RateLimit | Limits the call frequency | Security, Request lifecycle |
| RedirectScheme | Redirects based on scheme | Request lifecycle |
| RedirectRegex | Redirects based on regex | Request lifecycle |
| ReplacePath | Changes the path of the request | Path Modifier |
| ReplacePathRegex | Changes the path of the request | Path Modifier |
| Retry | Automatically retries in case of error | Request lifecycle |
| StripPrefix | Changes the path of the request | Path Modifier |
| StripPrefixRegex | Changes the path of the request | Path Modifier |
Community Middlewares
Please take a look at the community-contributed plugins in the plugin catalog.
{% include-markdown "includes/ingress-for-business-applications.md" %}