You can run the script with or without using the optional arguments listed in this section. Run the script on the Bootstrapper VM.

Run the Script without Arguments

To run the script without arguments, open a terminal and run $ python setup_ha.py.

This command deploys the following:
  • Management cluster.
  • All the required namespaces with their services in the Management cluster for VMware Telco Cloud Automation and/or VMware Telco Cloud Automation Control Plane.

If the script run is interrupted, the script verifies the installed cluster and services and deploys only the missing components.

Run the Script with Arguments

To run the script with optional arguments:
  1. Open a terminal and run $ python setup_ha.py [options]. This command lists the available optional arguments.
    [admin@bootstrapperVM-ning-25 ~]$ python3 setup_ha.py -h
    usage: setup_ha.py [options]
        VMware Inc.
        Copyright 2022
    
    Create/Delete cloud native TCA and/or TCA-CP appliance in HA mode
    
    optional arguments:
      -h, --help            show this help message and exit
      -c, --confirmOnEachApiResponse
                            wait for confirmation at each API Response when debug is enabled
      -d, --debug           set logging level to DEBUG
      -f CONFIG_FILE, --config_file CONFIG_FILE
                            config file in JSON format. Default: ./bootstrapper.json
      -i, --skipConfirmations
                            skip confirmations
      -m {non-ha,ha}, --mode {non-ha,ha}
                            Deployment mode. Default mode is non-ha
      -s DEPLOY, --deploy DEPLOY
                            deploy specific service or all services of a specific namespace
      -t TIMEOUT, --timeout TIMEOUT
                            timeout in minutes for cluster creation. Minimum is 30 minutes. Maximum is 510 minutes. Default is 60 minutes.
      -u [DELETE], --delete [DELETE]
                            Delete. By default delete all including failed clusters and services. Optionally delete specific service or namespace. Can be used to cleanup failed but retained clusters and services.
      -v, --validateOnly    validate input file and stop
      -b BRINGYOUROWNCLUSTERNAME, --bringYourOwnClusterName BRINGYOUROWNCLUSTERNAME
                            install TCA-M/TCA-CP services for your own cluster
    
  2. Select an argument and run the script.
The following table lists the arguments and their descriptions.
Argument Description
-v, --validateOnly This argument validates the input configuration file. It does not deploy or delete any cluster or service.
-s [Service_or_NameSpace], --deploy [Service_or_NameSpace] This argument deploys a specific service or all services in the namespace. It deploys only a given service in one or more namespaces or all the services in a given namespace, as required by the VMware Telco Cloud Automation appliance. This option is for troubleshooting or development purposes only.
-u [Service_or_NameSpace], --delete [Service_or_NameSpace] This argument deletes a specific service in a namespace or all services in a given namespace, as required by the VMware Telco Cloud Automation appliance. If you do not provide a namespace or a service, it deletes all services and clusters by default. This option is for troubleshooting or development purposes only.
-m {lab,ha}, --mode {lab,ha}

This argument indicates the deployment mode of the VMware Telco Cloud Automation cluster. Default mode is ha which has 3 replicas of control plane and worker nodes each. lab mode is supported, which is the minimal cluster (with 1 control plane and 1 worker node), replica count of all services is also set to 1.

You can use this mode only for development and lab testing.

Deployment Stages

This example illustrates the different stages of deployment when running the script. The actual list of services can vary in the future.
STAGE 1.0::Validate 'non-ha' mode configuration: bootstrapper.json
STAGE 1.1::Validation complete.
STAGE 2.0::Deploy MANAGEMENT Cluster
STAGE 2.1::Update addon to management cluster: 48e06471-7913-45cf-92b9-006aae30eed6
STAGE 2.2::Store kubeconfig to management cluster: 48e06471-7913-45cf-92b9-006aae30eed6
STAGE 3.0::Deploy services in namespaces
STAGE 3.1::Processing 'istio-system' namespace
STAGE 3.1.1::Processing {'istio-base': '2.2.0'} service in 'istio-system' namespace
STAGE 3.1.2::Processing {'istio-discovery': '2.2.0'} service in 'istio-system' namespace
STAGE 3.2::Processing 'tca-services' namespace
STAGE 3.2.1::Processing {'static-route-manager': '2.2.0'} service in 'tca-services' namespace
STAGE 3.2.2::Processing {'support-bundle-service': '2.2.0'} service in 'tca-services' namespace
STAGE 3.3::Processing 'metallb-system' namespace
STAGE 3.3.1::Processing {'metallb': '2.2.0'} service in 'metallb-system' namespace
STAGE 3.4::Processing 'postgres-operator-system' namespace
STAGE 3.4.1::Processing {'postgres-operator': '2.2.0'} service in 'postgres-operator-system' namespace
STAGE 3.5::Processing 'tca-mgr' namespace
STAGE 3.5.1::Processing {'mongodb': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.2::Processing {'zookeeper': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.3::Processing {'kafka': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.4::Processing {'redisoperator': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.5::Processing {'redisservice': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.6::Processing {'istio-ingress': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.7::Processing {'postgres': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.8::Processing {'network-slicing': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.9::Processing {'audit-log-service': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.5.10::Processing {'tca': '2.2.0'} service in 'tca-mgr' namespace
STAGE 3.6::Processing 'tca-system' namespace
STAGE 3.6.1::Processing {'hostconfig-operator': '2.2.0'} service in 'tca-system' namespace
STAGE 3.6.2::Processing {'tca-kubecluster-operator': '2.2.0'} service in 'tca-system' namespace
STAGE 3.7::Processing 'fluent-system' namespace
STAGE 3.7.1::Processing {'fluent': '2.2.0'} service in 'fluent-system' namespace
STAGE 3.8::Processing 'tca-cp-pa01' namespace
STAGE 3.8.1::Processing {'mongodb': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.2::Processing {'zookeeper': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.3::Processing {'kafka': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.4::Processing {'redisoperator': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.5::Processing {'redisservice': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.6::Processing {'istio-ingress': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.7::Processing {'postgres': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.8::Processing {'tca-extension-platform': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.9::Processing {'tca': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.10::Processing {'kbs': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.11::Processing {'nfv-ccli': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.8.12::Processing {'nfv-tca-diagnosis-api': '2.2.0'} service in 'tca-cp-pa01' namespace
STAGE 3.9::Processing 'tca-cp-pa02' namespace
STAGE 3.9.1::Processing {'mongodb': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.2::Processing {'zookeeper': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.3::Processing {'kafka': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.4::Processing {'redisoperator': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.5::Processing {'redisservice': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.6::Processing {'istio-ingress': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.7::Processing {'postgres': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.8::Processing {'tca-extension-platform': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.9::Processing {'tca': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.10::Processing {'kbs': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.11::Processing {'nfv-ccli': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 3.9.12::Processing {'nfv-tca-diagnosis-api': '2.2.0'} service in 'tca-cp-pa02' namespace
STAGE 4.0::Migrate Kubeconfig from BootstrapperVM to TCA-M and TCA-CP Appliances
STAGE 4.1::Migrate Kubeconfig from BootstrapperVM to 1.1.1.1
STAGE 4.2::Migrate Kubeconfig from BootstrapperVM to 1.1.1.2
STAGE 4.3::Migrate Kubeconfig from BootstrapperVM to 1.1.1.3

Debugging Option

To get a detailed output for each API call, use the --debug option.

Out of Scope for this Script

This script does not automate the following tasks. You must perform them manually:
  • VMware Telco Cloud Automation Manager or VMware Telco Cloud Automation Control Plane appliance activation.
  • Day 0 configuration of VMware Telco Cloud Automation Manager or VMware Telco Cloud Automation Control Plane appliance.
  • Uploading certificates. Optional when configuring in an air-gapped environment.
  • Site pair of VMware Telco Cloud Automation and VMware Telco Cloud Automation Control Plane.
  • Cleanup of services during deployment failures.

For more troubleshooting tips and latest updated information refer to the knowledgebase.