Integrating Persistent Customization Changes with Rebuild#
Tokkio uses the UCS Tools to build and deploy its microservices using UCS Tools.
Prerequisites#
Download and install the UCS tools using Installation Guide.
Note
Ensure that the UCS Tools version used is 2.8.1. Link here.
Ensure to sync the repo for UCS tools, as instructed in the documentation referenced above.
Make sure the required privileges for pulling from UCS repository are granted.
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:
Clone the github repo at NVIDIA/ACE.git.
Navigate to one of the prebuilt tokkio app variants. e.g., ACE/workflows/tokkio/5.0.0-beta/ llm-rag/tokkio-1stream-no-ui
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
Modify the tokkio-app.yaml and tokkio-app-params.yaml to apply the changes needed for the customization.
Build the Tokkio app with UCS app builder to create a helm chart:
$ ucf_app_builder_cli app build <app-spec-yaml> <param-yaml>
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
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.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 theconfig-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']
Uninstall previously installed Tokkio chart:
./envbuild.sh uninstall --tf-binary terraform --component app --config-file ./config-template.yml
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