Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
c0ec554
Add OVN provider lifecycle skeleton
msinhore Apr 22, 2026
86ba819
OVN plugin: fix SSL cert enforcement and minor cleanups
msinhore Apr 22, 2026
a726815
OVN plugin: add real Northbound client backed by ODL OVSDB library
msinhore Apr 25, 2026
839af0e
OVN plugin: health-check Northbound endpoint at addOvnProvider
msinhore Apr 25, 2026
bd8ce97
OVN plugin: create logical switches and persist system VM bootstrap
msinhore Apr 27, 2026
818cf6d
OVN plugin: expose provider in UI and configuration
msinhore Apr 27, 2026
2e8c8a6
OVN plugin: bind VM NICs to logical switches via OVSDB LSPs
msinhore Apr 28, 2026
5d46852
OVN plugin: serve DHCPv4 from OVN itself via DHCP_Options
msinhore Apr 28, 2026
7aea0b5
OVN plugin: provision per-network L3 router with source NAT
msinhore Apr 28, 2026
661f659
OVN plugin: implement StaticNat via dnat_and_snat with Gateway_Chassi…
msinhore Apr 28, 2026
21619f3
OVN plugin: enforce ingress firewall rules via OVN ACL on the public LS
msinhore Apr 28, 2026
1f7c306
OVN plugin: detach NAT rows from Logical_Router.nat before deleting them
msinhore Apr 28, 2026
ea3ecc4
OVN plugin: add no-router network offerings
msinhore Apr 28, 2026
6e7c612
OVN plugin: implement PortForwarding and NetworkACL
msinhore Apr 28, 2026
6af5297
OVN plugin: announce SourceNat IPs via gARP and stop NAT-based PortFo…
msinhore Apr 28, 2026
ed63061
OVN plugin: implement PortForwarding via Load_Balancer
msinhore Apr 28, 2026
d762a14
OVN plugin: clean up per-IP artifacts on release and prune stale gate…
msinhore Apr 28, 2026
b5fb23f
OVN plugin: implement Load Balancer (L4) with health checks
msinhore Apr 28, 2026
7e31d3c
OVN plugin: reject LB rules placed on the network's SourceNat IP
msinhore Apr 29, 2026
e4cb8ac
OVN plugin: tighten Load_Balancer cleanup and protocol gate
msinhore Apr 29, 2026
43a9ea2
OVN plugin: introduce VPC-aware naming helpers (no functional change)
msinhore Apr 29, 2026
1eb672c
OVN plugin: implementVpc / shutdownVpc / updateVpcSourceNatIp
msinhore Apr 29, 2026
37cf8c6
OVN plugin: scope addStaticRoute idempotency by router
msinhore Apr 29, 2026
30604ae
OVN plugin: provision VPC tiers as LRPs on the shared VPC LR
msinhore Apr 29, 2026
b26e10c
OVN plugin: route StaticNat / PF / Firewall through VPC LR when appli…
msinhore Apr 29, 2026
c9758ae
OVN plugin: tag VPC NetworkACLs and scope ACL sweep to the target LS
msinhore Apr 29, 2026
801e5eb
OVN plugin: tag Public LB rows with VPC and scheme metadata
msinhore Apr 29, 2026
2c73d03
OVN plugin: support Internal Load Balancer scheme natively on the VPC LR
msinhore Apr 29, 2026
051b0a4
OVN plugin: complete the auto-seeded OVN offerings for fresh installs
msinhore Apr 29, 2026
b61ed36
OVN plugin: allow VM-initiated reply traffic past the public-IP firewall
msinhore Apr 29, 2026
991cdec
OVN plugin: fix NPE in addStaticRoute when LR already has routes
msinhore Apr 29, 2026
91a9caa
OVN plugin: drop unsolicited ICMP echo on public IPs with firewall rules
msinhore Apr 29, 2026
332a5aa
ui: surface OVN as a guest isolation method in the Add Zone wizard
msinhore Apr 29, 2026
273eb39
OVN plugin: implement VPC mesh peering
msinhore May 7, 2026
9d1b731
OVN plugin: fix peering LS per-zone provisioning and add arp_proxy fo…
msinhore May 8, 2026
aeb39f2
OVN plugin: add Firewall service to OVN VPC offering
msinhore May 8, 2026
5f68cbf
config-drive: check Dhcp/Dns on the network, not on ConfigDrive provider
msinhore May 8, 2026
2863dd7
OVN plugin: cross-zone VPC peering via OVN-IC + port-forward gARP fix
msinhore May 8, 2026
297c1ac
OVN plugin: preserve VPC peerings across restart-with-cleanup
msinhore May 8, 2026
f52af14
OVN plugin: skip remote AZ chassis when picking gateway-chassis
msinhore May 8, 2026
71cfd88
OVN plugin: drift-correct TS LRP networks on attach
msinhore May 8, 2026
5a42584
OVN plugin: pin same-AZ TS LRPs to a single primary gateway-chassis
msinhore May 8, 2026
178a5fd
OVN plugin: VPC peering enable/disable + AutogenView migration
msinhore May 9, 2026
88347e1
OVN plugin: peering UI ACL editor, column-cache fix, deep-dive deck
msinhore May 9, 2026
496116f
OVN plugin: Phase 1 QoS — per-NIC egress rate-limit on LSP
msinhore May 9, 2026
ec54048
ui: pt_BR translations for VPC Peering UI
msinhore May 9, 2026
ae123a9
OVN plugin: fix cross-zone VPC peering ACL update
msinhore May 9, 2026
34c63ab
Merge branch 'ovn-qos-bandwidth' into ovn-vpc-peering
msinhore May 9, 2026
95b06fd
OVN plugin: reject overlapping CIDRs at createVpcPeering time
msinhore May 9, 2026
d226f3d
Merge remote-tracking branch 'origin/ovn-vpc-peering' into ovn-vpc-pe…
msinhore May 11, 2026
a1f3bd3
Merge remote-tracking branch 'shapeblue/main' into ovn-plugin
msinhore May 11, 2026
43466e5
OVN plugin: fix referential-integrity error in addAclOnLs
msinhore May 15, 2026
700a462
OVN plugin: rename VPC Peering to Mesh Network
msinhore May 15, 2026
89059a8
OVN plugin: allow Isolated networks as mesh-network members
msinhore May 15, 2026
eb9625a
OVN plugin: UI fixes for mixed-mode mesh network picker
msinhore May 15, 2026
46c2a3d
OVN plugin: kind-agnostic columns + show non-Implemented isolated nets
msinhore May 15, 2026
5360eb4
OVN plugin: rename mesh-network members tab key vpc.peers -> mesh_peers
msinhore May 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
OVN plugin: add Firewall service to OVN VPC offering
The default OVN VPC offering was missing the Firewall service, causing
tier creation to fail with "Service/provider combination Firewall/Ovn
is not supported by VPC" when the network offering included Firewall.

OVN implements firewall rules natively via OVN ACLs and OvnElement
advertises the Firewall service in its capabilities, but the VPC
offering creation loop only iterated getSupportedServices() which
excludes Firewall for legacy VR-based VPCs.

Add Service.Firewall explicitly to the OVN VPC offering service map,
plus a schema migration to patch existing installations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
  • Loading branch information
msinhore and claude committed May 8, 2026
commit aeb39f21d4e061dce4edcc442425b6a9fe0e0202
Original file line number Diff line number Diff line change
Expand Up @@ -163,3 +163,14 @@ CREATE TABLE IF NOT EXISTS `cloud`.`ovn_vpc_peerings` (
CONSTRAINT `fk_ovn_vpc_peerings_zone` FOREIGN KEY (`zone_id`) REFERENCES `cloud`.`data_center`(`id`),
CONSTRAINT `fk_ovn_vpc_peerings_account` FOREIGN KEY (`account_id`) REFERENCES `cloud`.`account`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Add Firewall service to the default OVN VPC offering so that OVN VPC tiers
-- using network offerings with Firewall/Ovn pass the service validation check.
INSERT IGNORE INTO `cloud`.`vpc_offering_service_map` (`vpc_offering_id`, `service`, `provider`)
SELECT vo.id, 'Firewall', 'Ovn'
FROM `cloud`.`vpc_offerings` vo
WHERE vo.unique_name = 'VPC offering with OVN - NAT Mode'
AND NOT EXISTS (
SELECT 1 FROM `cloud`.`vpc_offering_service_map` sm
WHERE sm.vpc_offering_id = vo.id AND sm.service = 'Firewall'
);
Original file line number Diff line number Diff line change
Expand Up @@ -527,12 +527,15 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
if (svc == Service.UserData) {
svcProviderMap.put(svc, configDriveProvider);
} else if (svc == Service.Vpn) {
// Out of scope for OVN VPC v1 - no VPN provider in the offering.
continue;
} else {
svcProviderMap.put(svc, ovnProvider);
}
}
// OVN implements Firewall natively via OVN ACLs; VPC tiers use it
// instead of (or alongside) NetworkACL. getSupportedServices()
// excludes Firewall for legacy VR-based VPCs, so add it explicitly.
svcProviderMap.put(Service.Firewall, ovnProvider);
createVpcOffering(VpcOffering.DEFAULT_VPC_NAT_OVN_OFFERING_NAME, VpcOffering.DEFAULT_VPC_NAT_OVN_OFFERING_NAME, svcProviderMap, false,
State.Enabled, null, false, false, false, NetworkOffering.NetworkMode.NATTED, null, false, false);
}
Expand Down