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 zone.

Files to Modify

In the API Management - 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:

  • manifest-single-zone.json for deployment in a single AWS zone.
  • manifest-multi-zones.json for deployment in multiple AWS zones.
  • manifest-single-host.json for deployment in a single AWS 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.
Note: IMPORTANT! Before you customize your Local Edition cluster, make sure the tml_image_tag 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.
tml_cluster_name Name for the Local Edition cluster. There cannot be spaces in the cluster name.

This parameter value must be customized.

tml_cluster_mode There are two valid modes:
  • tethered - Local Edition gets the configuration data from TIBCO Cloud™ API Management cloud. In this mode, an Administrator must specify api_key and api_secret in the following files:

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

    and

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

  • untethered - Data is configured via the Local Edition configuration manager UI.
aws_access_key_id AWS Access Key ID

This parameter value is required.

aws_secret_access_key AWS Secret Access Key

This parameter value is required.

aws_role_arn AWS Role ARN.

This parameter value is required if role-based access control is used.

aws_default_region AWS Default Region

This parameter value should be customized.

aws_s3_region AWS Region for S3 Bucket

This parameter value should be customized.

k8s_aws_zones The AWS zones in which the AWS Kubernetes and Local Edition clusters are deployed.

This parameter value should be customized.

Note: There may be some limitation while creating multi zone EKS cluster in us-east-1 region. For general testing, you can use us-west-2 as region and us-west-2a and us-west-2b as zones. Also, make sure to configure your AWS profile in the Local Edition Installer accordingly to push the image in ECR.

The following parameters in the applicable manifest should be configured:

Parameter Description
k8s_node_count The number of worker VMs in the AWS EKS 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_version The Kubernetes version. This must be 1.11, 1.12, or 1.13. (Note that only major and minor numbers are used. Patch numbers, such as 1.12.8, should not be used.)
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:

Deployment Node Size
Normal >= m3.large
No OAuth < m3.large
k8s_node_volume_size The disk size, in GB.
Note: The following properties are not used during cluster creation in EKS. Therefore, no customization is needed. The default values are used by eksclt.
  • aws_ami_id
  • k8s_master_count
  • k8s_master_size
  • k8s_master_volume_size

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.

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