List of required VCD resources
- Organization
- VirtualDataCenter
- vApp
- StoragePolicy
- SizingPolicy
- Network
- EdgeRouter
- Catalog
Organization, VirtualDataCenter, StoragePolicy, SizingPolicy, EdgeRouter, and Catalog must be provided by your VMware Cloud Director service provider. Also, in the tenant, you will need to grant the following rights to able to modify the VM parameters (refer to the instruction):
- guestinfo.metadata
- guestinfo.metadata.encoding
- guestinfo.userdata
- guestinfo.userdata.encoding
- disk.enableUUID
- guestinfo.hostname
Network (internal network) can be configured by your VMware Cloud Director service provider, or you can configure it yourself. Next, we consider setting up the internal network yourself.
Adding a network
Go to the Networking tab and click on the NEW button:
Select the Data Center:
Note that Network type must be Routed:
Connect the EdgeRouter to the network:
Set the network name and CIDR:
Do not add Static IP Pools, because DHCP will be used:
Specify the DNS server addresses:
Configuring DHCP
To provision nodes dynamically, you have to enable the DHCP server for the internal network.
We recommend allocating the beginning of the network address range to system consumers (control plane, frontend nodes, system nodes) and the rest to the DHCP pool. For example, for a /24
mask network it would be enough to allocate 20 addresses to system consumers.
Click the Networking tab and open the network you created:
In the window that opens, select the IP Management -> DHCP -> Activate tab:
In the General settings tab, set the parameters as shown in the example:
Next, add a pool:
Set the DNS server addresses:
Adding a vApp
Switch to the Data Centers -> vApps -> NEW -> New vApp tab:
Set a name and enable the vApp:
Adding a network to the vApp
Once the vApp is created, you have to connect the created internal network to it.
Switch to the Data Centers -> vApps tab and open the target vApp:
Go to the Networks tab and click on the NEW button:
In the window that opens, click the Direct type and select the network:
Incoming traffic
Incoming traffic should be routed to the edge router (ports 80, 443) using DNAT rules to be forwarded to a dedicated address on the internal network.
This address can be created by running MetalLB in L2 mode for dedicated frontend nodes.
Configuring DNAT rules on the edge gateway
Navigate to the Networking -> Edge Gateways tab, open the edge gateway:
Switch to the Services -> NAT tab:
Add the following rules:
The first two rules are used for incoming traffic, while the third rule is used for SSH access to the control plane host (without this rule the installation will not be possible).
Configuring a firewall
Once DNAT is configured, you have to set up the firewall. First, configure the IP sets.
Switch to the Security -> IP Sets tab:
Create the following set of IPs (the MetalLB address here is .10
and the control plane node address is .2
):
Add the following firewall rules:
Virtual machine template
The provider is confirmed to work with Ubuntu 22.04-based virtual machine templates only.
The cloud-init
package must be installed on the VMs.
After the virtual machine is started, the following services associated with this package must be started:
cloud-config.service
;cloud-final.service
;cloud-init.service
.
The example below uses the OVA file provided by Ubuntu, updated to include two fixes. Those fixes are essential for CloudPermanent nodes to be provisioned correctly and to be able to mount CSI-created disks.
Making a template from an OVA file
Download the OVA file:
Switch to the Libraries -> Catalogs -> Organization Catalog tab:
Select the template you downloaded and add it to the catalog:
Create a virtual machine from the template:
Enter the default password and public key. You will need them to log in to the VM console.
Follow these steps to be able to connect to the virtual machine:
- Start the virtual machine
- Wait for the IP address to be set
- Forward port 22 to the virtual machine:
Log on to the virtual machine over SSH and run the following commands:
echo -e '\n[deployPkg]\nwait-cloudinit-timeout=1800\n' >> /etc/vmware-tools/tools.conf
passwd -d ubuntu
passwd -d root
rm /home/ubuntu/.ssh/authorized_keys
history -c
shutdown -P now
Shut down the virtual machine and create a virtual machine template:
After creating a virtual machine template, ask your VMware Cloud Director service provider to enable the disk.enableUUID
parameter for the template.
Using the storage
- VCD supports CSI; disks are created as VCD Independent Disks.
- The
disk.EnableUUID
guest property must be set for the virtual machine templates in use. - Deckhouse Kubernetes Platform supports disk resizing as of v1.59.1.