Commit f986e24
* feat(netbird): add Gateway API support and reject ingressGrpc without TLS
Adds HTTPRoute/GRPCRoute/TCPRoute as mutually-exclusive alternatives to
each existing Ingress block (server.httpRoute, server.grpcRoute,
server.relayHttpRoute, server.relayTcpRoute, dashboard.httpRoute). The
chart renders routes only and attaches them via parentRefs to a
user-managed Gateway. Omitted backendRefs auto-fill to the netbird
Service on port 80.
Fail-fast helm-template validation covers:
* Ingress + Gateway route both enabled for the same traffic class
* relayHttpRoute and relayTcpRoute both enabled
* Route enabled with empty parentRefs
* ingressGrpc enabled with empty tls — gRPC over nginx-ingress cannot
negotiate h2c, and the default ssl-redirect annotation redirects
plaintext gRPC to HTTPS, so this silently failed before
Fixes #74 by giving users a plaintext-h2c path (grpcRoute) for gRPC and
rejecting the silent-failure Ingress configuration.
Includes 36 new helm-unittest cases and an Envoy-Gateway-based e2e test
harness (ci/scripts/netbird/e2e-gateway.sh + CI job) that verifies routes
reach Accepted=True on the gateway and that backendRefs auto-fill.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* style(netbird): dprint-format README and values.yaml
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ci(netbird): let Envoy Gateway install Gateway API CRDs
Installing standard-install.yaml with kubectl then running the
envoy-gateway Helm chart caused server-side-apply conflicts: EG owns
the same CRDs via its packaged manifests but our prior kubectl-apply
set "kubectl-client-side-apply" as the field manager. The EG chart
bundles both standard and experimental channel CRDs (including
TCPRoute), so a single install is enough.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ci(netbird): wait for Gateway Accepted, preserve state for debug on fail
Gateway Programmed condition requires Envoy's data-plane pod to be
Ready, which is too slow on kind within the 3m timeout. Route
attachment only needs the Gateway to be Accepted (admission by the
controller), so wait on that instead — routes progress independently
of proxy readiness.
Also skip the cleanup trap on non-zero exit so CI's "Show debug info
on failure" step can actually see pod status / events / logs —
previously the namespace was deleted before debug ran.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 93eda38 commit f986e24
20 files changed
Lines changed: 1263 additions & 37 deletions
File tree
- .github/workflows
- charts/netbird
- ci
- templates
- tests
- ci/scripts/netbird
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
213 | 251 | | |
214 | 252 | | |
215 | 253 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
19 | 42 | | |
20 | 43 | | |
21 | 44 | | |
| |||
24 | 47 | | |
25 | 48 | | |
26 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
27 | 53 | | |
28 | 54 | | |
29 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
39 | 42 | | |
40 | 43 | | |
41 | 44 | | |
| |||
46 | 49 | | |
47 | 50 | | |
48 | 51 | | |
| 52 | + | |
49 | 53 | | |
50 | 54 | | |
51 | 55 | | |
| |||
0 commit comments