mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-06 03:57:52 +09:00
## Summary - Add bilateral VPC peering using Kube-OVN's native `vpcPeerings` mechanism - Auto-allocate link-local peering IPs (`169.254.0.0/16`) deterministically from sorted VPC pair hash - Add static routes support (`staticRoutes`) for fine-grained inter-VPC routing - Enrich ConfigMap with peer discovery info - Add JSON Schema validation with `^tenant-` namespace pattern enforcement Closes #2151 ## How it works Each tenant independently declares peers in their VPC spec. The template computes the remote VPC's internal ID using the same deterministic hash formula, and derives complementary peering IPs from a sorted pair key. Kube-OVN only activates the peering tunnel when **both sides** declare each other — no custom controller needed. Example (Tenant A): ```yaml spec: subnets: - name: web cidr: "172.16.0.0/24" peers: - vpcName: "backend-vpc" tenantNamespace: "tenant-beta" ``` ## Test plan - [ ] `helm template` without peers → no `vpcPeerings` in output (backward compatible) - [ ] `helm template` with peers → correct `vpcPeerings` with auto-allocated IPs - [ ] Reciprocal peering: both sides reference each other with complementary IPs in same /30 - [ ] Schema rejects `tenantNamespace` not matching `^tenant-` - [ ] Deploy two VPCs with reciprocal peering on a live cluster → Kube-OVN activates tunnel - [ ] Remove one side → peering deactivated 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * VPC Peering: declare peer VPCs (tenant + name) to enable conditional peering and automatic per-peer connection entries. * Per-peer metadata: subnet/config outputs include peer-specific connection details (remote VPC ID and local connect IP). * Static Routes: optionally add custom CIDR routes with next-hop IPs for a VPC. * Values/schema: configuration and schema now accept peers and routes arrays. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
How to test packages local
cd packages/core/installer
make image-cozystack REGISTRY=YOUR_CUSTOM_REGISTRY
make apply
kubectl delete po -l app=source-controller -n cozy-fluxcd