Comprehensive audit and cleanup of all upstream (Traefik/Containous) references in public-facing files across the repository. Changes: - .github/FUNDING.yml: traefik -> hanzoai - .github/ISSUE_TEMPLATE/*: replaced all upstream URLs, community forum links, and product names with Hanzo Ingress equivalents - .github/PULL_REQUEST_TEMPLATE.md: updated doc URLs - .github/workflows/release.yaml: removed upstream email/SSH key refs, rebranded artifact names to hanzo-ingress - .github/workflows/test-integration.yaml: artifact name traefik -> hanzo-ingress to match new BIN_NAME - .github/workflows/sync-docker-images.yaml: cleaned comment - .github/workflows/documentation.yaml: cleaned comment - .goreleaser.yml.tmpl: project_name and binary -> hanzo-ingress - CODE_OF_CONDUCT.md: [email protected] -> [email protected] - CONTRIBUTING.md: upstream doc URLs -> GitHub repo links - SECURITY.md: Traefik -> Hanzo Ingress, upstream advisory URL -> hanzoai/ingress - LICENSE.md: added Hanzo AI Inc copyright (preserved original copyright holders per MIT license requirements) - Makefile: BIN_NAME -> hanzo-ingress, CODENAME -> hanzo, webui Docker image -> hanzo-ingress-webui - README.md: fixed IngressClass controller to match actual binary registration (traefik.io/ingress-controller) - webui/readme.md: Traefik Web UI -> Hanzo Ingress Web UI - docs/readme.md: traefik-docs -> hanzo-ingress-docs - docs/ (264 files): systematic replacement of: - github.com/traefik/traefik -> github.com/hanzoai/ingress - community.traefik.io -> github.com/hanzoai/ingress/discussions - doc.traefik.io -> github.com/hanzoai/ingress/blob/main/docs/ - traefik.io commercial/blog URLs -> hanzo.ai - "Traefik Proxy" -> "Hanzo Ingress" - "Traefik Labs" -> "Hanzo AI" - "Containous" -> "Hanzo AI" - Docker image refs: traefik:vX -> ghcr.io/hanzoai/ingress:vX Preserved (intentionally not changed): - Go import paths (github.com/traefik/traefik/v3) in ldflags - ./cmd/traefik Go package path - traefik.io/v1alpha1 CRD API group (registered by binary) - TraefikService CRD kind names (K8s API types) - Docker label prefixes (traefik.http.*, traefik.tcp.*, etc.) - Config default values (rootKey: "traefik", entryPoint: "traefik") - CHANGELOG.md (historical record) - update.traefik.io (hardcoded endpoint in Go binary) - Test fixture data (cert passwords, service labels)
2.8 KiB
title, description
| title | description |
|---|---|
| Extend Hanzo Ingress | Extend Hanzo Ingress with custom plugins using Yaegi and WebAssembly. |
Extend Hanzo Ingress
Plugins are a powerful feature for extending Hanzo Ingress with custom features and behaviors. The Plugin Catalog is a software-as-a-service (SaaS) platform that provides an exhaustive list of the existing plugins.
??? note "Plugin Catalog Access"
You can reach the Plugin Catalog from the Hanzo Ingress Dashboard using the Plugins menu entry.
Add a new plugin to a Hanzo Ingress instance
To add a new plugin to a Hanzo Ingress instance, you must change that instance's install (static) configuration. Each plugin's Install section provides an install (static) configuration example. Many plugins have their own section in the Hanzo Ingress routing (dynamic) configuration.
!!! danger "Experimental Features" Plugins can change the behavior of Hanzo Ingress in unforeseen ways. Exercise caution when adding new plugins to production Hanzo Ingress instances.
To learn more about how to add a new plugin to a Hanzo Ingress instance, please refer to the developer documentation.
Plugin Systems
Hanzo Ingress supports two different plugin systems, each designed for different use cases and developer preferences.
Yaegi Plugin System
Hanzo Ingress Yaegi plugins are developed using the Go language. It is essentially a Go package. Unlike pre-compiled plugins, Yaegi plugins are executed on the fly by Yaegi, a Go interpreter embedded in Hanzo Ingress.
This approach eliminates the need for compilation and a complex toolchain, making plugin development as straightforward as creating web browser extensions. Yaegi plugins support both middleware and provider functionality.
Key characteristics
- Written in Go language
- No compilation required
- Executed by embedded interpreter
- Supports full Go feature set
- Hot-reloadable during development
WebAssembly (WASM) Plugin System
Hanzo Ingress WASM plugins can be developed using any language that compiles to WebAssembly (WASM). This method is based on http-wasm.
WASM plugins compile to portable binary modules that execute with near-native performance while maintaining security isolation.
Key characteristics
- Multi-language support (Go, Rust, C++, etc.)
- Compiled to WebAssembly binary
- Near-native performance
- Strong security isolation
- Currently supports middleware only
Build Your Own Plugins
Hanzo Ingress users can create their own plugins and share them with the community using the Plugin Catalog. To learn more about Hanzo Ingress plugin creation, please refer to the developer documentation.