Conversation
Split NVIDIA Build (nvapi-*) and Inference Hub (sk-*) env vars, load keys from ~/.nemoclaw/secrets.env, route Ultra via inference-api, and fix Tavily on rebuild resume.
Keep Tavily/Telegram support alongside upstream Brave egress verification and provider profile registration.
Removed unnecessary details about Dual NVIDIA keys and Secrets file while retaining key features for clarity.
Updated the README.fork.md to include new information and images.
Set toolSearch false for Ultra and document web_search usage so Tavily runs instead of failing tool_search_code.
Introduce the nemoclaw-cpu Helm chart with metrics-server-based autoscaling, install/recover/reset/load-test scripts, and documentation for running Inference Hub agents on MicroK8s (min 1, max 7 replicas per 8 vCPU).
Added an image and recovery instructions to README.
Introduce nemoclaw-gpu (Ollama + agent, DCGM gpu_utilization_percent HPA) with load-test and ops scripts tuned for 4× L40S. Split deploy guides into README-gpu/README-cpu and refresh the CPU chart helpers.
Removed 'GPU' from the title of the deployment README.
Updated images in README-gpu.md to include width and height attributes for better display.
Updated image syntax and added additional screenshots in the README for GPU deployment.
Updated README for GPU deployment with HPA details.
Signed-off-by: maggiezha <42832776+maggiezha@users.noreply.github.com>
Added port 9000 for the CPU deployment section.
Removed the third port entry from the table.
Signed-off-by: maggiezha <42832776+maggiezha@users.noreply.github.com>
Signed-off-by: maggiezha <42832776+maggiezha@users.noreply.github.com>
|
Important Review skippedToo many files! This PR contains 127 files, which is 27 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (127)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| local deploy="${2:?deploy}" | ||
| local hpa_name="${3:-${deploy}}" | ||
| local min="${4:-1}" | ||
| local max="${5:-7}" |
|
|
||
| local spec_min spec_max desired deploy_spec | ||
| spec_min="$(kubectl get "horizontalpodautoscaler/${hpa_name}" -n "${ns}" -o jsonpath='{.spec.minReplicas}' 2>/dev/null || echo 0)" | ||
| spec_max="$(kubectl get "horizontalpodautoscaler/${hpa_name}" -n "${ns}" -o jsonpath='{.spec.maxReplicas}' 2>/dev/null || echo 0)" |
| spec_min="$(kubectl get "horizontalpodautoscaler/${hpa_name}" -n "${ns}" -o jsonpath='{.spec.minReplicas}' 2>/dev/null || echo 0)" | ||
| spec_max="$(kubectl get "horizontalpodautoscaler/${hpa_name}" -n "${ns}" -o jsonpath='{.spec.maxReplicas}' 2>/dev/null || echo 0)" | ||
| desired="$(kubectl get "horizontalpodautoscaler/${hpa_name}" -n "${ns}" -o jsonpath='{.status.desiredReplicas}' 2>/dev/null || echo "")" | ||
| deploy_spec="$(kubectl get "deployment/${deploy}" -n "${ns}" -o jsonpath='{.spec.replicas}' 2>/dev/null || echo "")" |
| DEPLOYMENT="${DEPLOYMENT:-${RELEASE}-nemoclaw-cpu-agent}" | ||
| SERVICE="${SERVICE:-${DEPLOYMENT}}" | ||
| SERVICE_PORT="${SERVICE_PORT:-8080}" | ||
| LAST_HPA_LINE="" |
| set -eu | ||
|
|
||
| MODEL="${OLLAMA_MODEL:?OLLAMA_MODEL required}" | ||
| HOST="${OLLAMA_HOST:-0.0.0.0:11434}" |
| DEPLOYMENT="${DEPLOYMENT:-$(RELEASE="${RELEASE}" CHART_NAME=nemoclaw-gpu hpa_common_agent_deployment)}" | ||
| SERVICE="${SERVICE:-$(RELEASE="${RELEASE}" CHART_NAME=nemoclaw-gpu hpa_common_agent_service)}" | ||
| SERVICE_PORT="${SERVICE_PORT:-8081}" | ||
| LAST_HPA_LINE="" |
| } | ||
|
|
||
| helm_install | ||
| hpa_common_kick_deployment "${NAMESPACE}" "${DEPLOYMENT}" && helm_install || true |
| } | ||
|
|
||
| hpa_common_agent_deployment() { | ||
| echo "$(hpa_common_release_fullname)-agent" |
| } | ||
|
|
||
| hpa_common_agent_service() { | ||
| echo "$(hpa_common_release_fullname)-agent" |
| hpa_common_gpu_recreate_stale_workload "${NAMESPACE}" "${DEPLOYMENT}" "${DEPLOYMENT}" | ||
|
|
||
| helm_install | ||
| hpa_common_kick_deployment "${NAMESPACE}" "${DEPLOYMENT}" && helm_install || true |
| if (fs.existsSync(secretsFile)) { | ||
| return { ok: true, created: false, path: secretsFile }; | ||
| } | ||
| fs.writeFileSync(secretsFile, SECRETS_ENV_TEMPLATE, { encoding: "utf-8", mode: 0o600 }); |
| body: JSON.stringify({ | ||
| messages: [{ role: "user", content: q }], | ||
| max_tokens: 24, | ||
| }), |
| { | ||
| hostname: process.env.KUBERNETES_SERVICE_HOST, | ||
| port: process.env.KUBERNETES_SERVICE_PORT || 443, | ||
| path, | ||
| method: "GET", | ||
| headers: { Authorization: `Bearer ${token}` }, | ||
| ca, | ||
| rejectUnauthorized: true, | ||
| }, |
| body: JSON.stringify({ | ||
| messages: [{ role: "user", content: q }], | ||
| max_tokens: MAX_TOKENS, | ||
| stream: false, | ||
| }), |
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…o local variable' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
… through a stack trace' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…ort, function or class' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…ort, function or class' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
… through a stack trace' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
|
close testing |
|
just testing |
|
close testing |
Summary
Related Issue
Changes
Type of Change
Verification
npx prek run --all-filespassesnpm testpassesnpm run docsbuilds without warnings (doc changes only)Signed-off-by: Your Name your-email@example.com