Skip to content

Commit 2ea5803

Browse files
Pearl1594dhslove
authored andcommitted
CKS: Validate network offering from network if provided rather than global setting (apache#11528)
* CKS: Validate network offering from network if provided rather than global setting * update warning message
1 parent 2c08e2c commit 2ea5803

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -421,18 +421,33 @@ private void logAndThrow(final Level logLevel, final String message, final Excep
421421
logTransitStateAndThrow(logLevel, message, null, null, ex);
422422
}
423423

424-
private boolean isKubernetesServiceNetworkOfferingConfigured(DataCenter zone) {
424+
private boolean isKubernetesServiceNetworkOfferingConfigured(DataCenter zone, Long networkId) {
425425
// Check network offering
426426
String networkOfferingName = KubernetesClusterNetworkOffering.value();
427-
if (networkOfferingName == null || networkOfferingName.isEmpty()) {
428-
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()));
427+
if (StringUtils.isEmpty(networkOfferingName) && networkId == null) {
428+
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());
429429
return false;
430430
}
431-
NetworkOfferingVO networkOffering = networkOfferingDao.findByUniqueName(networkOfferingName);
432-
if (networkOffering == null) {
433-
logger.warn(String.format("Unable to find the network offering %s to be used for provisioning Kubernetes cluster", networkOfferingName));
434-
return false;
431+
NetworkOfferingVO networkOffering = null;
432+
if (networkId != null) {
433+
NetworkVO network = networkDao.findById(networkId);
434+
if (network == null) {
435+
logger.warn("Unable to find the network with ID: {} passed for the Kubernetes cluster", networkId);
436+
return false;
437+
}
438+
networkOffering = networkOfferingDao.findById(network.getNetworkOfferingId());
439+
if (networkOffering == null) {
440+
logger.warn("Unable to find the network offering of the network: {} ({}) to be used for provisioning Kubernetes cluster", network.getName(), network.getUuid());
441+
return false;
442+
}
443+
} else if (StringUtils.isNotEmpty(networkOfferingName)) {
444+
networkOffering = networkOfferingDao.findByUniqueName(networkOfferingName);
445+
if (networkOffering == null) {
446+
logger.warn("Unable to find the network offering: {} to be used for provisioning Kubernetes cluster", networkOfferingName);
447+
return false;
448+
}
435449
}
450+
436451
if (networkOffering.getState() == NetworkOffering.State.Disabled) {
437452
logger.warn("Network offering: {} is not enabled", networkOffering);
438453
return false;
@@ -467,8 +482,8 @@ private boolean isKubernetesServiceNetworkOfferingConfigured(DataCenter zone) {
467482
return true;
468483
}
469484

470-
private boolean isKubernetesServiceConfigured(DataCenter zone) {
471-
if (!isKubernetesServiceNetworkOfferingConfigured(zone)) {
485+
private boolean isKubernetesServiceConfigured(DataCenter zone, Long networkId) {
486+
if (!isKubernetesServiceNetworkOfferingConfigured(zone, networkId)) {
472487
return false;
473488
}
474489
return true;
@@ -1024,7 +1039,7 @@ private void validateManagedKubernetesClusterCreateParameters(final CreateKubern
10241039

10251040
DataCenter zone = validateAndGetZoneForKubernetesCreateParameters(zoneId, networkId);
10261041

1027-
if (!isKubernetesServiceConfigured(zone)) {
1042+
if (!isKubernetesServiceConfigured(zone, networkId)) {
10281043
throw new CloudRuntimeException("Kubernetes service has not been configured properly to provision Kubernetes clusters");
10291044
}
10301045

0 commit comments

Comments
 (0)