Problem
Currently, make local-setup only provisions a single cluster, making it impossible to run multicluster tests locally:
- Multicluster tests skip locally due to missing second cluster
- Developers cannot test DNS, TLS, and load balancing across clusters
- Local development doesn't support multicluster scenarios
- Requires external environment to test multicluster features
Proposed Solution
1. Provision Second Cluster
Extend make local-setup to optionally create a second cluster (e.g., kind create cluster --name cluster2)
2. Configure Multicluster Networking
Set up networking between clusters:
- Configure cluster peering or gateway connectivity
- Ensure clusters can communicate with each other
- Set up DNS resolution between clusters
3. Deploy Kuadrant on Both Clusters
- Deploy Kuadrant operator and components on both clusters
- Configure multicluster gateway/route setup
- Set up shared control plane or distributed control plane as needed
4. Configure Certificate Authority
Investigation needed: Determine best approach for local CA setup:
- Option A: Generate a new self-signed CA for local development
- Option B: Import an existing CA for testing
- Consider: cert-manager configuration, trust between clusters, TLS certificate generation
5. Configure Test Settings
Update test configuration to support multicluster scenarios:
- Configure
settings.local.yaml with both cluster contexts
- Set up cluster-specific kubeconfig access
- Configure DNS and service discovery for multicluster
Benefits
- ✅ Enables running multicluster test suite locally
- ✅ Developers can test DNS, TLS, and load balancing features
- ✅ Faster iteration on multicluster features
- ✅ No dependency on external multicluster environments
Acceptance Criteria
Related
- Multicluster tests:
testsuite/tests/multicluster/
- DNS tests:
testsuite/tests/multicluster/coredns/
- Load balanced tests:
testsuite/tests/multicluster/load_balanced/
Technical Notes
- Consider using kind clusters with custom network configuration for local multicluster
- May need MetalLB or similar for LoadBalancer services in kind
- DNS setup might require CoreDNS configuration or external DNS
- CA investigation should consider: cert-manager, trust stores, certificate rotation
- Resource requirements: running two clusters locally may be resource-intensive
Investigation Tasks
Problem
Currently,
make local-setuponly provisions a single cluster, making it impossible to run multicluster tests locally:Proposed Solution
1. Provision Second Cluster
Extend
make local-setupto optionally create a second cluster (e.g.,kind create cluster --name cluster2)2. Configure Multicluster Networking
Set up networking between clusters:
3. Deploy Kuadrant on Both Clusters
4. Configure Certificate Authority
Investigation needed: Determine best approach for local CA setup:
5. Configure Test Settings
Update test configuration to support multicluster scenarios:
settings.local.yamlwith both cluster contextsBenefits
Acceptance Criteria
make local-setup(with multicluster flag) provisions two clustersmake test testsuite/tests/multicluster/make clean-multicluster)Related
testsuite/tests/multicluster/testsuite/tests/multicluster/coredns/testsuite/tests/multicluster/load_balanced/Technical Notes
Investigation Tasks