Integrating Persistent Customization Changes with Rebuild#

Tokkio uses the UCS Tools to build and deploy its microservices using UCS Tools.

Prerequisites#

  1. Download and install the UCS tools using Installation Guide.

Note

Ensure that the UCS Tools version used is 2.8.1. Link here.

  1. Ensure to sync the repo for UCS tools, as instructed in the documentation referenced above.

  2. Make sure the required privileges for pulling from UCS repository are granted.

  3. Make sure that you have NGC registry created for your team where you can upload the custom resources or charts.

Follow the steps below to build a customized version of Tokkio workflow:

  1. Clone the github repo at NVIDIA/ACE.git.

  2. Navigate to one of the prebuilt tokkio app variants. e.g., ACE/workflows/tokkio/5.0.0-beta/ llm-rag/tokkio-1stream-no-ui

  3. Point the symbolic link at ace-controller/config.yaml to a new target or directly modify the content at ACE/workflows/tokkio/5.0.0-beta/ src/llm-rag/config.yaml

  4. Modify the tokkio-app.yaml and tokkio-app-params.yaml to apply the changes needed for the customization.

  5. Build the Tokkio app with UCS app builder to create a helm chart:

    $ ucf_app_builder_cli app build <app-spec-yaml> <param-yaml>
    
  6. Build the helm chart:

    $ helm repo add "riva-api" "https://helm.ngc.nvidia.com/nvidia/riva" --username '$oauthtoken'  --password <NGC_API_KEY>
    $ helm repo add "audio2face-3d" "https://helm.ngc.nvidia.com/nim/nvidia" --username '$oauthtoken'  --password <NGC_API_KEY>
    $ helm dependency build
    
  7. Package and publish the helm chart into NGC:

    $ helm package .
    $ ngc registry chart push --org ORG_NAME --team TEAM_NAME ORG_NAME/TEAM_NAME/CHART_NAME:VERSION
    

    Note

    The helm package command will create a <APP>-<VERSION>.tgz file in the current directory. This file is the helm chart that will be pushed to NGC.

  8. Update the config-template.yml of your deployment script to reflect the path for the new helm chart (local or repo). A snippet of the relevant section in the config-template.yaml is provided below. Refer to Deployment for options on deployment script.

app:
  configs:
    app_settings:
      # k8s_namespace:   '<replace-with-k8s-namespace-for-app-chart-to-deploy-defaults-to-app>'
      # helm_chart:
      # repo:
          # enable: <true/false-defaults-to-true>
          # repo_url:   '<replace-with-app-chart-helm-repo-url-defaults-to-https://helm.ngc.nvidia.com/nvidia/ace>'
          # chart_name:   '<replace-with-app-chart-name>'
          # chart_version: '<replace-with-chart-version>'
          # release_name:   '<replace-with-release-name-for-helm-deploy-defaults-to-'tokkio-app'  >'
          # user_value_override_files:   ['list-of-absolute-path-of-value-override-files']
      # local:
          #  enable: <true/false-defaults-to-false>
          #  path: '<absolute-path-of-helm-chart-present-locally>'
          #  release_name:   '<replace-with-release-name-for-helm-deploy-defaults-to-'tokkio-app'  >'
          #  user_value_override_files:   ['list-of-absolute-path-of-value-override-files']
  1. Uninstall previously installed Tokkio chart:

    ./envbuild.sh uninstall --tf-binary terraform --component app --config-file ./config-template.yml

  2. Run the deployment script to install the updated chart. Use the correct path and name for your config-template in the command shown below:

    ./envbuild.sh install --tf-binary terraform --component app --config-file ./config-template.yml