diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java index 4381447a4bf..93edc1429d4 100644 --- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java @@ -115,6 +115,7 @@ public class ApiConstants { public static final String CNI_CONFIG = "cniconfig"; public static final String CNI_CONFIG_ID = "cniconfigurationid"; public static final String CNI_CONFIG_DETAILS = "cniconfigdetails"; + public static final String CNI_CONFIG_NAME = "cniconfigname"; public static final String COMPONENT = "component"; public static final String CPU_CORE_PER_SOCKET = "cpucorepersocket"; public static final String CPU_NUMBER = "cpunumber"; 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 ab8fe3e4308..fbddb46bd20 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 @@ -63,7 +63,9 @@ import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterAddWorker; import com.cloud.network.rules.PortForwardingRuleVO; import com.cloud.network.rules.dao.PortForwardingRulesDao; import com.cloud.template.TemplateApiService; +import com.cloud.user.UserDataVO; import com.cloud.user.dao.AccountDao; +import com.cloud.user.dao.UserDataDao; import com.cloud.uservm.UserVm; import com.cloud.vm.NicVO; import com.cloud.vm.UserVmService; @@ -256,6 +258,8 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne @Inject protected ServiceOfferingDao serviceOfferingDao; @Inject + protected UserDataDao userDataDao; + @Inject protected VMTemplateDao templateDao; @Inject protected TemplateJoinDao templateJoinDao; @@ -705,6 +709,12 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne response.setServiceOfferingName(offering.getName()); } + Long cniConfigId = kubernetesCluster.getCniConfigId(); + if (Objects.nonNull(cniConfigId)) { + UserDataVO cniConfig = userDataDao.findById(cniConfigId); + response.setCniConfigId(cniConfig.getUuid()); + response.setCniConfigName(cniConfig.getName()); + } setNodeTypeServiceOfferingResponse(response, WORKER, kubernetesCluster.getWorkerServiceOfferingId()); setNodeTypeServiceOfferingResponse(response, CONTROL, kubernetesCluster.getControlServiceOfferingId()); setNodeTypeServiceOfferingResponse(response, ETCD, kubernetesCluster.getEtcdServiceOfferingId()); diff --git a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java index dc2721474d6..b811f4f9dcb 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java +++ b/plugins/integrations/kubernetes-service/src/main/java/org/apache/cloudstack/api/response/KubernetesClusterResponse.java @@ -135,6 +135,14 @@ public class KubernetesClusterResponse extends BaseResponseWithAnnotations imple @Param(description = "keypair details") private String keypair; + @SerializedName(ApiConstants.CNI_CONFIG_ID) + @Param(description = "ID of CNI Configuration associated with the cluster") + private String cniConfigId; + + @SerializedName(ApiConstants.CNI_CONFIG_NAME) + @Param(description = "Name of CNI Configuration associated with the cluster") + private String cniConfigName; + @Deprecated(since = "4.16") @SerializedName(ApiConstants.MASTER_NODES) @Param(description = "the master nodes count for the Kubernetes cluster. This parameter is deprecated, please use 'controlnodes' parameter.") @@ -499,4 +507,12 @@ public class KubernetesClusterResponse extends BaseResponseWithAnnotations imple public void setClusterType(KubernetesCluster.ClusterType clusterType) { this.clusterType = clusterType; } + + public void setCniConfigId(String cniConfigId) { + this.cniConfigId = cniConfigId; + } + + public void setCniConfigName(String cniConfigName) { + this.cniConfigName = cniConfigName; + } } diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json index 9ab009bae25..1ccf1457366 100644 --- a/ui/public/locales/en.json +++ b/ui/public/locales/en.json @@ -2650,6 +2650,7 @@ "label.usersecretkey": "Secret Key", "label.create.bucket": "Create Bucket", "label.cniconfiguration": "CNI Configuration", +"label.cniconfigname": "Associated CNI Configuration", "label.cniconfigparams": "CNI Configuration parameters", "message.acquire.ip.failed": "Failed to acquire IP.", "message.action.acquire.ip": "Please confirm that you want to acquire new IP.", diff --git a/ui/src/components/view/DetailsTab.vue b/ui/src/components/view/DetailsTab.vue index 71bb544f079..d76da5f0d45 100644 --- a/ui/src/components/view/DetailsTab.vue +++ b/ui/src/components/view/DetailsTab.vue @@ -132,6 +132,9 @@
{{ $t(getUserSourceLabel(dataResource[item])) }}
+
+ {{ dataResource.cniconfigname }} +
{{ dataResource[item] }}
diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js index 9c306f16093..8759bea992a 100644 --- a/ui/src/config/section/compute.js +++ b/ui/src/config/section/compute.js @@ -552,7 +552,7 @@ export default { const filters = ['cloud.managed', 'external.managed'] return filters }, - details: ['name', 'description', 'zonename', 'kubernetesversionname', 'autoscalingenabled', 'minsize', 'maxsize', 'size', 'controlnodes', 'etcdnodes', 'cpunumber', 'memory', 'keypair', 'associatednetworkname', 'account', 'domain', 'zonename', 'clustertype', 'created'], + details: ['name', 'description', 'zonename', 'kubernetesversionname', 'autoscalingenabled', 'minsize', 'maxsize', 'size', 'controlnodes', 'etcdnodes', 'cpunumber', 'memory', 'keypair', 'cniconfigname', 'associatednetworkname', 'account', 'domain', 'zonename', 'clustertype', 'created'], tabs: [ { name: 'k8s',