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.
- Use the VMware-Telco-Cloud-Automation-<version>.ova.
- In the Appliance Role step, select Bootstrapper as the appliance role.
- 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.
- 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 |
|
||||||
"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 |
Note: Ensure that you provide full paths for the
vsphereContext resources.
|
||||||
"managementCluster":{
"controlPlaneEndpointIP": "<Management Cluster IPv4>",
"clusterPassword": "<password encoded in base64 format>"
}, |
Mandatory |
|
||||||
"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. |
|
||||||
"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. |
|
||||||
"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. |
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:
|
||||||
"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.
|
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.