You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: per-namespace model — namespace-scoped RBAC, no GatewayClass
- ClusterRole/ClusterRoleBinding → Role/RoleBinding (all operator
resources are namespace-scoped, no cluster-wide permissions needed)
- Remove gatewayclass.yaml — Envoy Gateway installs the "eg" class
automatically; chart now defaults to gateway.className=eg
- Operator always scoped to release namespace (--watch-namespace and
--gateway-namespace hardwired to .Release.Namespace)
- gateway.allowedRouteNamespaces defaults to Same
- Removed gateway.namespace, operator.gatewayNamespace,
operator.watchNamespace values and unused _helpers.tpl entries
- README: simplify to one helm install per namespace
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This installs the operator, a `GatewayClass`, and a `Gateway` in the `envoy-router` namespace.
41
+
The operator watches only its own namespace and attaches HTTPRoutes to the Gateway in the same namespace.
41
42
42
43
## Making a pod routable
43
44
@@ -58,43 +59,28 @@ Key Helm values:
58
59
| Value | Default | Description |
59
60
|---|---|---|
60
61
| `operator.podPort` | `8080` | Port the pods listen on |
61
-
| `operator.watchNamespace` | `""` | Restrict to one namespace (empty = all) |
62
-
| `gateway.allowedRouteNamespaces` | `All` | Namespaces that can attach HTTPRoutes |
63
-
| `gateway.create` | `true` | Set `false` to bring your own Gateway |
62
+
| `gateway.create` | `true` | Set `false` to skip Gateway creation |
63
+
| `gateway.className` | `eg` | GatewayClass name (Envoy Gateway installs `eg` by default) |
64
+
| `gateway.port` | `80` | Listener port on the Gateway |
64
65
65
66
## Multi-namespace setup
66
67
67
-
If you have multiple namespaces each with their own ALB, deploy one `Gateway` per namespace. A single Envoy Gateway controller and a single operator instance serve the whole cluster.
68
-
69
-
```
70
-
ns-1: ALB-1 → Gateway (ns-1) → HTTPRoutes for pp-* in ns-1
71
-
ns-2: ALB-2 → Gateway (ns-2) → HTTPRoutes for pp-* in ns-2
72
-
```
73
-
74
-
**ALB configuration:** each ALB needs only one rule — forward `/*` to the Envoy Gateway service in that namespace. No per-pod rules.
75
-
76
-
**Install the operator once** (cluster-wide, no Gateway):
68
+
Each namespace is fully independent — just repeat the install:
--set operator.watchNamespace=ns-1 # disable second operator — only one needed
78
+
```
79
+
ns-1: ALB-1 → Gateway (ns-1) → HTTPRoutes for pp-* in ns-1
80
+
ns-2: ALB-2 → Gateway (ns-2) → HTTPRoutes for pp-* in ns-2
95
81
```
96
82
97
-
> The operator uses the pod's namespace to find the local Gateway when `--gateway-namespace` is empty, so HTTPRoutes in `ns-1` attach to the Gateway in `ns-1` automatically.
83
+
**ALB configuration:** one rule per ALB — forward `/*` to the Envoy Gateway service in that namespace. No per-pod rules needed.
0 commit comments