Deploy with Helm Chart#
This section shows how to deploy Model Download using Helm chart.
Prerequisites#
Before you begin, ensure that you have the following prerequisites:
Kubernetes cluster set up and running.
The cluster must support dynamic provisioning of Persistent Volumes (PV). See Kubernetes Documentation on Dynamic Volume Provisioning for details.
Install
kubectlon your system. See Kubernetes Documentation on Tool Installation. Ensure access to the Kubernetes cluster.Helm chart installed on your system: See Installing Helm.
Install Helm Chart from Docker Hub or from Source#
To deploy with Helm chart, you can either install the chart from Docker hub or from source.
Option 1: Install from Docker Hub#
Pull the specific chart
Use the following command to pull the Helm chart from Docker Hub:
helm pull oci://registry-1.docker.io/intel/model-download-chart --version <version-no>
See the Docker hub’s tags page for details on the latest version number to use for the application.
Extract the
.tgzfileExtract the
.tgzfile:tar -xvf model-download-chart-<version-no>.tgz
This will create a directory named
model-download-chart, containing the chart files. Navigate to the extracted directory:cd model-download-chart
Option 2: Install from Source#
Clone the repository containing the Helm chart:
# Clone the latest on the mainline git clone https://github.com/open-edge-platform/edge-ai-libraries.git edge-ai-libraries # Alternatively, clone a specific release branch git clone https://github.com/open-edge-platform/edge-ai-libraries.git edge-ai-libraries -b <release-tag>
Navigate to the chart directory:
cd edge-ai-libraries/microservices/model-download/chart
Configure the values.yaml File#
Edit the values.yaml file located in the chart directory to set the necessary environment variables. Set your proxy settings as required.
The following is a summary of key configuration options available in the values.yaml file:
Parameter |
Description |
Example Value |
Required |
|---|---|---|---|
|
Hugging Face access token |
|
Yes |
|
GETI workspace ID |
Yes, For GETI connection |
|
|
GETI connection host address |
Yes, For GETI connection |
|
|
GETI Personal Access token |
Yes, For GETI connection |
|
|
GETI API version |
|
Yes, For GETI connection |
|
Enables SSL certificate validation for HTTPS/HTTP GETI hosts |
|
Yes, For GETI connection |
|
Sets the static port (in the 30000–32767 range) |
32000 |
Yes |
|
Comma-separated list of plugins to enable (e.g., |
|
Yes |
|
image repository url |
intel/model-download |
Yes |
|
latest image tag |
latest |
Yes |
|
For model download deployed on GPU |
false |
|
|
Label assigned to the GPU node on kubernetes cluster by the device plugin example- gpu.intel.com/i915, gpu.intel.com/xe. Identify by running kubectl describe node |
|
|
|
Default is false, true to enable affinity |
|
|
|
Provide the key for the affinity,default is kubernetes.io/hostname |
|
|
|
Provide the values for the respective key |
Note: See the chart’s
values.yamlfile for a full list of configurable parameters.
Deploy the Helm Chart#
helm install model-download . -n <your-namespace>
Note:
model-downloadcreates and manages a shared PVC that can be used by dependent applications such as ChatQnA.
Verify the Deployment#
Check the status of the deployed resources to ensure everything is running correctly:
kubectl get pods -n <your-namespace>
kubectl get services -n <your-namespace>
Access the Application#
Open the application’s Swagger documentation in a browser through http://<node-ip>:<node-port>/api/v1/docs.
Uninstall Helm chart#
helm uninstall <name> -n <your-namespace>
Verify the Application#
Ensure that all pods are running and the services are accessible.
Access the application dashboard and verify that it is functioning as expected.
Troubleshooting#
If you encounter any issues during the deployment process, check the Kubernetes logs for errors:
kubectl logs <pod-name>
If the PVC created during a Helm chart deployment is not removed or auto-deleted due to a deployment failure or being stuck, delete it manually:
# List the PVCs present in the given namespace kubectl get pvc -n <namespace> # Delete the required PVC from the namespace kubectl delete pvc <pvc-name> -n <namespace>
Note:
Delete the shared PVC only after confirming no other workload or application (for example, ChatQnA) depends on it. In such cases, uninstall the dependent application first, then clean up model-download resources, and finally delete the shared PVC if required.