Planning and Configuration for a New Cluster on On-premises VirtualBox using Swarm

Files to modify

Only Single zone deployment is supported for on-premises deployment.

After building the Mashery Local images, copy the /var/jenkins_home/docker-deploy folder in the tml-installer container to the desired host from where you want to run the deployment. If your build and deployment host are the same, the following sample command will copy the docker-deploy folder from the container to the current working directory on the local machine.

Sample command:
docker cp tml-installer:/var/jenkins_home/docker-deploy .
The following file is a reference deployment manifest in tml-installer container for deployment in a single zone: docker-deploy/onprem/swarm/manifest-onprem-swarm.json

Swarm Configuration

The on-premises deployment will create two Virtual Box instances - one for Swarm manager and another worker node.

The cluster creation script (create-local-swarm-cluster.sh) creates one Swarm Master Node VM (master) and one worker VM (node-1) where Mashery Local containers will be deployed.

The Master VM is 4GB of memory and work node is 2GB. So ensure you have at least 6-7 GB memory available.

Edit the reference deployment file docker-deploy/onprem/swarm/manifest-onprem-swarm.json. The following are the cluster level properties:
"tml_cluster_name": "Tibco Mashery Gateway Reference Cluster",

"tml_cluster_mode": "tethered",

"tml_zones": ["local"],
Note: Important - Make sure to specify a valid value for tml_cluster_mode. Only 3 values are valid:
  • tethered - In this mode, Mashery Local gets the configuration data from Mashery Local cloud (You need to have MOM Key and Secret in this mode).
  • untethered_cm - In this mode, you configure data through the Mashery Local Configuration Manager UI.
  • untethered_api - In this mode, configuration data is provided through the v3 API.

Mashery Local Components Configuration

The following settings can be customized. The tml_image_tag must be updated to match your Docker image build.
Variable Prefix Description
tml_cm Cluster Manager Component
tml_api V3 API Component
tml_tm Traffic Manager Component
tml_cache Cache Component
tml_sql SQL Component
tml_log NoSQL (Cassandra) Component
tml_nosql Number of Cassandra Components
"tml_image_tag": "v5.1.0.1",
"tml_cm_count": 1,
"tml_tm_count": 1,
"tml_cache_count": 1,
"tml_sql_count": 1,
"tml_log_count": 1,
"tml_nosql_count": 1,

"tml_tm_http_enabled": "true",
"tml_tm_http_port": 80,
"tml_tm_https_enabled": "true",
"tml_tm_https_port": 443,
"tml_tm_oauth_enabled": "true",
"tml_tm_oauth_port": 8083,

"tml_api_http_enabled": "false",
"tml_api_http_port": 7080,
"tml_api_https_enabled": "false",
"tml_api_https_port": 7443,

"tml_cm_http_enabled": "true",
"tml_cm_http_port": 8080,
"tml_cm_https_enabled": "true",
"tml_cm_https_port": 8443,

"cassandra_max_heap": "512M",
"cassandra_replication_factor": 1

Setting up Mashery Service Configuration Data

Mashery Local offers the option of importing service configuration data offline. A sample data.zip is provided with the TIBCO Mashery Local build that can be loaded into the database during TIBCO Mashery Local cluster creation.

To load the sample data:
  1. Copy the sample data.zip (located at docker-deploy/sample_data/data.zip) into the docker-deploy/properties/ folder.
  2. This ensures that the data from the data.zip will be automatically loaded in the database when the TIBCO Mashery Local cluster is created.
Note: You must set tml_cluster_mode as untethered_cm in docker-deploy/onprem/swarm/manifest-onprem-swarm.json. Make sure that the apiKey and apiSecret is empty in the tml_sql_properties.json in the docker-deploy/properties/ folder if you want to use the offline data loading feature.
TIBCO Mashery Local also offers the capability to sync data from an active MoM host at the time of cluster creation. To load the data using the MoM sync configuration, specify the following properties in the tml_sql_properties.json:
"mom-host": "<MOM_HOST>",
"apiKey": "<MOM_API_KEY>",
"apiSecret": "<MOM_API_SECRET>",
The tml_sql_properties.json is located in the docker-deploy/properties/ folder.
Note: You must set tml_cluster_mode as tethered in docker-deploy/onprem/swarm/manifest-onprem-swarm.json. Make sure that the apiKey and apiSecret is empty in the tml_sql_properties.json in the docker-deploy/properties/ folder if you are loading the data using the MoM sync configuration.

Option 3: Service Configuration Data is provided by Mashery Local V3 API Component

You must set tml_cluster_mode as untethered_api in docker-deploy/onprem/swarm/manifest-onprem-swarm.json.

Generating Deployment Scripts and Configuration

For single-zone deployment, run the following command and find generated deployment scripts and configuration in the folder manifest-onprem-swarm:
./compose.sh manifest-aws-swarm.json