Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 13 additions & 16 deletions e2e/k8s/scripts/install_helm_e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/lib.sh"
REPO_ROOT="$(git -C "${SCRIPT_DIR}" rev-parse --show-toplevel)"

NAMESPACE="${NAMESPACE:-${KUBE_NAMESPACE:-default}}"
Expand All @@ -31,22 +32,6 @@ RUSTFS_SECRET_KEY="${RUSTFS_SECRET_KEY:-rustfsadmin}"
MINIKUBE_PROFILE="${MINIKUBE_PROFILE:-minikube}"
EXTRA_HELM_ARGS=()

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

log_info() {
echo -e "${GREEN}[INFO]${NC} $*"
}

log_warn() {
echo -e "${YELLOW}[WARN]${NC} $*"
}

log_error() {
echo -e "${RED}[ERROR]${NC} $*"
}

require_non_empty() {
local name="$1"
Expand Down Expand Up @@ -239,6 +224,18 @@ if [ -n "${NMP_E2E_PULL_POLICY}" ]; then
)
fi

IMAGE_PULL_SECRET_INDEX=0

if [ -n "${NGC_API_KEY:-}" ]; then
HELM_ARGS+=(--set "imagePullSecrets[${IMAGE_PULL_SECRET_INDEX}].name=nvcrimagepullsecret")
IMAGE_PULL_SECRET_INDEX=$((IMAGE_PULL_SECRET_INDEX + 1))
fi

if [ -n "${GITHUB_TOKEN:-}" ]; then
HELM_ARGS+=(--set "imagePullSecrets[${IMAGE_PULL_SECRET_INDEX}].name=ghcr-pull")
IMAGE_PULL_SECRET_INDEX=$((IMAGE_PULL_SECRET_INDEX + 1))
fi

log_info "Helm install inputs:"
printf ' release: %s\n' "${HELM_RELEASE_NAME}"
printf ' namespace: %s\n' "${NAMESPACE}"
Expand Down
62 changes: 62 additions & 0 deletions e2e/k8s/scripts/lib.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env bash
# Shared utilities for e2e K8s setup scripts.

# ---------------------------------------------------------------------------
# Logging
# ---------------------------------------------------------------------------

log_info() { echo -e "\033[0;32m[INFO]\033[0m $*"; }
log_warn() { echo -e "\033[1;33m[WARN]\033[0m $*"; }
log_error() { echo -e "\033[0;31m[ERROR]\033[0m $*"; }

# ---------------------------------------------------------------------------
# Secrets
# ---------------------------------------------------------------------------

# create_platform_secrets NAMESPACE
#
# Creates the standard set of platform secrets in the given namespace.
# Each secret is created only when its corresponding env var is set:
# - ngc-api + nvcrimagepullsecret: when NGC_API_KEY is set
# - ghcr-pull: when GITHUB_TOKEN is set
# - huggingface-token: when HF_TOKEN is set
create_platform_secrets() {
local namespace="${1:?namespace is required}"
local kubectl_ns=(kubectl -n "${namespace}")

if [ -n "${NGC_API_KEY:-}" ]; then
log_info "Creating NGC API secret..."
"${kubectl_ns[@]}" create secret generic ngc-api \
--from-literal=NGC_API_KEY="${NGC_API_KEY}" \
Comment thread
matthewgrossman marked this conversation as resolved.
Resolved
--dry-run=client -o yaml | "${kubectl_ns[@]}" apply -f -

log_info "Creating NGC image pull secret..."
"${kubectl_ns[@]}" create secret docker-registry nvcrimagepullsecret \
--docker-server=nvcr.io \
--docker-username='$oauthtoken' \
--docker-password="${NGC_API_KEY}" \
--dry-run=client -o yaml | "${kubectl_ns[@]}" apply -f -
else
log_warn "NGC_API_KEY not set, skipping NGC secrets"
fi

if [ -n "${GITHUB_TOKEN:-}" ]; then
log_info "Creating GHCR image pull secret..."
"${kubectl_ns[@]}" create secret docker-registry ghcr-pull \
--docker-server=ghcr.io \
--docker-username=x-access-token \
--docker-password="${GITHUB_TOKEN}" \
--dry-run=client -o yaml | "${kubectl_ns[@]}" apply -f -
Comment thread
matthewgrossman marked this conversation as resolved.
Resolved
else
log_warn "GITHUB_TOKEN not set, skipping GHCR image pull secret"
fi

if [ -n "${HF_TOKEN:-}" ]; then
log_info "Creating HuggingFace token secret..."
"${kubectl_ns[@]}" create secret generic huggingface-token \
--from-literal=HF_TOKEN="${HF_TOKEN}" \
--dry-run=client -o yaml | "${kubectl_ns[@]}" apply -f -
else
log_warn "HF_TOKEN not set, skipping HuggingFace token secret"
fi
}
39 changes: 4 additions & 35 deletions e2e/k8s/scripts/setup_local_kind_cpu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/lib.sh"

KIND_CLUSTER_NAME="${KIND_CLUSTER_NAME:-nmp-e2e}"
KIND_NODE_IMAGE="${KIND_NODE_IMAGE:-kindest/node:v1.33.7@sha256:d26ef333bdb2cbe9862a0f7c3803ecc7b4303d8cea8e814b481b09949d353040}"
KUBE_NAMESPACE="${KUBE_NAMESPACE:-default}"
Expand All @@ -12,23 +15,6 @@ CLOUD_PROVIDER_KIND_VERSION="${CLOUD_PROVIDER_KIND_VERSION:-v0.10.0}"
GATEWAY_API_VERSION="${GATEWAY_API_VERSION:-v1.4.1}"
CLOUD_PROVIDER_KIND_CONTAINER="cloud-provider-kind-${KIND_CLUSTER_NAME}"

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

log_info() {
echo -e "${GREEN}[INFO]${NC} $*"
}

log_warn() {
echo -e "${YELLOW}[WARN]${NC} $*"
}

log_error() {
echo -e "${RED}[ERROR]${NC} $*"
}

for tool in kind docker kubectl helm; do
if ! command -v "$tool" >/dev/null 2>&1; then
log_error "$tool is not installed. Please install it first."
Expand Down Expand Up @@ -93,24 +79,7 @@ fi
KUBECTL_NS=(kubectl -n "${KUBE_NAMESPACE}")

log_info "Creating Kubernetes secrets in namespace ${KUBE_NAMESPACE}..."
"${KUBECTL_NS[@]}" create secret generic ngc-api \
--from-literal=NGC_API_KEY="${NGC_API_KEY}" \
--dry-run=client -o yaml | "${KUBECTL_NS[@]}" apply -f -

"${KUBECTL_NS[@]}" create secret docker-registry nvcrimagepullsecret \
--docker-server=nvcr.io \
--docker-username="\$oauthtoken" \
--docker-password="${NGC_API_KEY}" \
--dry-run=client -o yaml | "${KUBECTL_NS[@]}" apply -f -

if [ -n "${HF_TOKEN:-}" ]; then
log_info "Creating HuggingFace token secret..."
"${KUBECTL_NS[@]}" create secret generic huggingface-token \
--from-literal=HF_TOKEN="${HF_TOKEN}" \
--dry-run=client -o yaml | "${KUBECTL_NS[@]}" apply -f -
else
log_warn "HF_TOKEN not set, skipping HuggingFace token secret"
fi
create_platform_secrets "${KUBE_NAMESPACE}"

log_info "Creating Gateway ${KUBE_NAMESPACE}/${KUBE_GATEWAY_NAME}..."
kubectl apply -f - <<EOF
Expand Down
39 changes: 5 additions & 34 deletions e2e/k8s/scripts/setup_local_minikube_cpu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,16 @@

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/lib.sh"

MINIKUBE_PROFILE="${MINIKUBE_PROFILE:-minikube-auth}"
KUBE_NAMESPACE="${KUBE_NAMESPACE:-default}"
INGRESS_NODEPORT="${INGRESS_NODEPORT:-30080}"
INGRESS_HOST_PORT="${INGRESS_HOST_PORT:-30080}"
MINIKUBE_CPUS="${MINIKUBE_CPUS:-4}"
MINIKUBE_MEMORY_MB="${MINIKUBE_MEMORY_MB:-6144}"

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

log_info() {
echo -e "${GREEN}[INFO]${NC} $*"
}

log_warn() {
echo -e "${YELLOW}[WARN]${NC} $*"
}

log_error() {
echo -e "${RED}[ERROR]${NC} $*"
}

for tool in minikube docker kubectl helm; do
if ! command -v "$tool" >/dev/null 2>&1; then
log_error "$tool is not installed. Please install it first."
Expand Down Expand Up @@ -90,23 +76,8 @@ fi

KUBECTL_NS=(kubectl -n "${KUBE_NAMESPACE}")

log_info "Creating placeholder platform secrets in namespace ${KUBE_NAMESPACE}..."
${KUBECTL_NS[@]} create secret generic ngc-api \
--from-literal=NGC_API_KEY="${NGC_API_KEY:-local-dev-placeholder}" \
Comment thread
matthewgrossman marked this conversation as resolved.
Resolved
--dry-run=client -o yaml | ${KUBECTL_NS[@]} apply -f -

${KUBECTL_NS[@]} create secret docker-registry nvcrimagepullsecret \
--docker-server="${NVCI_DOCKER_SERVER:-docker.io}" \
--docker-username="${NVCI_DOCKER_USERNAME:-local}" \
--docker-password="${NVCI_DOCKER_PASSWORD:-local-dev-placeholder}" \
--dry-run=client -o yaml | ${KUBECTL_NS[@]} apply -f -

if [ -n "${HF_TOKEN:-}" ]; then
log_info "Creating HuggingFace token secret..."
${KUBECTL_NS[@]} create secret generic huggingface-token \
--from-literal=HF_TOKEN="${HF_TOKEN}" \
--dry-run=client -o yaml | ${KUBECTL_NS[@]} apply -f -
fi
log_info "Creating platform secrets in namespace ${KUBE_NAMESPACE}..."
create_platform_secrets "${KUBE_NAMESPACE}"

MINIKUBE_IP="$(minikube ip -p "${MINIKUBE_PROFILE}")"

Expand Down
42 changes: 4 additions & 38 deletions e2e/k8s/scripts/setup_local_minikube_gpu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,10 @@

set -euo pipefail

MINIKUBE_PROFILE="${MINIKUBE_PROFILE:-minikube}"

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

log_info() {
echo -e "${GREEN}[INFO]${NC} $*"
}

log_warn() {
echo -e "${YELLOW}[WARN]${NC} $*"
}
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/lib.sh"

log_error() {
echo -e "${RED}[ERROR]${NC} $*"
}
MINIKUBE_PROFILE="${MINIKUBE_PROFILE:-minikube}"

log_info "Validating environment..."

Expand Down Expand Up @@ -131,27 +117,7 @@ if [ "${KUBE_NAMESPACE}" != "default" ]; then
fi

log_info "Creating Kubernetes secrets in namespace '${KUBE_NAMESPACE}'..."

log_info "Creating NGC API secret..."
${KUBECTL_NS} create secret generic ngc-api \
--from-literal=NGC_API_KEY="$NGC_API_KEY" \
--dry-run=client -o yaml | ${KUBECTL_NS} apply -f -

log_info "Creating NGC image pull secret..."
${KUBECTL_NS} create secret docker-registry nvcrimagepullsecret \
--docker-server=nvcr.io \
--docker-username='$oauthtoken' \
--docker-password="$NGC_API_KEY" \
--dry-run=client -o yaml | ${KUBECTL_NS} apply -f -

if [ -n "${HF_TOKEN:-}" ]; then
log_info "Creating HuggingFace token secret..."
${KUBECTL_NS} create secret generic huggingface-token \
--from-literal=HF_TOKEN=$HF_TOKEN \
--dry-run=client -o yaml | ${KUBECTL_NS} apply -f -
else
log_warn "HF_TOKEN not set, skipping HuggingFace token secret"
fi
create_platform_secrets "${KUBE_NAMESPACE}"

MINIKUBE_IP=$(minikube ip -p "${MINIKUBE_PROFILE}")
CLUSTER_URL="http://${MINIKUBE_IP}"
Expand Down
Loading