Implement bilateral VPC peering using Kube-OVN's native vpcPeerings mechanism. Each VPC can declare peers by specifying the remote VPC name and tenant namespace. Peering is only activated by Kube-OVN when both sides declare each other, ensuring mutual consent. Key features: - Deterministic remote VPC ID resolution via sha256 hash - Auto-allocated link-local peering IPs (169.254.0.0/16) derived from sorted pair hash, eliminating manual IP coordination - Static routes support for fine-grained inter-VPC routing - ConfigMap enrichment with peer discovery info - Schema validation enforcing tenant- namespace prefix pattern Signed-off-by: Mattia Eleuteri <mattia.eleuteri@hidora.io> Signed-off-by: mattia-eleuteri <mattia@hidora.io>
38 lines
1 KiB
YAML
38 lines
1 KiB
YAML
##
|
|
## @section Common parameters
|
|
##
|
|
|
|
## @typedef {struct} Subnet - Subnet of a VPC
|
|
## @field {string} name - Subnet name
|
|
## @field {string} [cidr] - IP address range
|
|
|
|
## @param {[]Subnet} subnets - Subnets of a VPC
|
|
subnets: []
|
|
## Example:
|
|
## subnets:
|
|
## - name: mysubnet0
|
|
## cidr: "172.16.0.0/24"
|
|
## - name: mysubnet1
|
|
## cidr: "172.16.1.0/24"
|
|
|
|
## @typedef {struct} Peer - VPC peering target
|
|
## @field {string} vpcName - Logical name of the remote VPC (without "virtualprivatecloud-" prefix)
|
|
## @field {string} tenantNamespace - Namespace of the remote tenant
|
|
|
|
## @param {[]Peer} peers - VPC peering connections (bidirectional declaration required)
|
|
peers: []
|
|
## Example:
|
|
## peers:
|
|
## - vpcName: "other-vpc"
|
|
## tenantNamespace: "tenant-other"
|
|
|
|
## @typedef {struct} Route - Static route entry
|
|
## @field {string} cidr - Destination CIDR
|
|
## @field {string} nextHopIP - Next hop IP address
|
|
|
|
## @param {[]Route} routes - Static routes for the VPC
|
|
routes: []
|
|
## Example:
|
|
## routes:
|
|
## - cidr: "172.16.1.0/24"
|
|
## nextHopIP: "10.0.0.1"
|