Skip to content

Commit d669b4f

Browse files
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 modes
1 parent 1681c39 commit d669b4f

19 files changed

+1407
-51
lines changed

base-kustomize/envoyproxy-gateway/base/envoy-internal-gateway-issuer.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
apiVersion: cert-manager.io/v1
23
kind: ClusterIssuer
34
metadata:

base-kustomize/envoyproxy-gateway/base/envoy-service-monitor.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
apiVersion: monitoring.coreos.com/v1
23
kind: ServiceMonitor
34
metadata:

base-kustomize/envoyproxy-gateway/base/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
sortOptions:
23
order: fifo
34
resources:
@@ -8,4 +9,3 @@ resources:
89
- envoy-gateway.yaml
910
- envoy-endpoint-policies.yaml
1011
- envoy-service-monitor.yaml
11-
- all.yaml

0 commit comments

Comments
 (0)