This is an automated email from the ASF dual-hosted git repository.

pearl11594 pushed a commit to branch ghi12205-cks-network-mtu
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit a3cba0475c2272914e6213da8ea20029ef5e1e72
Author: Pearl Dsilva <[email protected]>
AuthorDate: Wed Dec 10 09:40:20 2025 -0500

    CKS: Use Zone MTUs when network is created at the time of CKS cluster 
creation
---
 api/src/main/java/com/cloud/network/NetworkService.java      |  4 ++++
 .../kubernetes/cluster/KubernetesClusterManagerImpl.java     |  7 +++++--
 .../src/main/java/com/cloud/network/NetworkServiceImpl.java  | 12 ++++++++++++
 .../src/test/java/com/cloud/vpc/MockNetworkManagerImpl.java  |  7 +++++++
 4 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/api/src/main/java/com/cloud/network/NetworkService.java 
b/api/src/main/java/com/cloud/network/NetworkService.java
index b8dd464b365..18e1edc6042 100644
--- a/api/src/main/java/com/cloud/network/NetworkService.java
+++ b/api/src/main/java/com/cloud/network/NetworkService.java
@@ -107,6 +107,10 @@ public interface NetworkService {
            PhysicalNetwork physicalNetwork, long zoneId, 
ControlledEntity.ACLType aclType) throws
             InsufficientCapacityException, ConcurrentOperationException, 
ResourceAllocationException;
 
+    Network createGuestNetwork(long networkOfferingId, String name, String 
displayText, Account owner,
+                               PhysicalNetwork physicalNetwork, long zoneId, 
ControlledEntity.ACLType aclType, Pair<Integer, Integer> vrIfaceMTUs) throws
+            InsufficientCapacityException, ConcurrentOperationException, 
ResourceAllocationException;
+
     Pair<List<? extends Network>, Integer> searchForNetworks(ListNetworksCmd 
cmd);
 
     boolean deleteNetwork(long networkId, boolean forced);
diff --git 
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
 
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
index 3b6052fb1b9..d4ec4669d2a 100644
--- 
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
+++ 
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java
@@ -973,9 +973,12 @@ public class KubernetesClusterManagerImpl extends 
ManagerBase implements Kuberne
 
             CallContext networkContext = 
CallContext.register(CallContext.current(), ApiCommandResourceType.Network);
             try {
+                Long zoneId = zone.getId();
+                Integer publicMTU = 
NetworkService.VRPublicInterfaceMtu.valueIn(zoneId);
+                Integer privateMTU = 
NetworkService.VRPrivateInterfaceMtu.valueIn(zoneId);
                 network = 
networkService.createGuestNetwork(networkOffering.getId(), clusterName + 
"-network",
-                        owner.getAccountName() + "-network", owner, 
physicalNetwork, zone.getId(),
-                        ControlledEntity.ACLType.Account);
+                        owner.getAccountName() + "-network", owner, 
physicalNetwork, zoneId,
+                        ControlledEntity.ACLType.Account, new 
Pair<>(publicMTU, privateMTU));
             } catch (ConcurrentOperationException | 
InsufficientCapacityException | ResourceAllocationException e) {
                 logAndThrow(Level.ERROR, String.format("Unable to create 
network for the Kubernetes cluster: %s", clusterName));
             } finally {
diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java 
b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
index 254c03c9317..726b41afc60 100644
--- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java
@@ -1869,6 +1869,18 @@ public class NetworkServiceImpl extends ManagerBase 
implements NetworkService, C
                 null, null, null, null, null, null, null, null, null, null);
     }
 
+    @Override
+    @DB
+    @ActionEvent(eventType = EventTypes.EVENT_NETWORK_CREATE, eventDescription 
= "creating network")
+    public Network createGuestNetwork(long networkOfferingId, String name, 
String displayText, Account owner,
+                                      PhysicalNetwork physicalNetwork, long 
zoneId, ACLType aclType, Pair<Integer, Integer> vrIfaceMTUs) throws
+            InsufficientCapacityException, ConcurrentOperationException, 
ResourceAllocationException {
+        return _networkMgr.createGuestNetwork(networkOfferingId, name, 
displayText,
+                null, null, null, false, null, owner, null, physicalNetwork, 
zoneId,
+                aclType, null, null, null, null, true, null,
+                null, null, null, null, null, null, null, null, vrIfaceMTUs, 
null);
+    }
+
     void checkAndSetRouterSourceNatIp(Account owner, CreateNetworkCmd cmd, 
Network network) throws InsufficientAddressCapacityException, 
ResourceAllocationException {
         String sourceNatIp = cmd.getSourceNatIP();
         if (sourceNatIp == null) {
diff --git a/server/src/test/java/com/cloud/vpc/MockNetworkManagerImpl.java 
b/server/src/test/java/com/cloud/vpc/MockNetworkManagerImpl.java
index 7f4344f30e4..673d0b7a48c 100644
--- a/server/src/test/java/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/src/test/java/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -230,6 +230,13 @@ public class MockNetworkManagerImpl extends ManagerBase 
implements NetworkOrches
         return null;
     }
 
+    @Override
+    public Network createGuestNetwork(long networkOfferingId, String name, 
String displayText, Account owner,
+           PhysicalNetwork physicalNetwork, long zoneId, ACLType aclType, 
Pair<Integer, Integer> vrIfaceMTUs)
+            throws InsufficientCapacityException, 
ConcurrentOperationException, ResourceAllocationException {
+        return null;
+    }
+
     /* (non-Javadoc)
      * @see 
com.cloud.network.NetworkService#searchForNetworks(com.cloud.api.commands.ListNetworksCmd)
      */

Reply via email to