weizhouapache commented on code in PR #11528:
URL: https://github.com/apache/cloudstack/pull/11528#discussion_r2329959458


##########
plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java:
##########
@@ -367,18 +367,33 @@ private void logAndThrow(final Level logLevel, final 
String message, final Excep
         logTransitStateAndThrow(logLevel, message, null, null, ex);
     }
 
-    private boolean isKubernetesServiceNetworkOfferingConfigured(DataCenter 
zone) {
+    private boolean isKubernetesServiceNetworkOfferingConfigured(DataCenter 
zone, Long networkId) {
         // Check network offering
         String networkOfferingName = KubernetesClusterNetworkOffering.value();
-        if (networkOfferingName == null || networkOfferingName.isEmpty()) {
-            logger.warn(String.format("Global setting %s is empty. Admin has 
not yet specified the network offering to be used for provisioning isolated 
network for the cluster", KubernetesClusterNetworkOffering.key()));
+        if (StringUtils.isEmpty(networkOfferingName) && networkId == null) {
+            logger.warn("Global setting: {} is empty. Admin has not yet 
specified the network offering to be used for provisioning isolated network for 
the cluster nor has a pre-created network been passed", 
KubernetesClusterNetworkOffering.key());
             return false;
         }
-        NetworkOfferingVO networkOffering = 
networkOfferingDao.findByUniqueName(networkOfferingName);
-        if (networkOffering == null) {
-            logger.warn(String.format("Unable to find the network offering %s 
to be used for provisioning Kubernetes cluster", networkOfferingName));
-            return false;
+        NetworkOfferingVO networkOffering = null;
+        if (networkId != null) {
+            NetworkVO network = networkDao.findById(networkId);
+            if (network == null) {
+                logger.warn("Unable to find the network with ID: {} passed for 
the Kubernetes cluster", networkId);
+                return false;
+            }
+            networkOffering = 
networkOfferingDao.findById(network.getNetworkOfferingId());
+            if (networkOffering == null) {
+                logger.warn("Unable to find the network offering of the 
network: {} ({}) to be used for provisioning Kubernetes cluster", 
network.getName(), network.getUuid());
+                return false;
+            }
+        } else if (StringUtils.isNotEmpty(networkOfferingName)) {
+            networkOffering = 
networkOfferingDao.findByUniqueName(networkOfferingName);
+            if (networkOffering == null) {
+                logger.warn("Unable to find the network offering: {} to be 
used for provisioning Kubernetes cluster", networkOfferingName);
+                return false;
+            }
         }
+

Review Comment:
   I think all scenarios have been covered. this will not happen
   cc @Pearl1594 
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to