mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-23 16:37:28 +00:00
158 lines
6.1 KiB
Bash
Executable file
158 lines
6.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
export POSTGRES_USER=llamastack
|
|
export POSTGRES_DB=llamastack
|
|
export POSTGRES_PASSWORD=llamastack
|
|
|
|
export INFERENCE_MODEL=meta-llama/Llama-3.2-3B-Instruct
|
|
export SAFETY_MODEL=meta-llama/Llama-Guard-3-1B
|
|
|
|
# Set USE_EBS to false if you don't have permission to use EKS EBS
|
|
export USE_EBS=${USE_EBS:-false}
|
|
|
|
# HF_TOKEN should be set by the user; base64 encode it for the secret
|
|
if [ -n "${HF_TOKEN:-}" ]; then
|
|
export HF_TOKEN_BASE64=$(echo -n "$HF_TOKEN" | base64)
|
|
fi
|
|
|
|
# NGC_API_KEY should be set by the user; base64 encode it for the secret
|
|
if [ -n "${NGC_API_KEY:-}" ]; then
|
|
export NGC_API_KEY_BASE64=$(echo -n "$NGC_API_KEY" | base64)
|
|
# Create Docker config JSON for NGC image pull
|
|
NGC_DOCKER_CONFIG="{\"auths\":{\"nvcr.io\":{\"username\":\"\$oauthtoken\",\"password\":\"$NGC_API_KEY\"}}}"
|
|
export NGC_DOCKER_CONFIG_JSON=$(echo -n "$NGC_DOCKER_CONFIG" | base64)
|
|
fi
|
|
|
|
# Define namespace - default to current namespace if not specified
|
|
export NAMESPACE=${NAMESPACE:-$(kubectl config view --minify -o jsonpath='{..namespace}')}
|
|
if [ -z "$NAMESPACE" ]; then
|
|
export NAMESPACE="default"
|
|
fi
|
|
|
|
set -euo pipefail
|
|
set -x
|
|
|
|
# Delete resources in reverse order of creation to handle dependencies properly
|
|
|
|
echo "Starting comprehensive deletion of all LlamaStack resources..."
|
|
|
|
# Delete UI deployment and service
|
|
echo "Deleting UI resources..."
|
|
envsubst < ./ui-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
# Check for UI service template and delete if exists
|
|
if [ -f "./ui-service-k8s.yaml.template" ]; then
|
|
envsubst < ./ui-service-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
fi
|
|
|
|
# Delete monitoring resources
|
|
echo "Deleting monitoring resources..."
|
|
envsubst < ./monitoring-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete Prometheus RBAC resources
|
|
echo "Deleting Prometheus RBAC resources..."
|
|
kubectl delete -f ./prometheus-rbac.yaml --ignore-not-found=true
|
|
|
|
# Delete ingress
|
|
echo "Deleting ingress resources..."
|
|
envsubst < ./ingress-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete stack deployment
|
|
echo "Deleting stack deployment..."
|
|
envsubst < ./stack-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete configmaps
|
|
echo "Deleting configmaps..."
|
|
kubectl delete configmap llama-stack-config --ignore-not-found=true
|
|
# Check for stack configmap and delete if exists
|
|
if [ -f "./stack-configmap.yaml" ]; then
|
|
kubectl delete -f ./stack-configmap.yaml --ignore-not-found=true
|
|
fi
|
|
|
|
# Delete chroma deployment
|
|
echo "Deleting chroma deployment..."
|
|
envsubst < ./chroma-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete postgres deployment
|
|
echo "Deleting postgres deployment..."
|
|
envsubst < ./postgres-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete llama-nim deployment
|
|
echo "Deleting llama-nim deployment..."
|
|
envsubst < ./llama-nim.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
|
|
# Delete ollama-safety deployment
|
|
echo "Deleting ollama-safety deployment..."
|
|
envsubst < ./ollama-safety-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete vllm deployment
|
|
echo "Deleting vllm deployment..."
|
|
envsubst < ./vllm-k8s.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
|
|
# Delete the HF token secret if it exists
|
|
if [ -n "${HF_TOKEN:-}" ]; then
|
|
echo "Deleting HF token secret..."
|
|
envsubst < ./set-secret.yaml.template | kubectl delete -f - --ignore-not-found=true
|
|
fi
|
|
|
|
# Delete any other template files that might exist
|
|
echo "Checking for additional template files..."
|
|
for template in ./*.yaml.template; do
|
|
if [ -f "$template" ]; then
|
|
# Skip templates we've already processed
|
|
if [[ "$template" != "./ui-k8s.yaml.template" &&
|
|
"$template" != "./monitoring-k8s.yaml.template" &&
|
|
"$template" != "./ingress-k8s.yaml.template" &&
|
|
"$template" != "./stack-k8s.yaml.template" &&
|
|
"$template" != "./chroma-k8s.yaml.template" &&
|
|
"$template" != "./postgres-k8s.yaml.template" &&
|
|
"$template" != "./llama-nim.yaml.template" &&
|
|
"$template" != "./vllm-safety-k8s.yaml.template" &&
|
|
"$template" != "./ollama-safety-k8s.yaml.template" &&
|
|
"$template" != "./vllm-k8s.yaml.template" &&
|
|
"$template" != "./set-secret.yaml.template" &&
|
|
"$template" != "./ui-service-k8s.yaml.template" ]]; then
|
|
echo "Deleting resources from $template..."
|
|
envsubst < "$template" | kubectl delete -f - --ignore-not-found=true
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Delete any PersistentVolumeClaims created by the stack
|
|
echo "Deleting PersistentVolumeClaims..."
|
|
kubectl delete pvc -l app=llama-stack --ignore-not-found=true
|
|
kubectl delete pvc -l app=chroma --ignore-not-found=true
|
|
kubectl delete pvc -l app=postgres --ignore-not-found=true
|
|
kubectl delete pvc -l app=vllm --ignore-not-found=true
|
|
kubectl delete pvc -l app.kubernetes.io/name=ollama-safety --ignore-not-found=true
|
|
|
|
# Delete any remaining services
|
|
echo "Deleting any remaining services..."
|
|
kubectl delete service -l app=llama-stack --ignore-not-found=true
|
|
kubectl delete service -l app=chroma --ignore-not-found=true
|
|
kubectl delete service -l app=postgres --ignore-not-found=true
|
|
kubectl delete service -l app=vllm --ignore-not-found=true
|
|
kubectl delete service -l app=llama-nim --ignore-not-found=true
|
|
kubectl delete service -l app.kubernetes.io/name=ollama-safety --ignore-not-found=true
|
|
|
|
# Delete any remaining secrets
|
|
echo "Deleting any remaining secrets..."
|
|
kubectl delete secret hf-secret --ignore-not-found=true
|
|
kubectl delete secret ngc-secret --ignore-not-found=true
|
|
kubectl delete secret -l app=llama-stack --ignore-not-found=true
|
|
|
|
# Verify no resources remain
|
|
echo "Verifying deletion..."
|
|
REMAINING_RESOURCES=$(kubectl get all -l app=llama-stack 2>/dev/null)
|
|
if [ -z "$REMAINING_RESOURCES" ]; then
|
|
echo "All LlamaStack Kubernetes resources have been successfully deleted."
|
|
else
|
|
echo "Some LlamaStack resources may still exist. Please check manually with:"
|
|
echo "kubectl get all -l app=llama-stack"
|
|
fi
|