Prepare the virtual machine template

  1. Change the directory to the kaas-bootstrap folder.

  2. Download the ISO image of the required operating system (OS):

    Support status for RHEL

    RHEL 8.7 is generally available since Cluster releases 16.0.0 and 14.1.0. Before these Cluster releases, it is supported as Technology Preview.

  3. Export the following variables:

    • The path to the downloaded ISO file.

    • The vSphere cluster name.

    • The OS name: rhel or ubuntu.

    • The OS version: 8.7 for RHEL,``20.04`` for Ubuntu.

    • Optional. The virt-who user name and password for RHEL deployments.

    For example, for RHEL:

    export KAAS_VSPHERE_ENABLED=true
    export VSPHERE_RO_USER=virt-who-user
    export VSPHERE_RO_PASSWORD=virt-who-user-password
    export VSPHERE_PACKER_ISO_FILE=$(pwd)/iso-file.dvd.iso
    export VSPHERE_CLUSTER_NAME=vsphere-cluster-name
    export VSPHERE_PACKER_IMAGE_OS_NAME=rhel
    export VSPHERE_PACKER_IMAGE_OS_VERSION=8.7
    
  4. Prepare the virtual machine template:

    ./bootstrap.sh vsphere_template
    
  5. In templates/vsphere/machines.yaml.template, define the following parameters:

    • rhelLicense

      RHEL license name defined in rhellicenses.yaml.template, defaults to kaas-mgmt-rhel-license. Remove or comment out this parameter for Ubuntu deployments.

    • diskGiB

      Disk size in GiB for machines that must match the disk size of the VM template. You can leave this parameter commented to use the disk size of the VM template. The minimum requirement is 120 GiB.

    • template

      Path to the VM template prepared in the previous step.

    Sample template:

    spec:
      providerSpec:
        value:
          apiVersion: vsphere.cluster.k8s.io/v1alpha1
          kind: VsphereMachineProviderSpec
          rhelLicense: <rhelLicenseName>
          numCPUs: 8
          memoryMiB: 32768
          # diskGiB: 120
          template: <vSphereVMTemplatePath>
    

    Also, modify other parameters if required.