List of required VCD resources
- Organization
- VirtualDataCenter
- vApp
- StoragePolicy
- SizingPolicy
- Network
- EdgeRouter
- Catalog
The Organization, VirtualDataCenter, StoragePolicy, SizingPolicy, EdgeRouter, and Catalog resources must be provided by your VMware Cloud Director service provider.
Network (internal network) can be configured by your VMware Cloud Director service provider, or you can configure it yourself. The following sections describe how you can configure the internal network.
User permissions
The user accessing the VMware Cloud Director API must have the following permissions:
- The role of
Organization Administrator
with the additional permissionPreserve All ExtraConfig Elements During OVF Import and Export
. - The permission
Preserve All ExtraConfig Elements During OVF Import and Export
must be duplicated in the user’sRight Bundle
.
Adding a network
-
Go to the Networking tab and click NEW:
-
Select the Data Center:
-
At the Network type step, select Routed:
-
Connect
EdgeRouter
to the network: -
Specify 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, 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 opened window, select IP Management -> DHCP -> Activate:
-
In the General settings tab, set the parameters as shown in the example:
-
Add a pool:
-
Set the DNS server addresses:
Adding a vApp
-
Switch to the Data Centers tab -> vApps -> NEW -> New vApp:
-
Specify a name and enable the vApp:
Adding a network to the vApp
Once the vApp is created, connect the created internal network to it.
-
Switch to the Data Centers tab -> vApps and open the target vApp:
-
Go to the Networks tab and click NEW:
-
In the opened window, 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/SNAT rules on the edge gateway
-
Navigate to the Networking tab -> Edge Gateways and open the edge gateway:
-
Switch to the Services tab -> NAT:
-
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).
-
To allow virtual machines to access the internet, configure SNAT rules following the example:
This rule will allow virtual machines from the
192.168.199.0/24
subnet to access the internet.
Configuring a firewall
Once DNAT is configured, set up the firewall. Start by configuring the IP sets.
-
Switch to the Security tab -> IP Sets:
-
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 tab -> Catalogs -> Organization Catalog:
-
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:
rm /etc/netplan/99-netcfg-vmware.yaml
echo -e '\n[deployPkg]\nwait-cloudinit-timeout=1800\n' >> /etc/vmware-tools/tools.conf
echo 'disable_vmware_customization: true' > /etc/cloud/cloud.cfg.d/91_vmware_cust.cfg
dpkg-reconfigure cloud-init
In the dialog box that appears, leave the checkmark only on OVF: Reads data from OVF transports
, and make sure to scroll down and remove checkmarks from other options:
Execute the remaining commands:
truncate -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id
cloud-init clean --logs --seed
passwd -d ubuntu
passwd -d root
rm /home/ubuntu/.ssh/authorized_keys
history -c
shutdown -P now
Setting up the template in VCD
-
Shut down the virtual machine and clear all populated fields in Guest Properties:
-
Create a virtual machine template:
-
In the created template, navigate to the Metadata tab and add the following six fields:
guestinfo.metadata
guestinfo.metadata.encoding
guestinfo.userdata
guestinfo.userdata.encoding
disk.enableUUID
guestinfo.hostname
-
In the vCenter management panel for the template, enable the
disk.EnableUUID
parameter:
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.