Skip to content

Netris Network Plugin Integration with CloudStack #10458

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

Draft
wants to merge 91 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
5ebd693
Add Netris module and Add netris provider
nvazquez Sep 23, 2024
d5cdc62
Fix
nvazquez Sep 23, 2024
5ef984c
Add Netris Provider to the zone creation wizard
Pearl1594 Sep 23, 2024
f41e389
add steps to zone wizard for adding netris controller and public traffic
Pearl1594 Sep 23, 2024
b7d3be6
cleanup
Pearl1594 Sep 24, 2024
50a2979
Add missing config key
nvazquez Sep 27, 2024
0cd6c01
Add routed mode offerings for Netris VPC (#3)
Pearl1594 Sep 29, 2024
ada9fc7
fix failing build
Pearl1594 Oct 1, 2024
4ac2dc5
Support for listing VPCs (#5)
Pearl1594 Oct 11, 2024
56617da
List tenants
nvazquez Oct 11, 2024
a3dd9a1
Delegate API classes creation to the SDK and simply invoke the desire…
nvazquez Oct 15, 2024
737cd69
Support adding netris provider to CloudStack and Netris VPC Creation …
Pearl1594 Oct 22, 2024
e9415db
Fix unit tests
nvazquez Oct 23, 2024
7cf2da3
Add support to delete VNets and Subnets (#13)
Pearl1594 Oct 23, 2024
4610d10
Add missing suffix return (#14)
Pearl1594 Oct 24, 2024
a27eca3
Set up Netris Public range on new zone addition (#15)
nvazquez Nov 7, 2024
5a606c5
Pass VXLAN ID during creation of Netris vNets (#16)
Pearl1594 Nov 7, 2024
f927971
Update Subnet purpose for Netris Public Traffic (#17)
Pearl1594 Nov 12, 2024
0fb79bc
Fix VR Public IP address (#20)
nvazquez Nov 26, 2024
6842c9e
Pass network gateway instead of network CIDR for Netris vNet creation…
Pearl1594 Nov 26, 2024
51c86b6
Run moodifyvxlan script if broadcast domain type is Netris (#18)
Pearl1594 Nov 26, 2024
2fd983c
Add support to create Netris VPC / Network offerings (#22)
Pearl1594 Nov 28, 2024
09745b5
Phase4 - Add support for Source NAT, Static NAT and Port Forwarding (…
Pearl1594 Dec 4, 2024
b03d7f1
List only Netris Public IPs for NAT operations (#26)
Pearl1594 Dec 5, 2024
5688846
Support to pass provider when creating public ip range and create IPA…
Pearl1594 Dec 6, 2024
aefa37c
Revert UI filtration for public IPs (#29)
Pearl1594 Dec 6, 2024
29bc67a
Fix unit tests (#30)
nvazquez Dec 9, 2024
9c82452
Add Netris Tag parameter to the Network provider and fix zone creatio…
Pearl1594 Dec 10, 2024
7df2155
Fix SourceAddress for SNAt to VPC cidr (#35)
Pearl1594 Dec 13, 2024
f88b498
Fix VPC/network offering service list for external network providers …
Pearl1594 Dec 13, 2024
3a85f87
Add support to add and delete and update static routes on Netris (#37)
Pearl1594 Dec 20, 2024
3bc5981
Netris FR1b: Support Remote Access VPN and Site-to-Site VPN in VPC VR…
weizhouapache Dec 20, 2024
5fc07f8
Add support for Gateway service for Netris VPC and network offerings …
Pearl1594 Dec 26, 2024
8d9e4a6
Netris VPN: Fix s2s vpn status update and isolated network implementa…
weizhouapache Dec 27, 2024
93879e4
Release NAT IP subnet when VPC is removed or IP is released (#44)
Pearl1594 Jan 9, 2025
5302ece
Add support to add IPv6 Public IP range as IPAM Allocation / Subnet o…
Pearl1594 Jan 12, 2025
92aa0ee
Phase5 - Support for ACLs in Netris (#31)
Pearl1594 Feb 4, 2025
bed8a3c
Add global routing flag on subnet creation (#45)
nvazquez Feb 4, 2025
003e6e4
Support change snat ip (#46)
Pearl1594 Feb 4, 2025
b25e131
Fix naming convention for NAT subnets to follow other resources (#47)
Pearl1594 Feb 5, 2025
7d70c29
Keep Vpn service to default VPC offering with Natted mode only (#50)
nvazquez Feb 5, 2025
9cafac8
Validate if given CIDR belongs to a bigger allocation in Netris befor…
Pearl1594 Feb 5, 2025
9d851e0
Phase5 - Support for LB - create, delete and Update operations (#49)
Pearl1594 Feb 12, 2025
8ac6b12
Enable Autoscaling on Netris for CPU and memory (#51)
nvazquez Feb 13, 2025
372b8dc
Fix the test failures noticed
Pearl1594 Feb 13, 2025
3cba37d
Increase code coverage (#54)
nvazquez Feb 28, 2025
06f7c31
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Feb 28, 2025
37b691a
update pom version for netris plugin
Pearl1594 Feb 28, 2025
d555cc8
address lint and comilation failures
Pearl1594 Feb 28, 2025
5b15d18
Add support to add and remove ACL rules when CIDR list is passed when…
Pearl1594 Mar 5, 2025
e9d22af
Fix build (#57)
nvazquez Mar 5, 2025
4c0b061
Prevent Index Out of Bounds exception when naming IPAM subnets (#58)
Pearl1594 Mar 7, 2025
f164b97
Delete netris IPv6 subnet (#59)
Pearl1594 Mar 10, 2025
e844e0e
Netris VPN: add static route when update a non-existent static route …
weizhouapache Mar 11, 2025
5524fcb
Fix VPC tier creation failure - prevent creating IPv6 IPAM allocation…
nvazquez Mar 11, 2025
f9e48f8
Update netris VPC and tier name (#56)
Pearl1594 Mar 12, 2025
b175c5d
VR/server: configure default gateway and RA/S2S VPN on the IP/interfa…
weizhouapache Mar 17, 2025
a4e4ae9
Don't add deny rule if no CIDR list is passed (#62)
Pearl1594 Mar 17, 2025
411e1a4
Hide the Stickiness Configure button for Netris Load Balancers (#72)
nvazquez Mar 19, 2025
b9a60dd
Update IPAM subnet purpose to nat before NAT operations if its differ…
nvazquez Mar 19, 2025
6504f81
Netris VPN: create vpc gateway with specified IP (#63)
weizhouapache Mar 21, 2025
972d7a6
Netris: fix UnsupportedOperationException when create VPC offering wi…
weizhouapache Mar 21, 2025
6fe6102
Code coverage increase 1
nvazquez Mar 24, 2025
e02262f
Fix build
nvazquez Mar 24, 2025
8d8a1a7
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Jun 6, 2025
b56bec1
Add support to edit ACL rules
Pearl1594 May 14, 2025
22262a7
[UI] Zone wizard creation improvements - rename hostname to url and r…
nvazquez Apr 22, 2025
d35c387
Netris: create VPN gateway with specified public IP on UI
weizhouapache May 2, 2025
efc3b0f
Fix Static NAT rules naming
nvazquez May 2, 2025
03a6996
Netris vpn: apply static routes when start or delete a VPN connection
weizhouapache May 12, 2025
d4cfa04
Delete IPv6 allocation after tier removal on VPC with dual stack offe…
nvazquez May 12, 2025
d175893
Netris pass v6 gateway
Pearl1594 May 13, 2025
13cafbd
Use the previously assigned vNet for Netris Network when it transitio…
Pearl1594 May 16, 2025
ae99f24
[VR] Fix IPv6 NIC IP on the VR
nvazquez May 13, 2025
96da94f
Make reorder ACL items invoke Netris controller
nvazquez May 16, 2025
0cc961d
VR: advertise SLAAC prefix only if VR is gateway
weizhouapache May 16, 2025
a97c5df
VR: fix radvd misconfiguration for non-netris env
weizhouapache May 16, 2025
89fa700
[VR] Fix object comparisson to string comparisson on python
nvazquez May 16, 2025
c657a9e
Fix unit tests for ACL
nvazquez May 16, 2025
23f0ff1
[UI] Zone wizard creation improvements - rename hostname to url and r…
nvazquez Apr 22, 2025
5e0a431
fix test
Pearl1594 Jun 10, 2025
c25a7e5
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Jun 10, 2025
5db071e
remove unused imports
Pearl1594 Jun 11, 2025
5ec69d5
remove netris module
Pearl1594 Jun 11, 2025
e4295bf
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Jun 12, 2025
a905be8
Selectively call netris service - only for noredist
Pearl1594 Jun 12, 2025
53cb769
fix ci simulator tests
Pearl1594 Jun 13, 2025
8ad95c4
Fix issue with duplicate parameter in json response
Pearl1594 Jun 17, 2025
e61ca8e
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Jun 20, 2025
a7adaee
Merge branch 'main' of https://github.com/apache/cloudstack into netr…
Pearl1594 Jun 26, 2025
b0603c1
Support ACLs for IPv6 addresses
Pearl1594 Jun 26, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class FirewallRuleTO implements InternalIdentity {
int[] srcPortRange;
boolean revoked;
boolean alreadyAdded;
private List<String> sourceCidrList;
protected List<String> sourceCidrList;
private List<String> destCidrList;
FirewallRule.Purpose purpose;
private Integer icmpType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
import com.cloud.utils.net.NetUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
* PortForwardingRuleTO specifies one port forwarding rule.
*
Expand All @@ -32,8 +30,6 @@ public class PortForwardingRuleTO extends FirewallRuleTO {
String dstIp;
int[] dstPortRange;

List<String> sourceCidrList;

protected PortForwardingRuleTO() {
super();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@
package com.cloud.configuration;

import java.util.List;
import java.util.Map;
import java.util.Objects;

import com.cloud.network.Network;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.admin.config.ResetCfgCmd;
import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd;
import org.apache.cloudstack.api.command.admin.network.CreateGuestNetworkIpv6PrefixCmd;
Expand Down Expand Up @@ -373,4 +377,16 @@
List<? extends PortableIp> listPortableIps(long id);

Boolean isAccountAllowedToCreateOfferingsWithTags(IsAccountAllowedToCreateOfferingsWithTagsCmd cmd);

public static final Map<String, String> ProviderDetailKeyMap = Map.of(
Network.Provider.Nsx.getName(), ApiConstants.NSX_DETAIL_KEY,
Network.Provider.Netris.getName(), ApiConstants.NETRIS_DETAIL_KEY
);

public static boolean IsIpRangeForProvider(Network.Provider provider) {

Check warning on line 386 in api/src/main/java/com/cloud/configuration/ConfigurationService.java

View check run for this annotation

Codecov / codecov/patch

api/src/main/java/com/cloud/configuration/ConfigurationService.java#L386

Added line #L386 was not covered by tests
if (Objects.isNull(provider)) {
return false;

Check warning on line 388 in api/src/main/java/com/cloud/configuration/ConfigurationService.java

View check run for this annotation

Codecov / codecov/patch

api/src/main/java/com/cloud/configuration/ConfigurationService.java#L388

Added line #L388 was not covered by tests
}
return ProviderDetailKeyMap.containsKey(provider.getName());
}

Check warning on line 391 in api/src/main/java/com/cloud/configuration/ConfigurationService.java

View check run for this annotation

Codecov / codecov/patch

api/src/main/java/com/cloud/configuration/ConfigurationService.java#L390-L391

Added lines #L390 - L391 were not covered by tests
}
2 changes: 2 additions & 0 deletions api/src/main/java/com/cloud/event/EventTypes.java
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,8 @@ public class EventTypes {

public static final String EVENT_ZONE_VLAN_ASSIGN = "ZONE.VLAN.ASSIGN";
public static final String EVENT_ZONE_VLAN_RELEASE = "ZONE.VLAN.RELEASE";
public static final String EVENT_ZONE_VXLAN_ASSIGN = "ZONE.VXLAN.ASSIGN";
public static final String EVENT_ZONE_VXLAN_RELEASE = "ZONE.VXLAN.RELEASE";

// Projects
public static final String EVENT_PROJECT_CREATE = "PROJECT.CREATE";
Expand Down
1 change: 1 addition & 0 deletions api/src/main/java/com/cloud/network/IpAddress.java
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,5 @@ enum Purpose {

boolean isForSystemVms();

boolean isForRouter();
}
1 change: 1 addition & 0 deletions api/src/main/java/com/cloud/network/Network.java
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ public static class Provider {
public static final Provider Tungsten = new Provider("Tungsten", false);

public static final Provider Nsx = new Provider("Nsx", false);
public static final Provider Netris = new Provider("Netris", false);

private final String name;
private final boolean isExternal;
Expand Down
3 changes: 2 additions & 1 deletion api/src/main/java/com/cloud/network/Networks.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ public <T> URI toUri(T value) {
UnDecided(null, null),
OpenDaylight("opendaylight", String.class),
TUNGSTEN("tf", String.class),
NSX("nsx", String.class);
NSX("nsx", String.class),
Netris("netris", String.class);

private final String scheme;
private final Class<?> type;
Expand Down
Loading
Loading