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