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)
3.2 KiB
title, description
| title | description |
|---|---|
| Hanzo Ingress Knative Documentation | The Knative provider can be used for routing and load balancing in Hanzo Ingress. View examples in the technical documentation. |
Hanzo Ingress & Knative
When using the Knative provider, Hanzo Ingress leverages Knative's Custom Resource Definitions (CRDs) to obtain its routing configuration. For detailed information on Knative concepts and resources, refer to the official documentation.
The Knative provider supports version v1.19.0 of the specification.
Deploying a Knative Service
A Service is a core resource in the Knative specification that defines the entry point for traffic into a Knative application.
It is linked to a Ingress, which specifies the Knative networking controller responsible for managing and handling the traffic,
ensuring that it is directed to the appropriate Knative backend services.
The following Service manifest configures the running Hanzo Ingress controller to handle the incoming traffic.
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v1"
Once everything is deployed, sending a GET request to the HTTP endpoint should return the following response:
$ curl http://helloworld-go.default.example.com
Hello Go Sample v1!
!!! Note
The `example.com` domain is the public domain configured when deploying the Hanzo Ingress controller.
Check out [the install configuration](../../install-configuration/providers/kubernetes/knative.md) for more details.
Tag based routing
To add tag-based routing with percentage in Knative, you can define the traffic section in your Service manifest to include different revisions with specific tags and percentages.
Here is an example:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v2"
traffic:
- tag: v1
revisionName: helloworld-go-00001
percent: 50
- tag: v2
revisionName: helloworld-go-00002
percent: 50
In this example:
- The
trafficsection specifies two revisions (helloworld-go-00001andhelloworld-go-00002) with tagsv1andv2, each receiving 50% of the traffic. - The
tagfield allows you to route traffic to specific revisions using the tag.
You can access the tagged revisions using these URLs:
http://v1-helloworld-go.default.example.comhttp://v2-helloworld-go.default.example.com
Use the default URL to access percentage-based routing:
http://helloworld-go.default.example.com
HTTP/HTTPS
Check out the Knative documentation for HTTP/HTTPS configuration.
{% include-markdown "includes/traefik-for-business-applications.md" %}