Deploying the Reporting Services along with TML-Cluster

Deploying the Reporting Services along with the TML-Cluster requires you to preconfigure an extra node in the Kubernetes or Swarm cluster to host the Reporting Services (TML-Reporting) pod/container.
Perform the following steps to bring the Reporting Services container along with other containers in the TML-Cluster when you are modifying the manifest for TML-Cluster deployment. TML-Reporting would be deployed only after all the other containers are successfully deployed using the create-tml-cluster.sh script located in the manifest folder.
Note: Before deploying the Reporting Services, also refer to other deployment steps mentioned in the Mashery Local Installation and Configuration Guide for your specific deployment.

On GCP Kubernetes

  1. Modify the manifest file located at docker-deploy/gcp/k8s/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On AWS Kubernetes

  1. Modify the manifest file located at docker-deploy/aws/k8s/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On AWS EKS

  1. Modify the manifest file located at docker-deploy/aws/k8s/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On Azure Kubernetes

  1. Modify the manifest file located at docker-deploy/azure/k8s/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On Azure OpenShift

  1. Modify the manifest file located at docker-deploy/azure/openshift/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On OnPrem Kubernetes

  1. Modify the manifest file located at docker-deploy/onprem/k8s/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. After Kubernetes cluster is created, label one node with label "node-name=reporting" so that tml-reporting pod is deployed on that node.

On Swarm Bare Metal

  1. Modify the manifest file located at docker-deploy/onprem/swarm/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. Export REPORTING_HOSTNAME="{dedicated_reporting_node_name}" on swarm manager node.
    Get the node details on swarm manager by running this command:
    docker node ls
  4. Select the node name and export the following variable:
    export REPORTING_HOST_NAME=<node_name>
  5. Modify the tmgc-reporting.yml located at docker-deploy/onprem/swarm/manifest-onprem-swarm folder to place the reporting pod on specific host by modifying the placement constraint.
    deploy:
      placement:
        constraints:
          - node.hostname == ${REPORTING_HOST_NAME}
  6. In order to restrict the other containers/pods to not run on node which is dedicated for reporting container, all the following pod yml files located at docker-deploy/onprem/swarm/manifest-onprem-swarm need to be modified:
    1. tmgc-nosql.yml
    2. tmgc-nosql-ring.yml
    3. tmgc-sql.yml
    4. tmgc-cache.yml
    5. tmgc-log.yml
    6. tmgc-tm.yml
    7. tmgc-cm.yml
     
    The above files need to be modified to add below placement constraint along with other constraints such that these containers do not run on reporting node.
     
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}
     
     
    e.g In tmgc-nosql.yml, tmgc-nosql-ring.yml, tmgc-sql.yml, tmgc-cache.yml, tmgc-log.yml after adding above constraint deploy section would look like as below:
    deploy:
      placement:
        constraints:
          - node.hostname == ${HOST_NAME}
          - node.hostname != ${REPORTING_HOST_NAME}
     
    and in tmgc-tm.yml and tmgc-cm.yml after adding new constraint, deploy section would like as below:
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}

On Swarm Virtual Box

  1. Modify the manifest file located at docker-deploy/onprem/swarm/.
  2. Set "tml_reporting_enabled" : "true" in the manifest file.
  3. Export REPORTING_HOSTNAME="{dedicated_reporting_node_name}" on swarm manager node.
    Get the node details on swarm manager by running this command:
    docker node ls
  4. Select the node name and export the following variable:
    export REPORTING_HOST_NAME=<node_name>
  5. Modify the tmgc-reporting.yml located at docker-deploy/onprem/swarm/manifest-onprem-swarm folder to place the reporting pod on specific host by modifying the placement constraint.
    deploy:
      placement:
        constraints:
          - node.hostname == ${REPORTING_HOST_NAME}
  6. In order to restrict the other containers/pods to not run on node which is dedicated for reporting container, all the following pod yml files located at docker-deploy/onprem/swarm/manifest-onprem-swarm need to be modified:
    1. tmgc-nosql.yml
    2. tmgc-nosql-ring.yml
    3. tmgc-sql.yml
    4. tmgc-cache.yml
    5. tmgc-log.yml
    6. tmgc-tm.yml
    7. tmgc-cm.yml
     
    The above files need to be modified to add below placement constraint along with other constraints such that these containers do not run on reporting node.
     
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}
     
     
    e.g In tmgc-nosql.yml, tmgc-nosql-ring.yml, tmgc-sql.yml, tmgc-cache.yml, tmgc-log.yml after adding above constraint deploy section would look like as below:
    deploy:
      placement:
        constraints:
          - node.hostname == ${HOST_NAME}
          - node.hostname != ${REPORTING_HOST_NAME}
     
    and in tmgc-tm.yml and tmgc-cm.yml after adding new constraint, deploy section would like as below:
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}

On AWS Swarm

  1. Login to docker swarm manager ec2 node.
  2. Modify the manifest file present at docker-deploy/aws/swarm
  3. Set "tml_reporting_enabled" : "true" in the manifest file.
  4. Export REPORTING_HOSTNAME="{dedicated_reporting_node_name}" on swarm manager node.
    Get the node details on swarm manager by running this command:
    docker node ls
  5. Select the node name and export the following variable:
    export REPORTING_HOST_NAME=<node_name>
  6. Modify the tmgc-reporting.yml located at docker-deploy/aws/swarm/manifest-aws-swarm folder to place the reporting pod on specific host by modifying the placement constraint.
    deploy:
      placement:
        constraints:
          - node.hostname == ${REPORTING_HOST_NAME}
  7. In order to restrict the other containers/pods to not run on node which is dedicated for reporting container, all the following pod yml files located at docker-deploy/aws/swarm/manifest-aws-swarm need to be modified:
    1. tmgc-nosql.yml
    2. tmgc-nosql-ring.yml
    3. tmgc-sql.yml
    4. tmgc-cache.yml
    5. tmgc-log.yml
    6. tmgc-tm.yml
    7. tmgc-cm.yml
     
    The above files need to be modified to add below placement constraint along with other constraints such that these containers do not run on reporting node.
     
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}
     
     
    e.g In tmgc-nosql.yml, tmgc-nosql-ring.yml, tmgc-sql.yml, tmgc-cache.yml, tmgc-log.yml after adding above constraint deploy section would look like as below:
    deploy:
      placement:
        constraints:
          - node.hostname == ${HOST_NAME}
          - node.hostname != ${REPORTING_HOST_NAME}
     
    and in tmgc-tm.yml and tmgc-cm.yml after adding new constraint, deploy section would like as below:
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}

On Azure Swarm

  1. Login to docker swarm manager azure node.
  2. Modify the manifest file present at docker-deploy/azure/swarm
  3. Set "tml_reporting_enabled" : "true" in the manifest file.
  4. Export REPORTING_HOSTNAME="{dedicated_reporting_node_name}" on swarm manager node.
    Get the node details on swarm manager by running this command:
    docker node ls
  5. Select the node name and export the following variable:
    export REPORTING_HOST_NAME=<node_name>
  6. Modify the tmgc-reporting.yml located at docker-deploy/azure/swarm/manifest-azure-swarm folder to place the reporting pod on specific host by modifying the placement constraint.
    deploy:
      placement:
        constraints:
          - node.hostname == ${REPORTING_HOST_NAME}
  7. In order to restrict the other containers/pods to not run on node which is dedicated for reporting container, all the following pod yml files located at docker-deploy/azure/swarm/manifest-azure-swarm need to be modified:
    1. tmgc-nosql.yml
    2. tmgc-nosql-ring.yml
    3. tmgc-sql.yml
    4. tmgc-cache.yml
    5. tmgc-log.yml
    6. tmgc-tm.yml
    7. tmgc-cm.yml
     
    The above files need to be modified to add below placement constraint along with other constraints such that these containers do not run on reporting node.
     
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}
     
     
    e.g In tmgc-nosql.yml, tmgc-nosql-ring.yml, tmgc-sql.yml, tmgc-cache.yml, tmgc-log.yml after adding above constraint deploy section would look like as below:
    deploy:
      placement:
        constraints:
          - node.hostname == ${HOST_NAME}
          - node.hostname != ${REPORTING_HOST_NAME}
     
    and in tmgc-tm.yml and tmgc-cm.yml after adding new constraint, deploy section would like as below:
    deploy:
      placement:
        constraints:
          - node.hostname != ${REPORTING_HOST_NAME}