Commit d669b4f
committed
feat: add multi-gateway namespace support with hybrid gateway capabilities
This feature adds comprehensive multi-gateway support to the Envoy Gateway setup script,
enabling flexible deployments that can separate external and internal services with
appropriate security configurations.
Features:
- Configuration file mode (--config) for YAML-based multi-gateway setup
- Namespace isolation for each gateway (improved security and organization)
- Hybrid gateway support (external-only, internal-only, or both)
- Flexible certificate management (Let's Encrypt or self-signed per gateway)
- Route and listener processing for multiple gateways
- Support for multiple MetalLB pools per gateway
- Internal gateways accessible on port 443 (same as external)
- Backward compatibility with legacy single gateway mode
Configuration Format:
The new --config option accepts YAML files defining multiple gateways:
gateways:
- name: external-gateway
namespace: external-gateway
domain: cloud.example.com
type: [external]
metallb_pools:
external: gateway-api-external
issuer:
type: letsencrypt
email: [email protected]
routes:
- keystone
- nova
- neutron
Key Improvements:
- Each gateway runs in its own namespace for better isolation
- Routes are automatically created for each gateway type
- Listeners are applied to all gateways
- Support for multiple DNS providers (Cloudflare, Route53, Azure DNS, etc.)
- Comprehensive error handling and validation
Files Added:
- examples/gateway-config.yaml: Comprehensive example configuration
- examples/simple-gateway-config.yaml: Simple setup example
- docs/gateway-setup.md: Complete usage documentation
Files Modified:
- bin/setup-envoy-gateway.sh: Enhanced with multi-gateway support
Backward Compatibility:
- Legacy single gateway mode still works unchanged
- Existing --email, --domain, --challenge options preserved
- Interactive mode still available
- All DNS plugins supported in both modes1 parent 1681c39 commit d669b4f
File tree
19 files changed
+1407
-51
lines changed- base-kustomize/envoyproxy-gateway/base
- bin
- docs
- etc/gateway-api
- listeners
- routes
- examples
19 files changed
+1407
-51
lines changedLines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | | - | |
0 commit comments