|
169 | 169 | import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStartWorker; |
170 | 170 | import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStopWorker; |
171 | 171 | import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterUpgradeWorker; |
| 172 | +import com.cloud.kubernetes.cluster.dao.KubernetesClusterAffinityGroupMapDao; |
172 | 173 | import com.cloud.kubernetes.cluster.dao.KubernetesClusterDao; |
173 | 174 | import com.cloud.kubernetes.cluster.dao.KubernetesClusterDetailsDao; |
174 | 175 | import com.cloud.kubernetes.cluster.dao.KubernetesClusterVmMapDao; |
@@ -315,6 +316,8 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne |
315 | 316 | @Inject |
316 | 317 | public KubernetesClusterDetailsDao kubernetesClusterDetailsDao; |
317 | 318 | @Inject |
| 319 | + public KubernetesClusterAffinityGroupMapDao kubernetesClusterAffinityGroupMapDao; |
| 320 | + @Inject |
318 | 321 | public KubernetesSupportedVersionDao kubernetesSupportedVersionDao; |
319 | 322 | @Inject |
320 | 323 | protected SSHKeyPairDao sshKeyPairDao; |
@@ -1187,6 +1190,20 @@ private Network getKubernetesClusterNetworkIfMissing(final String clusterName, f |
1187 | 1190 | return network; |
1188 | 1191 | } |
1189 | 1192 |
|
| 1193 | + private void persistAffinityGroupMappings(long clusterId, Map<String, List<Long>> affinityGroupNodeTypeMap) { |
| 1194 | + if (MapUtils.isEmpty(affinityGroupNodeTypeMap)) { |
| 1195 | + return; |
| 1196 | + } |
| 1197 | + for (Map.Entry<String, List<Long>> nodeTypeAffinityGroupEntry : affinityGroupNodeTypeMap.entrySet()) { |
| 1198 | + String nodeType = nodeTypeAffinityGroupEntry.getKey(); |
| 1199 | + List<Long> affinityGroupIds = nodeTypeAffinityGroupEntry.getValue(); |
| 1200 | + for (Long affinityGroupId : affinityGroupIds) { |
| 1201 | + kubernetesClusterAffinityGroupMapDao.persist( |
| 1202 | + new KubernetesClusterAffinityGroupMapVO(clusterId, nodeType, affinityGroupId)); |
| 1203 | + } |
| 1204 | + } |
| 1205 | + } |
| 1206 | + |
1190 | 1207 | private void addKubernetesClusterDetails(final KubernetesCluster kubernetesCluster, final Network network, final CreateKubernetesClusterCmd cmd) { |
1191 | 1208 | final String externalLoadBalancerIpAddress = cmd.getExternalLoadBalancerIpAddress(); |
1192 | 1209 | final String dockerRegistryUserName = cmd.getDockerRegistryUserName(); |
@@ -1627,7 +1644,7 @@ public KubernetesCluster createManagedKubernetesCluster(CreateKubernetesClusterC |
1627 | 1644 | } |
1628 | 1645 |
|
1629 | 1646 | Map<String, Long> templateNodeTypeMap = cmd.getTemplateNodeTypeMap(); |
1630 | | - Map<String, String> affinityGroupNodeTypeMap = cmd.getAffinityGroupNodeTypeMap(); |
| 1647 | + Map<String, List<Long>> affinityGroupNodeTypeMap = cmd.getAffinityGroupNodeTypeMap(); |
1631 | 1648 | final VMTemplateVO finalTemplate = getKubernetesServiceTemplate(zone, hypervisorType, templateNodeTypeMap, DEFAULT, clusterKubernetesVersion); |
1632 | 1649 | final VMTemplateVO controlNodeTemplate = getKubernetesServiceTemplate(zone, hypervisorType, templateNodeTypeMap, CONTROL, clusterKubernetesVersion); |
1633 | 1650 | final VMTemplateVO workerNodeTemplate = getKubernetesServiceTemplate(zone, hypervisorType, templateNodeTypeMap, WORKER, clusterKubernetesVersion); |
@@ -1668,20 +1685,12 @@ public KubernetesClusterVO doInTransaction(TransactionStatus status) { |
1668 | 1685 | } |
1669 | 1686 | newCluster.setWorkerNodeTemplateId(workerNodeTemplate.getId()); |
1670 | 1687 | newCluster.setControlNodeTemplateId(controlNodeTemplate.getId()); |
1671 | | - if (affinityGroupNodeTypeMap.containsKey(WORKER.name())) { |
1672 | | - newCluster.setWorkerNodeAffinityGroupIds(affinityGroupNodeTypeMap.get(WORKER.name())); |
1673 | | - } |
1674 | | - if (affinityGroupNodeTypeMap.containsKey(CONTROL.name())) { |
1675 | | - newCluster.setControlNodeAffinityGroupIds(affinityGroupNodeTypeMap.get(CONTROL.name())); |
1676 | | - } |
1677 | | - if (etcdNodes > 0 && affinityGroupNodeTypeMap.containsKey(ETCD.name())) { |
1678 | | - newCluster.setEtcdNodeAffinityGroupIds(affinityGroupNodeTypeMap.get(ETCD.name())); |
1679 | | - } |
1680 | 1688 | if (zone.isSecurityGroupEnabled()) { |
1681 | 1689 | newCluster.setSecurityGroupId(finalSecurityGroup.getId()); |
1682 | 1690 | } |
1683 | 1691 | newCluster.setCsiEnabled(cmd.getEnableCsi()); |
1684 | 1692 | kubernetesClusterDao.persist(newCluster); |
| 1693 | + persistAffinityGroupMappings(newCluster.getId(), affinityGroupNodeTypeMap); |
1685 | 1694 | addKubernetesClusterDetails(newCluster, defaultNetwork, cmd); |
1686 | 1695 | return newCluster; |
1687 | 1696 | } |
|
0 commit comments