Customizing the TIBCO Cloud™ API Management - 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 zone.
Files to Modify
In the Local Edition installer container, change to the following folder:
/var/jenkins_home/docker-deploy/aws/k8s
Update the appropriate deployment manifest using the descriptions in the tables in the "Customize Kubernetes Cluster" section below:
Customize Kubernetes Cluster
The following parameters in the applicable manifest must be configured:
The following parameters in the applicable manifest should be configured:
Parameter | Description |
---|---|
k8s_node_size | The instance type for the Kubernetes worker nodes. For example: m3.small, m3.medium, m3.large.
Based on the deployment type, the following node size is recommended: |
k8s_node_volume_size | The disk size, in GB. |
k8s_node_count | The number of worker VMs in the AWS 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. |
k8s_master_count | The number of nodes that act as the Kubernetes master for the Kubernetes cluster. |
k8s_master_size | The instance type for the Kubernetes master node. For example: m3.small, m3.medium, m3.large.
Based on the number of nodes in the cluster, the following master node size is recommended: |
k8s_master_volume_size | The memory size of the Master node. |
tml_cm_count | Number of Cluster Manager containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
tml_tm_count | Number of Traffic Manager containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
tml_cache_count | Number of Memcached containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
tml_sql_count | Number of MySQL containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
tml_log_count | Number of Log Service containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
tml_nosql_count | Number of Cassandra containers, in a single-zone deployment, or per zone, in a multiple-zone deployment. |
k8s_deploy_namespace
k8s_storage_type k8s_storage_provisioner tml_sql_storage_size tml_log_storage_size tml_nosql_storage_size tml_cache_storage_size |
Used to control storage size |
tml_tm_http_enabled
tml_tm_http_port tml_tm_https_enabled tml_tm_https_port tml_tm_oauth_enabled tml_tm_oauth_port tml_api_http_enabled tml_api_http_port tml_api_https_enabled tml_api_https_port tml_cm_http_enabled tml_cm_http_port tml_cm_https_enabled tml_cm_https_port |
Used to control services |
cassandra_max_heap | The maximum heap size for the Cassandra distributed datastore. |
cassandra_replication_factor | The number of replicas of each data entry. This should be less than the number of Cassandra nodes. |
Example
"tml_cluster_name": "Tibco Mashery Local Reference Cluster", "aws_access_key_id": "", "aws_secret_access_key": "", "aws_default_region": "us-east-1", "aws_s3_region": "us-east-1", "aws_role_arn": "arn:aws:iam::123456789012:role/TIBCO/Administrator", "k8s_aws_zones": ["us-east-1e"], "k8s_master_count": 1, "k8s_master_size": "m3.medium", "k8s_master_volume_size": 32, "k8s_node_count": 3, "k8s_node_size": "m3.large", "k8s_node_volume_size": 32, "tml_image_tag": "v5.1.0.1", "tml_cluster_mode": "tethered", "tml_cm_count": 1, "tml_tm_count": 3, "tml_cache_count": 3, "tml_sql_count": 1, "tml_log_count": 2, "tml_nosql_count": 3, "k8s_deploy_namespace": "default", "k8s_storage_type": "gp2", "k8s_storage_provisioner": "kubernetes.io/aws-ebs", "tml_sql_storage_size": "10Gi", "tml_log_storage_size": "10Gi", "tml_nosql_storage_size": "10Gi", "tml_cache_storage_size": "10Gi", "tml_tm_http_enabled": "true", "tml_tm_http_port": 80, "tml_tm_https_enabled": "false", "tml_tm_https_port": 443, "tml_tm_oauth_enabled": "false", "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": "false", "tml_cm_http_port": 8080, "tml_cm_https_enabled": "false", "tml_cm_https_port": 8443, "cassandra_max_heap": "512M", "cassandra_replication_factor": 2
Generating Deployment Scripts and Configuration
Generate deployment scripts and configuration by running the appropriate command in the /var/jenkins_home/docker-deploy/aws/k8s/ folder:
- Single-zone deployment:
./compose.sh manifest-single-zone.json
The deployment scripts and configuration are generated in the manifest-single-zone folder.
- Multi-zone deployment:
./compose.sh manifest-multi-zones.json
The deployment scripts and configuration are generated in the manifest-multi-zones folder.
An example output for single-zone deployment is:
TMG_CLUSTER_NAME: TML Reference Cluster Single Zone 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: 4984199f97988b245f35601743b9303b K8S_AWS_ZONES us-east-1e TMG_ZONE_NAME 0: us-east-1e TMG_ZONE_COUNT: 1 TMG_RELEASE_VERSION: 5.2.0 TMGC_REPO_NAME: tml/v5.2.0.1 repositoryUri 894547326815.dkr.ecr.us-east-1.amazonaws.com/tml/v5.2.0.1 AWS_REGISTRY_HOST 894547326815.dkr.ecr.us-east-1.amazonaws.com