From 8d4b4dcec42f2eccb63e563ba14197ae229474f0 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 16 Feb 2024 15:01:27 +0100 Subject: [PATCH 1/3] CKS: add kube config path in extra control nodes (#8658) --- .../src/main/resources/conf/k8s-control-node-add.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/integrations/kubernetes-service/src/main/resources/conf/k8s-control-node-add.yml b/plugins/integrations/kubernetes-service/src/main/resources/conf/k8s-control-node-add.yml index b4167147ba4..2c18efa0189 100644 --- a/plugins/integrations/kubernetes-service/src/main/resources/conf/k8s-control-node-add.yml +++ b/plugins/integrations/kubernetes-service/src/main/resources/conf/k8s-control-node-add.yml @@ -221,6 +221,10 @@ write_files: fi kubeadm join {{ k8s_control_node.join_ip }}:6443 --token {{ k8s_control_node.cluster.token }} --control-plane --certificate-key {{ k8s_control_node.cluster.ha.certificate.key }} --discovery-token-unsafe-skip-ca-verification + mkdir -p /root/.kube + cp -i /etc/kubernetes/admin.conf /root/.kube/config + chown $(id -u):$(id -g) /root/.kube/config + sudo touch /home/cloud/success echo "true" > /home/cloud/success From af942e2260f8fa6b183b3da14a41fc355400cb47 Mon Sep 17 00:00:00 2001 From: Phsm Qwerty Date: Mon, 19 Feb 2024 11:07:48 +0100 Subject: [PATCH 2/3] vpc: optimize createMonitorServiceCommand() execution (#8385) * Optimize createMonitorServiceCommand() execution. Avoid an expensive getRouterHealthChecksConfig() execution multiple times during VPC restart. Fixes #8055 * Move getRouterHealthChecksConfig() outside of loop --- .../VirtualNetworkApplianceManagerImpl.java | 15 ++++++++------- .../VpcVirtualNetworkApplianceManagerImpl.java | 7 ++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index a0e8a2a2f0d..de2d9d80d2b 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1619,7 +1619,7 @@ Configurable, StateListener services, - boolean reconfigure, boolean deleteFromProcessedCache) { + boolean reconfigure, boolean deleteFromProcessedCache, Map routerHealthCheckConfig) { final SetMonitorServiceCommand command = new SetMonitorServiceCommand(services); command.setAccessDetail(NetworkElementCommand.ROUTER_IP, _routerControlHelper.getRouterControlIp(router.getId())); command.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName()); @@ -1637,7 +1637,7 @@ Configurable, StateListener getRouterHealthChecksConfig(final DomainRouterVO router) { + protected Map getRouterHealthChecksConfig(final DomainRouterVO router) { Map data = new HashMap<>(); List routerJoinVOs = domainRouterJoinDao.searchByIds(router.getId()); StringBuilder vmsData = new StringBuilder(); @@ -2342,6 +2342,7 @@ Configurable, StateListener routerGuestNtwkIds = _routerDao.getRouterNetworks(router.getId()); + Map routerHealthChecksConfig = getRouterHealthChecksConfig(router); for (final Long guestNetworkId : routerGuestNtwkIds) { final AggregationControlCommand startCmd = new AggregationControlCommand(Action.Start, router.getInstanceName(), controlNic.getIPv4Address(), _routerControlHelper.getRouterIpInNetwork( guestNetworkId, router.getId())); @@ -2350,7 +2351,7 @@ Configurable, StateListener routerHealthCheckConfig) { final NetworkOffering offering = _networkOfferingDao.findById(_networkDao.findById(networkId).getNetworkOfferingId()); if (offering.isRedundantRouter()) { // service monitoring is currently not added in RVR @@ -2414,7 +2415,7 @@ Configurable, StateListener routerHealthCheckConfig = getRouterHealthChecksConfig(domainRouterVO); if (reprogramGuestNtwks && publicNics.size() > 0) { - finalizeMonitorService(cmds, profile, domainRouterVO, provider, publicNics.get(0).second().getId(), true); + finalizeMonitorService(cmds, profile, domainRouterVO, provider, publicNics.get(0).second().getId(), true, routerHealthCheckConfig); } for (final Pair nicNtwk : guestNics) { @@ -512,7 +513,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian if (reprogramGuestNtwks) { finalizeIpAssocForNetwork(cmds, domainRouterVO, provider, guestNetworkId, vlanMacAddress); finalizeNetworkRulesForNetwork(cmds, domainRouterVO, provider, guestNetworkId); - finalizeMonitorService(cmds, profile, domainRouterVO, provider, guestNetworkId, true); + finalizeMonitorService(cmds, profile, domainRouterVO, provider, guestNetworkId, true, routerHealthCheckConfig); } finalizeUserDataAndDhcpOnStart(cmds, domainRouterVO, provider, guestNetworkId); @@ -571,7 +572,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian finalizeNetworkRulesForNetwork(cmds, router, provider, networkId); } - finalizeMonitorService(cmds, getVirtualMachineProfile(router), router, provider, networkId, false); + finalizeMonitorService(cmds, getVirtualMachineProfile(router), router, provider, networkId, false, getRouterHealthChecksConfig(router)); return _nwHelper.sendCommandsToRouter(router, cmds); } From e09fd2e26b9910f95a87cc739aaee7ed54bd66bd Mon Sep 17 00:00:00 2001 From: Vishesh Date: Wed, 21 Feb 2024 13:54:11 +0530 Subject: [PATCH 3/3] Fixup: Optimize getRouterHealthChecksConfig method (#8677) --- .../network/router/VirtualNetworkApplianceManagerImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index de2d9d80d2b..d208021e833 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1791,16 +1791,14 @@ Configurable, StateListener sbvm = userVmJoinDao.createSearchBuilder(); sbvm.and("networkId", sbvm.entity().getNetworkId(), SearchCriteria.Op.EQ); + sbvm.and("state", sbvm.entity().getState(), SearchCriteria.Op.EQ); SearchCriteria scvm = sbvm.create(); scvm.setParameters("networkId", routerJoinVO.getNetworkId()); + scvm.setParameters("state", VirtualMachine.State.Running); List vms = userVmJoinDao.search(scvm, null); boolean isDhcpSupported = _ntwkSrvcDao.areServicesSupportedInNetwork(routerJoinVO.getNetworkId(), Service.Dhcp); boolean isDnsSupported = _ntwkSrvcDao.areServicesSupportedInNetwork(routerJoinVO.getNetworkId(), Service.Dns); for (UserVmJoinVO vm : vms) { - if (vm.getState() != VirtualMachine.State.Running) { - continue; - } - vmsData.append("vmName=").append(vm.getName()) .append(",macAddress=").append(vm.getMacAddress()) .append(",ip=").append(vm.getIpAddress())