Skip to main content

Installation

note

This page assumes that you are deploying the latest version of LlamaCloud. Please refer to the release notes for more information about previous versions.

Before You Get Started

Welcome to LlamaCloud! Before you get started, please make sure you have the following prerequisites:

  • LlamaCloud License Key. To obtain a LlamaCloud License Key, please contact us at support@llamaindex.ai.
  • Kubernetes cluster >=1.28.0 and a working installation of kubectl.
    • We are largely aligned with the versions supported in EKS, AKS, and GKE.
  • Helm v3.7.0+
  • OpenAI API Key or Azure OpenAI Credentials. These credentials are required to setup a fully functional LlamaCloud deployment.
  • OIDC Credentials. At the time of writing, this is our only supported authentication method. For more information, please refer to the OIDC authentication section.
  • (For Production Deployments) Credentials to External Services (Postgres, MongoDB, Redis, RabbitMQ).
    • We provide containerized versions of these dependencies to get started quickly. However, we recommend connecting LlamaCloud to externally managed services for production deployments.

Hardware Requirements

  • Linux Instances running x86 CPUs
    • As of August 12th, 2024, we build only linux/amd64 images. arm64 is not supported at this moment.
  • Ubuntu >=22.04
  • >=12 vCPUs
  • >=80Gbi Memory

Warning #1: LlamaParse, LlamaIndex's proprietary document parser, can be a very resource-intensive deployment to run, especially if you want to maximize performance.

Warning #2: The base CPU/memory requirements may increase if you are running containerized deployments of LlamaCloud dependencies. (More information in the following section)

Configure and Install Your Deployment

This section will walk you through the steps to configure a minimal LlamaCloud deployment.

Minimal values.yaml configuration

To get a minimal LlamaCloud deployment up and running, you can create a values.yaml file with the following content:

  global:
config:
licenseKey: "<REPLACE-WITH-LLAMACLOUD-LICENSE-KEY>"
# existingLicenseKeySecret: "<uncomment-if-using-existing-secret>"

backend:
config:
openAiApiKey: "<REPLACE-WITH-OPENAI-API-KEY>"
# existingOpenAiApiKeySecret: "<uncomment-if-using-existing-secret>"

# As of 09.24.2024, we only support OIDC for authentication.
oidc:
discoveryUrl: "https://login.microsoftonline.com/your-tenant-id/oauth2/v2.0/token"
clientId: "your-client-id"
clientSecret: "your-client-secret"
# existingSecretName: "oidc-secret"

llamaParse:
config:
openAiApiKey: "<REPLACE-WITH-OPENAI-API-KEY>"
# existingOpenAiApiKeySecret: "<uncomment-if-using-existing-secret>"

Important Notes

  • There are many more configuration options available for each component. To see the full values.yaml specification, please refer to the values.yaml file in the Helm chart repository.
  • We also have in-depth guides for specific use cases and features. You can find them in the Configuration section of the sidebar.
  • If you're new to k8s or Helm or would like to see how common scenarios are configured, please refer to the examples directory in the Helm chart repository.

Install the Helm chart

# Add the Helm repository
helm repo add llamaindex https://run-llama.github.io/helm-charts

# Update your local Helm chart cache
helm repo update

# Install the Helm chart
helm install llamacloud llamaindex/llamacloud -f values.yaml

If you want to install a specific version of the Helm chart, you can specify the version:

helm install llamacloud llamaindex/llamacloud --version <version> -f values.yaml

Validate the installation

After installation, you will see the following output:

NAME: llamacloud
LAST DEPLOYED: <timestamp>
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Welcome to LlamaCloud!

View your deployment with the following:

kubectl --namespace default get pods

To view LlamaCloud UI in your browser, run the following:

kubectl --namespace default port-forward svc/llamacloud-frontend 3000:3000

If you list the pods with kubectl get pods, you should see the following pods:

NAME                                         READY   STATUS    RESTARTS       AGE
llamacloud-backend-6f9dccd58d-4xnt5 1/1 Running 0 3m
llamacloud-frontend-5cbf7d6c66-fvr5r 1/1 Running 0 3m
llamacloud-jobs-service-79bb857444-8h9vg 1/1 Running 0 3m
llamacloud-jobs-worker-648f45ccb7-8sqst 1/1 Running 0 3m
llamacloud-llamaparse-658bdf7-6vqnz 1/1 Running 0 3m
llamacloud-llamaparse-658bdf7-vvm5q 1/1 Running 0 3m
llamacloud-llamaparse-ocr-7544cccdcc-29gvn 1/1 Running 0 3m
llamacloud-llamaparse-ocr-7544cccdcc-6nvjt 1/1 Running 0 3m
llamacloud-mongodb-784cf4bf9c-g9bcx 1/1 Running 0 3m
llamacloud-postgresql-0 1/1 Running 0 3m
llamacloud-rabbitmq-0 1/1 Running 0 3m
llamacloud-redis-master-0 1/1 Running 0 3m
llamacloud-redis-replicas-0 1/1 Running 0 3m
llamacloud-redis-replicas-1 1/1 Running 0 3m
llamacloud-redis-replicas-2 1/1 Running 0 3m
llamacloud-usage-5768b788c4-pxfhr 1/1 Running 0 3m

Port forward the frontend service to access the LlamaCloud UI:

kubectl --namespace default port-forward svc/llamacloud-frontend 3000:3000

Open your web browser and navigate to http://localhost:3000. You should see the LlamaCloud UI.

More Resources