All skills
nvidia avatar

/doca-container-deployment

@a5736e4
by NVIDIA Corporationnvidia/skills3.5k stars
424

Use this skill when the user is hands-on deploying an in-bundle DOCA service container (Argus, DMS, Firefly, or UROM service) on a BlueField — kubelet standalone watching a static-pod manifests directory, YAML pod-spec drop, kubelet status / ENTRYPOINT logs / per-service liveness, smoke-before-bulk, and the layered error taxonomy (pod-spec, scheduling, image pull, runtime, mount, network, version, host). Trigger even when the user does not say "container deployment" — typical implicit phrasings include "how do I run my built service on the BlueField?", "where do I drop the pod-spec YAML?", "pod stuck in Pending / ImagePullBackOff / CrashLoopBackOff", "container Running but service isn't ready", "pod restart-loops after edit", or "DMS and Firefly together". Refuse and route elsewhere for per-service config schemas, DOCA install, library-API questions, external NVIDIA services (BlueMan, HBN, SNAP, Virtio-net), or full Kubernetes-cluster ops — those belong to other skills.

Use this Skill: https://skilld.dev/gh/nvidia/skills/doca-container-deployment

This session only. Nothing lands on disk.

referencesdetails.md

≈2.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

doca-container-deployment — reference detail

Moved out of SKILL.md to keep the loader under the per-file size budget. This is supporting detail, not routing logic.

Example questions this skill answers well

The CLASSES of container-deployment questions this skill is built to answer, each with one worked example. The class is the load-bearing piece; the worked example is one instance.

  • "How is a DOCA service container actually run on the BlueField — what is the runtime, who watches what, how does a pod-spec get picked up?" — worked example: "I have the DOCA Management Service (DMS) container image on the BlueField — what do I do with it?". Answered by the kubelet-standalone pattern in CAPABILITIES.md ## Capabilities and modes
  • "Where do I put the YAML pod spec so kubelet picks it up, and what shape does the spec have to be?" — worked example: "I have a YAML manifest for the Firefly container — where on the BlueField filesystem does it go?". Answered by the static-pod-manifests directory rule in CAPABILITIES.md ## Capabilities and modes
  • "My pod spec is in the directory but the pod never starts — how do I diagnose it?" — worked example: "I dropped the Argus pod-spec YAML into the documented manifests directory and nothing happens". Answered by the layered error taxonomy in CAPABILITIES.md ## Error taxonomy (pod-spec syntax → pod scheduling → image pull → runtime → volume mount → network policy → version → cross-cutting host) + the layered debug ladder in TASKS.md ## debug.
  • "How do I find the logs of a DOCA service container, and what does 'healthy' look like before I put real workload on the BlueField?" — worked example: "the Firefly pod is Running, but I do not yet know whether the PTP service inside is actually ready". Answered by the smoke-before-bulk loop in CAPABILITIES.md ## Safety policy
  • "My pod was Running and crashed; should I just have kubelet restart it, or is that exactly the wrong thing?" — worked example: "the DMS pod went into a restart loop after a config edit; should I leave it looping or step in?". Answered by the failed-pod-restart-is-high-stakes rule in CAPABILITIES.md ## Safety policy
  • "Does this same pattern carry over to every other DOCA service, or is each service deployed in a different way?" — worked example: "I have DMS deployed; what changes for Firefly, UROM service, and Argus?". Answered by the cross-service generalization in CAPABILITIES.md ## Capabilities and modes
    • the per-service overlay routing in TASKS.md ## Deferred task verbs (the runtime pattern is uniform; the per-service config schema, precondition, observability surface, and "healthy" definition layer on top via the matching per-service skill).

What this skill deliberately does not ship

This skill is agent guidance, not a templates or sample-pod-spec bundle. To keep the boundary clean, it deliberately does not contain — and pull requests should not add:

  • Pre-baked pod-spec YAML files (full pod specs, ready-to-drop mount / image / command bundles for Argus / DMS / Firefly / etc.) intended to be copy-pasted into production. Pod specs are deployment-specific (per-service image tag, mount paths, host paths the operator picks) and the safe answer for an external operator is to derive them from the public DOCA Container Deployment Guide plus the matching per-service guide against their own target. The agent's job is to prescribe the procedure and quote the documented field names, not to ship a YAML the user might run unmodified.
  • Container image names and tags. The canonical image source for any DOCA service container is the public DOCA Container Deployment Guide and the NGC catalog; the agent routes through doca-public-knowledge-map for the current image string and tag rather than quoting one from memory. Inventing an image name (e.g. a fictional nvcr.io/nvidia/doca/<service>:latest) is the load-bearing first-app failure for this skill.
  • Static-pod-manifests-directory path strings, kubelet flag names, and pod-spec field names invented from generic Kubernetes knowledge. Kubelet standalone mode picks pod specs up from the documented directory the BlueField OS / DOCA Container Deployment Guide names. The agent quotes the documented path string, flag name, or field name from the guide; the agent does NOT infer it from upstream Kubernetes prose. When in doubt, route to doca-public-knowledge-map ## DOCA services for the public Container Deployment Guide URL.
  • A samples/, templates/, or reference/ subtree of any kind. A mock or incomplete artifact in this skill's tree, even one labeled "reference", is misleading: operators will read it as production-ready.

Related skills

  • doca-public-knowledge-map — the routing table to the public DOCA Container Deployment Guide (cross-service deployment pattern), the per-service public guides for the in-bundle services (Argus, DMS, Firefly, UROM service), and the NGC catalog. This skill does not duplicate URLs; it points at them and adds the deployment-runtime overlay. See in particular doca-public-knowledge-map ## DOCA services for the per-service URL set and the cross-service Container Deployment Guide row at the bottom of that section.
  • doca-setup — env preparation and install verification on the BlueField target where the DOCA service container will run, including the I have no install yet path via the public NGC DOCA container and the BFB version check. (doca-setup also documents the firmware-slot enable workflow for externally-productized NVIDIA services that emulate a host-facing PCIe device; none of the four in-bundle services need that workflow — see the firmware-slot disclaimer in CAPABILITIES.md ## Capabilities and modes.) This skill assumes its preconditions are satisfied at the BlueField target.
  • doca-version — canonical DOCA version-handling rules. This skill's ## Version compatibility cross-links the four-way match rule plus the container-tag-vs- host-package overlay; the body of those rules lives in doca-version.
  • doca-structured-tools-contract — the bundle's structured-tools precedence rule (detect / prefer / fall back / report). The Command appendix in TASKS.md honors this contract — the agent probes the BlueField container manager's structured status output first and falls back to the documented manual commands when the probe fails.
  • doca-debug — the cross-cutting debug ladder (install / version / build / link / runtime / program / driver). Container-deployment-specific debug (pod never scheduled, image pull failed, ENTRYPOINT exited, volume mount missing, network policy blocking, restart loop) layers on top of the cross-cutting ladder.
  • doca-bare-metal-deployment — the SIBLING deployment path: bare-metal hardware (host x86 OR BlueField Arm direct launch — systemd / tmux / direct invocation, hardware-resource binding, per-tenant isolation, restart discipline). This skill (container deployment) owns the kubelet-standalone + YAML pod-spec path; that skill owns the bare-metal binary-launch path. Both are routed to from doca-setup ## recognize.
  • Per-service skills layered on top of this one (the four DOCA services in the bundle, 1:1 with doca/services/): doca-argus (runtime security / monitoring), doca-dms (DOCA Management Service — gNMI / gNOI), doca-firefly (PTP time sync), doca-urom-svc (Unified Communication Remote Memory Operations). Each of those skills shares this skill's deployment runtime and adds its own config schema, paired-workload contract, and "healthy" definition. The cross-service generalization rule is "every DOCA service in the bundle uses this deployment runtime — the per-service skill is the overlay, not a re-statement of the runtime".
  • Non-goals (externally-productized NVIDIA services not in the DOCA monorepo and therefore not in this bundle): BlueMan, HBN, SNAP, Virtio-net, DOCA Telemetry Service (as productized), and any future external NVIDIA networking software not under doca/services/. A user asking "how do I deploy BlueMan?" is routed to the public NVIDIA docs at docs.nvidia.com/doca/sdk/ for that specific product, NOT silently extrapolated from this skill's contract. The strict-to-DOCA invariant is documented at AGENTS.md ## Non-goals row 7.
  • doca-programming-guide — general DOCA patterns. Container-deployment is service-shaped not library-shaped, so the build / modify / first-app pattern there does not apply directly, but the cross-library debug discipline (frontend-before-backend, env-before-program) remains useful when a service container surfaces an error that originated in a DOCA library it called.

Source: SKILL.md on GitHub

No alerts2mo3 checks · Risk SAFE
  • Gen Agent Trust Hub2mo

    The skill provides guidance for deploying DOCA service containers on BlueField DPUs using kubelet standalone mode. It emphasizes safety through a 'smoke before bulk' approach and strictly following official NVIDIA documentation to avoid configuration errors. No malicious patterns, obfuscation, or unauthorized data access were detected.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: LOW · No issues

Signed by skilld at a5736e4. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 months ago
metadata
{
  "kind": "library"
}
Other metadata
compatibility
No DOCA install required to read this skill (it is an overlay loaded against any DOCA artifact skill); the validation steps within DO require a live DOCA install at /opt/mellanox/doca.

README badge

README badge for nvidia/skills/doca-container-deployment