Skip to content

Commit 2882672

Browse files
committed
Use router.userdata for load balancer VMs
1 parent bb3ca7d commit 2882672

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

plugins/network-elements/elastic-loadbalancer/src/main/java/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.cloud.network.lb;
1818

1919
import java.util.ArrayList;
20+
import java.util.Base64;
2021
import java.util.Collections;
2122
import java.util.HashSet;
2223
import java.util.List;
@@ -34,6 +35,7 @@
3435
import org.apache.cloudstack.config.ApiServiceConfiguration;
3536
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
3637
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
38+
import org.apache.commons.lang3.StringUtils;
3739
import org.springframework.stereotype.Component;
3840

3941
import com.cloud.agent.AgentManager;
@@ -100,6 +102,9 @@
100102
import com.cloud.vm.dao.DomainRouterDao;
101103
import com.cloud.vm.dao.NicDao;
102104

105+
import static com.cloud.network.router.VirtualNetworkApplianceManager.RouterUserData;
106+
import static com.cloud.vm.VirtualMachineManager.SystemVmEnableUserData;
107+
103108
@Component
104109
public class ElasticLoadBalancerManagerImpl extends ManagerBase implements ElasticLoadBalancerManager, VirtualMachineGuru {
105110

@@ -476,6 +481,15 @@ public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, Depl
476481
}
477482
String msPublicKey = _configDao.getValue("ssh.publickey");
478483
buf.append(" authorized_key=").append(VirtualMachineGuru.getEncodedMsPublicKey(msPublicKey));
484+
485+
if (SystemVmEnableUserData.valueIn(dc.getId())) {
486+
String userData = RouterUserData.valueIn(dc.getId());
487+
if (StringUtils.isNotBlank(userData)) {
488+
String encodedUserData = Base64.getEncoder().encodeToString(userData.getBytes());
489+
buf.append(" userdata=").append(encodedUserData);
490+
}
491+
}
492+
479493
if (logger.isDebugEnabled()) {
480494
logger.debug("Boot Args for " + profile + ": " + buf.toString());
481495
}

plugins/network-elements/internal-loadbalancer/src/main/java/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@
2121
import static com.cloud.hypervisor.Hypervisor.HypervisorType.LXC;
2222
import static com.cloud.hypervisor.Hypervisor.HypervisorType.VMware;
2323
import static com.cloud.hypervisor.Hypervisor.HypervisorType.XenServer;
24+
import static com.cloud.network.router.VirtualNetworkApplianceManager.RouterUserData;
25+
import static com.cloud.vm.VirtualMachineManager.SystemVmEnableUserData;
2426

2527
import java.util.ArrayList;
2628
import java.util.Arrays;
29+
import java.util.Base64;
2730
import java.util.Iterator;
2831
import java.util.LinkedHashMap;
2932
import java.util.List;
@@ -126,6 +129,7 @@
126129
import com.cloud.vm.VirtualMachineProfile.Param;
127130
import com.cloud.vm.dao.DomainRouterDao;
128131
import com.cloud.vm.dao.NicDao;
132+
import org.apache.commons.lang3.StringUtils;
129133

130134
public class InternalLoadBalancerVMManagerImpl extends ManagerBase implements InternalLoadBalancerVMManager, InternalLoadBalancerVMService, VirtualMachineGuru {
131135
static final private String InternalLbVmNamePrefix = "b";
@@ -243,6 +247,15 @@ public boolean finalizeVirtualMachineProfile(final VirtualMachineProfile profile
243247
final String type = "ilbvm";
244248
buf.append(" type=" + type);
245249

250+
long dcId = profile.getVirtualMachine().getDataCenterId();
251+
if (SystemVmEnableUserData.valueIn(dcId)) {
252+
String userData = RouterUserData.valueIn(dcId);
253+
if (StringUtils.isNotBlank(userData)) {
254+
String encodedUserData = Base64.getEncoder().encodeToString(userData.getBytes());
255+
buf.append(" userdata=").append(encodedUserData);
256+
}
257+
}
258+
246259
if (logger.isDebugEnabled()) {
247260
logger.debug("Boot Args for " + profile + ": " + buf.toString());
248261
}

server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA
6666

6767
ConfigKey<String> RouterUserData = new ConfigKey<>(String.class, "router.userdata",
6868
ConfigKey.CATEGORY_SECURE, "",
69-
"Default user data for virtual routers. This works only when systemvm.userdata.enabled is set to true",
69+
"Default user data for VR, VPC VR, internal LB, and elastic LB. This works only when systemvm.userdata.enabled is set to true",
7070
true, ConfigKey.Scope.Zone, null, "User Data for VRs",
7171
null, ConfigKey.GROUP_SYSTEM_VMS, ConfigKey.SUBGROUP_VIRTUAL_ROUTER);
7272

0 commit comments

Comments
 (0)