Customizing the Local Edition Deployment Manifest

Based on the outcome of the planning phase, you can create a Kubernetes cluster spanning one or more nodes. You can also change the deployment manifest appropriately with the number of components per region.

Important: Before you customize your TIBCO Cloud™ API Management - Local Edition cluster, make sure the value in the tml_image_tag parameter matches your Docker image build. For example, to verify "tml_image_tag": "v5.0.0.1" , you can check the Docker image build in Jenkins as shown below:



Files to Modify

In the API Management - Local Edition installer container, change to the following folder:

/var/jenkins_home/docker-deploy/azure/k8s/

Update the appropriate deployment manifest using the descriptions in the tables in the "Customize Kubernetes Cluster" section below:

  • manifest-single-region.json for deployment in a single Azure region.
  • manifest-single-host.json for deployment in a single Azure VM.

Customize Kubernetes Cluster

The following parameters in the applicable manifest must be configured:

Parameter Description
tml_image_tag Local Edition Docker image tag. This must be updated to match your Docker image build. For more information see the note at the top of this section.
tml_cluster_name Name for the Local Edition cluster.
tml_cluster_mode There are two valid modes:
  • tethered - Local Edition gets the configuration data from TIBCO Cloud™ API Management. In this mode, an Administrator must specify mom_key and mom_secret in the following file:

    /var/jenkins_home/docker-deploy/properties/tml_cluster_properties.json

  • untethered - Data is configured via the Local Edition configuration manager UI.
azure_directory_id Azure Directory ID
azure_application_id Azure Application ID
azure_client_secret Azure Client Secret
azure_resource_group Azure Resource Group - for example, tmlResourceGroup.

This must be consistent with the value specified for RESOURCE_GROUP in the configure_azure Jenkins job that is run when creating Local Edition Docker images.

azure_resource_group_region Azure Image Registry Host - for example, eastus.

This must be consistent with the value specified for RESOURCE_GROUP_REGION in the configure_azure Jenkins job that is run when creating Local Edition Docker images.

tml_image_registry_host Azure Resource Group - for example, tmlContainerRegistry.

This must be consistent with the value specified for CONTAINER_REGISTRY in the configure_azure Jenkins job that is run when creating Local Edition Docker images.

Also see: https://azure.microsoft.com/en-us/services/container-registry/

k8s_machine_type The machine type of worker VMs in the Azure Kubernetes cluster - for example, Standard_DS3_v2.
k8s_node_count The number of worker VMs in the Azure Kubernetes cluster. Customize this for your deployment. If you plan to create a multi-zone cluster, an equal number of nodes are recommended per zone. For example, use 9 if you want to create 3 nodes in three regions: us-east-1a, us-east-1b, and us-east-1e under us-east-1 region.
tml_cm_count Number of Cluster Manager containers, in a single-region deployment, or per zone, in a multiple-region deployment.
tml_tm_count Number of Traffic Manager containers, in a single-region deployment, or per zone, in a multiple-region deployment.
tml_cache_count Number of Memcached containers, in a single-region deployment, or per zone, in a multiple-region deployment.
tml_sql_count Number of MySQL containers, in a single-region deployment, or per zone, in a multiple-region deployment.
tml_log_count Number of Log Service containers, in a single-region deployment, or per zone, in a multiple-region deployment.
tml_nosql_count Number of Cassandra containers, in a single-region deployment, or per zone, in a multiple-region deployment.

The following are additional parameters that can be configured:

Parameters used to control storage size

"k8s_storage_type": "pd-standard",
"k8s_storage_provisioner": "kubernetes.io/azure-disk",
"k8s_deploy_namespace": "default",
"k8s_storage_account_type": "Standard_LRS",
"tml_sql_storage_size": "10Gi",
"tml_log_storage_size": "10Gi",
"tml_nosql_storage_size": "10Gi",
"tml_cache_storage_size": "10Gi",

Parameters used to control services

"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": "true",
"tml_api_http_port": 7080,
"tml_api_https_enabled": "true",
"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,

Generating Deployment Scripts and Configuration

Generate deployment scripts and configuration by running the appropriate command in the /var/jenkins_home/docker-deploy/azure/k8s/ folder:

  • single-region deployment:
    ./compose.sh manifest-single-region.json

    The deployment scripts and configuration are generated in the manifest-single-region folder.

  • single Azure VM deployment:
    ./compose.sh manifest-single-host.json

    The deployment scripts and configuration are generated in the manifest-single-host folder.

An example output for single-region deployment is:

TMG_CLUSTER_NAME: tmlK8SClusterSingleRegion
TMG_CLUSTER_MODE: tethered
in "tethered" mode, admin must specify "api_key" and "api_secret" in "tml_sql_properties.json" and "tml_log_properties.json"
TMG_CLUSTER_TAG: 6922993653aa7f38744d8a3e50daccf3
K8S_AZURE_ZONES: eastus
TMG_ZONE_NAME: 0: eastus
TMG_ZONE_COUNT: 1
TMG_RELEASE_VERSION: 5.2.0