Perform the prerequisite steps listed in this section.

Install the Bootstrapper virtual machine on a vCenter Server, optionally with vRealize Log Insight, in an air-gapped environment. For information about setting up VMware Telco Cloud Automation in an air-gapped environment, see VMware Telco Cloud Automation User Guide.
Note: If you are deploying VMware Telco Cloud Automation in an air-gapped environment, ensure that you select the Activation Mode as Standalone. For more information, see Activate VMware Telco Cloud Automation Manager.
  1. Use the VMware-Telco-Cloud-Automation-<version>.ova.
  2. In the Appliance Role step, select Bootstrapper as the appliance role.
  3. Upload the latest Photon VM template on your vCenter Server. For example, photon-3-kube-v1.21.2+vmware.1 for VMware Tanzu Kubernetes Grid 1.4.0. This step ensures that the script creates management clusters and workload clusters.
  4. Using the bootstrapper_template.json file located at /opt/vmware/setup_ha/bootstrapper_template.json, create the bootstrapper.json file on the Bootstrapper virtual machine. The following table lists the required section in the bootstrapper.json file.
    Note:
    • Use Python version 3.6.9 or later.
    • All passwords are base64 encoded.
    • When deploying VMware Telco Cloud Automation in an air-gapped environment, ensure that the CA certificates are encoded in the base64 format.
Section in bootstrapper.json Mandatory/Optional Comments
"bootstrapperVmContext": {
     "ip": "<Bootstrapper VM IPv4 or FQDN>",
     "username": "<admin user>",
     "password": "<password encoded in base64 format>"
},
Mandatory
  • Bootstrapper virtual machine of appliance type tca-bootstrapper.
  • Enter the Bootstrapper virtual machine's IP address and credentials.
"vsphereContext": {
     "ip": "<Vcenter IPv4 or FQDN>",
     "username": "<admin user>",
     "password": "<password encoded in base64 format>",
     "dataCenter": "/<dataCenter>",
     "dataStore": "/<dataCenter>/datastore/<dataStoreName>",
     "network": "/<dataCenter>/network/<vmFolderName>/<networkName>",
     "resourcePool": "/<dataCenter>/host/<clusterName>/Resources/<resourcePoolName>",
     "vmFolder": "/<dataCenter>/vm/<vmFolderName>",
     "vmTemplate": "<Example: photon-3-kube-v1.21.2+vmware.1 is the template for TKG 1.4.0>",
     "version": "<Optional. Example: 7.0.2 Defaults to 7.0.2 when not provided.>"
},
Mandatory
  • Enter the vCenter Server IP address and credentials. The VMware Telco Cloud Automation appliance and Bootstrapper cluster in a cloud-native environment is created here.
  • The vCenter Server settings for creating VMware Telco Cloud Automation and the Bootstrapper cluster are:
    • dataCenter
    • network
    • resourcePool
    • vmFolder
  • username: A user belonging to the Administrator (system admin) group in vCenter Server.
  • vmTemplate: The latest version of Photon VM template according to the VMware Tanzu Kubernetes Grid version. For example, photon-3-kube-v1.21.2+vmware.1 for VMware Tanzu Kubernetes Grid 1.4.0. For supported component versions, see: VMware Tanzu Kubernetes Grid 1.4 Release Notes at docs.vmware.com.
  • version: Optional field for vSphere version. If provided, then enter the vSphere version. The default version is 7.0.2.
Note: Ensure that you provide full paths for the vsphereContext resources.
"managementCluster":{
    "controlPlaneEndpointIP": "<Management Cluster IPv4>",
     "clusterPassword": "<password encoded in base64 format>"
},
Mandatory
  • Enter the external IP address of the management cluster.
"workloadCluster":{
      "controlPlaneEndpointIP": "<Workload Cluster IPv4>",
     "clusterPassword": "<password encoded in base64 format>"
},
Mandatory if tcaCp is provided. If you provide tcaCp, then all the fields are mandatory.
  • The workload cluster is created temporarily for generating a manifest. This manifest is then used for creating the Bootstrapper cluster.
  • Enter the external IP address of the workload cluster.
  • This section is required if tcaCp details are provided.
"tcaMgr" : {
     "ip": "<TCA IPv4>",
     "platformManagerPscUrl": "https://<Vcenter IPv4/FQDN>",
     "platformManagerPscDomain": "<domain> example: vsphere.local",
     "platformManagerPscUsergroup": "<Vcenter user group> example: administrators"
},
Optional. If you include this section, then all the fields are mandatory.
  • Provide inputs for tcaMgr or tcaCp, or both.
  • In a development environment, you can use the script to install both appliances on the same management cluster, under different namespaces.
Appliance Namespace
tca tca-manager
tca-cp tca-system
"tcaCp" : {

     "ip": "<TCA CP IPv4>",

     "platformManagerPscUrl": "https://<Vcenter IPv4/FQDN>",
     "platformManagerPscDomain": "<domain> example: vsphere.local",
     "platformManagerPscUsergroup": "<Vcenter user group> example: administrators",

     "sshPrivateKeyFile": "<path to ssh private key file> example /fullPath/.ssh/id_rsa",
     "sshPublicKeyFile": "<path to ssh public key file> example /fullPath/.ssh/id_rsa.pub",

     "sshPrivateKey": "<ssh key files above or bootstrapper cluster ssh private key>",
     "sshPublicKey": "<ssh key files above or bootstrapper cluster ssh public key>"


},
Optional. If you include this section, then all the fields are mandatory.
  • Provide inputs for tcaMgr or tcaCp, or both.
  • To access from bootstrapperVMContext, tcaCp requires a SSH public or SSH private key.
Note: Either provide the public key and private key in string format or as SSH files. Do not provide the keys in a mixed format.
Note:
  • In a Bootstrapper VM, you can find the private key and the public key under /root/.ssh/.
  • In a development environment, you can use the script to install both appliances on the same management cluster, under different namespaces.
Appliance Namespace
tca tca-manager
tca-cp tca-system
"overrideValues": {
      " comment": "each entry in this section is optional",
     "vrliAddress":"<VRLI IPv4/FQDN address> : if VRLI Address is provided, fluent service pod will be installed in fluent-system namespace",
     "repoLibraryPath":"<URI with IPv4/FQDN, port and path for external repo like Airgap, Jfrog > example: 10.1.9.100:8012/library",
     "dnsServers":[
          "<DNS server IPv4 address 1>",
          "<DNS server IPv4 address 2>",
           .
           .
           .  
          "<DNS server IPv4 address N>"
       ],

"airgapFQDN":"<FQDN address> fqdn of the airgap server> Example: airgap.example.com",
"airgapCert": "<Optionally needed when airgap server is configured with self signed cert: base64 encoded>"
}
Optional Each key in this section is optional.
  • vrliAddress: If present, this key enables the installation of fluent service. Otherwise, the installation is skipped.
  • repoLibraryPath: This key is required in an air-gapped environment, or if you use an external repository for pulling images.
  • airgapFQDN: If you have set up VMware Telco Cloud Automation in the air-gapped environment.
  • airgapCert: Applicable only when you provide airgapFQDN.
Note: You must prefix unused fields with comment_. For example, if the airgap FQDN is not used, you must provide the following prefix: "comment_airgapFQDN":"<FQDN address> fqdn of the airgap server> Example: airgap.example.com". Or, you can remove the unused optional fields.