-
Notifications
You must be signed in to change notification settings - Fork 61
feat: add multi-gateway namespace support with hybrid gateway capabil… #1325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add multi-gateway namespace support with hybrid gateway capabil… #1325
Conversation
|
I've done all the testing I can. I need some help testing the different challenge modes. Also, I need to figure out how we want to create the "internal" ipaddresspools and l2advertisemnets for metallb. Right now we have to manually create that if we try to deploy with an internal httproute. |
|
checks failing. please fix and resubmit your pr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add --- to beginning of file.
| namespace: envoy-gateway | ||
| sectionName: longhorn-https | ||
| rules: | ||
| - backendRefs: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
incorrect indentation. You will need to run this pr through yamllint and correct any errors/warnings.
…ities
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
1c2f75a to
eb066bc
Compare
eb066bc to
f8509f5
Compare
…ities
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 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:
Files Added:
Files Modified:
Backward Compatibility: