From 8692e9365953e5cf6a9ef81545303356b7bce3d2 Mon Sep 17 00:00:00 2001 From: AlinsRan Date: Fri, 31 Jul 2026 08:56:07 +0800 Subject: [PATCH] chore: allow L4 upstream schemes (tcp/tls/udp) in ingress-controller CRDs APISIX accepts `tcp`, `tls` and `udp` as upstream schemes for L4 proxying, and `scheme: tls` is what makes the gateway establish the TLS session with a stream upstream. The bundled CRDs still restricted `ApisixUpstream.spec.scheme` and `BackendTrafficPolicy.spec.scheme` to the L7 set, so the API server rejected those values before the controller could see them. Syncs the scheme field with api7/api7-ingress-controller#449. --- charts/ingress-controller/Chart.yaml | 2 +- charts/ingress-controller/README.md | 2 +- .../ingress-controller/crds/apisix-crds.yaml | 24 ++++++++++++++++--- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/charts/ingress-controller/Chart.yaml b/charts/ingress-controller/Chart.yaml index 7022891..9963545 100644 --- a/charts/ingress-controller/Chart.yaml +++ b/charts/ingress-controller/Chart.yaml @@ -6,7 +6,7 @@ keywords: - api7 - crd type: application -version: 0.1.24 +version: 0.1.25 appVersion: 2.1.0 maintainers: - name: API7 diff --git a/charts/ingress-controller/README.md b/charts/ingress-controller/README.md index 252685d..fbf8377 100644 --- a/charts/ingress-controller/README.md +++ b/charts/ingress-controller/README.md @@ -1,6 +1,6 @@ # api7-ingress-controller -![Version: 0.1.24](https://img.shields.io/badge/Version-0.1.24-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.0](https://img.shields.io/badge/AppVersion-2.1.0-informational?style=flat-square) +![Version: 0.1.25](https://img.shields.io/badge/Version-0.1.25-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.1.0](https://img.shields.io/badge/AppVersion-2.1.0-informational?style=flat-square) Ingress Controller for API7 diff --git a/charts/ingress-controller/crds/apisix-crds.yaml b/charts/ingress-controller/crds/apisix-crds.yaml index 8d26c8e..0109d42 100644 --- a/charts/ingress-controller/crds/apisix-crds.yaml +++ b/charts/ingress-controller/crds/apisix-crds.yaml @@ -2033,12 +2033,18 @@ spec: description: |- Scheme is the protocol used to communicate with the upstream. Default is `http`. - Can be `http`, `https`, `grpc`, or `grpcs`. + For L7 proxy, it can be `http`, `https`, `grpc`, or `grpcs`. + For L4 proxy, it can be `tcp`, `tls`, or `udp`. + The L4 values apply to stream routes only; using them for an HTTP route + makes the upstream unreachable. enum: - http - https - grpc - grpcs + - tcp + - tls + - udp type: string subsets: description: |- @@ -2112,12 +2118,18 @@ spec: description: |- Scheme is the protocol used to communicate with the upstream. Default is `http`. - Can be `http`, `https`, `grpc`, or `grpcs`. + For L7 proxy, it can be `http`, `https`, `grpc`, or `grpcs`. + For L4 proxy, it can be `tcp`, `tls`, or `udp`. + The L4 values apply to stream routes only; using them for an HTTP route + makes the upstream unreachable. enum: - http - https - grpc - grpcs + - tcp + - tls + - udp type: string subsets: description: |- @@ -2529,12 +2541,18 @@ spec: description: |- Scheme is the protocol used to communicate with the upstream. Default is `http`. - Can be `http`, `https`, `grpc`, or `grpcs`. + For L7 proxy, it can be `http`, `https`, `grpc`, or `grpcs`. + For L4 proxy, it can be `tcp`, `tls`, or `udp`. + The L4 values apply to stream routes only; using them for an HTTP route + makes the upstream unreachable. enum: - http - https - grpc - grpcs + - tcp + - tls + - udp type: string targetRefs: description: |-