Files
zeekayandHanzo Dev 15d100931d
Hanzo CI/CD / cicd (push) Failing after 9m46s
CI/CD / cicd (push) Failing after 10m4s
Name the ingress in the docs, and fix what that exposed
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]>
2026-09-16 13:01:19 -07:00

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 traffic section specifies two revisions (helloworld-go-00001 and helloworld-go-00002) with tags v1 and v2, each receiving 50% of the traffic.
  • The tag field 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.com
  • http://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/ingress-for-business-applications.md" %}