Skip to Main Content
Spotfire Ideas Portal
Status Future Consideration
Product Spotfire
Categories Installation
Created by Guest
Created on Sep 22, 2022

do not run TERR/Python service inside a container by default if Node Manager is already running inside a container

TERR/Python service on Linux is by default running inside a container which means if docker is not installed then the instance can't start.


This is true even when deploying Node Manager inside a container, in this case TERR doesn't have to run inside another container by default.


  • Attach files
  • Admin
    Miguel Díez
    Reply
    |
    Mar 28, 2024

    Hi Wei,

    I'm reviewing ideas and I realized I missed your latest answer.

    There is no easy way for the TERR/R/Python service to understand that the node manager is already running as a container. That's why in the recipes we configure that behaviour. See for example https://github.com/spotfiresoftware/spotfire-cloud-deployment-kit/blob/main/containers/images/spotfire-pythonservice/default-container.properties and how that is used in the Dockerfile.

    You could create the container image wihout the "install-service.sh" and use a similiar configuration. However, we recommend you use the CDK.

    Note that, using the CDK:

    • Even if that "install-service.sh" command is not documented, you can use the recipes AS-IS for production. We support Spotfire usign the CDK if you follow these recipes.

    • Even if you do not use K8s and only use the containers as from the recipes, we support that usage.

    Thanks


  • Guest
    Reply
    |
    Oct 12, 2022

    Hi Miguel,


    Thanks.


    The recipes on github use some kind of hidden command (calling a java class to install service inside /opt/tibco/tsnm/scripts/install-service.sh) which is not documented so we need to be very careful when introducing these recipes to our customers. That may fall out of the standard product suport scope.


    I guess the author of the recipes must have noticed the same problem(the default configuration uses docker if service is deployed on Linux) as I do that's why he uses some hidden command to deploy python/terr service.


  • Admin
    Miguel Díez
    Reply
    |
    Sep 27, 2022

    Hi Wei,

    I guess you already know, but you can use the published recipes from GitHub to build the Spotfire containers and then you can deploy these containers using simple docker commands, Docker Swarm, Apache Mesos, Nomad,... not necessarily on Kubernetes using Helm Charts.

    When using containers you can preinstall the software and preconfigure the service (as shown in the recipes), so you just need to start the container. No need to do export-modify-import-apply there.

    I would recommend to test to build the containers using the provided recipes. You start them and play with them just using docker following the provided examples. Later you can decide where and how you want to deploy them.

    Good luck!

  • Guest
    Reply
    |
    Sep 23, 2022

    Hi Miguel,


    No, I am not using the published recipes from github.

    I am trying to deploy TERR/Python on docker without kubernetes.


    Also, I took a look at the published recipes in github, the script uses custom properties as below to disable container,

    use.engine.containers:FALSE


    Also it copies the customized property file directly to /opt/tibco/tsnm/nm/services/PYTHON/conf/custom.properties to apply the configuration, which is not the documented approach to modify service's configurations (export,modify,then import & apply).


    This idea is to reduce the steps (export,modify,then import & apply) in order to not use container for TERR/Python because it is already deployed inside a container.


    Thanks.


  • Admin
    Miguel Díez
    Reply
    |
    Sep 23, 2022

    Hi Wei,

    I do not quite understand.

    When running TERR/Python as container, are you using the published recipes from github? https://github.com/TIBCOSoftware/spotfire-cloud-deployment-kit/tree/main

    If so, the spotfire-pythonservice container contains a node manager with one instance of python service. It is not a container in a container, but one container holding both.

    Please, can you explain what you mean?

    Thanks

  • Guest
    Reply
    |
    Sep 23, 2022

    Or let the user choose whether using container or not when installing new service in management console.


    Also, add another parameter to the automatic service installing JSON script to specify whether using container or not.


    https://docs.tibco.com/pub/spotfire_server/12.0.1/doc/html/TIB_sfire_server_tsas_admin_help/server/topics/automatically_installing_services_and_instances.html