-
Notifications
You must be signed in to change notification settings - Fork 51
docs(agents): require split-cluster validation #1003
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ../../ai-tooling/dev/skills/nvcf-self-hosted-local-dev |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ../../ai-tooling/dev/skills/nvcf-self-hosted-local-dev |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ../../ai-tooling/dev/skills/nvcf-self-hosted-local-dev |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| --- | ||
| name: nvcf-self-hosted-local-dev | ||
| description: >- | ||
| Plan and validate local NVCF self-hosted k3d environments with | ||
| topology-aware single-cluster or split-cluster coverage. Use for local QA, | ||
| BDD, worker connectivity, cross-cluster endpoints, request routing, reverse | ||
| tunnels, transport PKI, DNS, or real function invocation. | ||
| license: Apache-2.0 | ||
| compatibility: Requires a local NVCF checkout, Docker, k3d, kubectl, Helm, and access to required NVCF artifacts | ||
| author: "nvcf-core-eng <nvcf-core-eng@exchange.nvidia.com>" | ||
| version: "1.0.0" | ||
| tags: [nvcf, self-hosted, k3d, local-development, testing] | ||
| tools: [Read, Shell] | ||
| metadata: | ||
| internal: false | ||
| author: "nvcf-core-eng <nvcf-core-eng@exchange.nvidia.com>" | ||
| version: "1.0.0" | ||
| tags: [nvcf, self-hosted, k3d, local-development, testing] | ||
| languages: [bash, yaml] | ||
| frameworks: [k3d, kubernetes, helmfile] | ||
| domain: cloud-infrastructure | ||
| --- | ||
|
|
||
| # NVCF Self-Hosted Local Development | ||
|
|
||
| ## Instructions | ||
|
|
||
| Use the smallest topology that can prove the claim. Use one cluster for basic | ||
| installation, rendering, and function lifecycle checks that do not cross a | ||
| cluster boundary. Use separate control-plane and compute-plane clusters for | ||
| worker registration, callbacks, request routing, reverse tunnels, transport | ||
| PKI, DNS, or cross-cluster endpoint changes. A single-cluster pass is | ||
| supplemental for those paths. | ||
|
|
||
| Read the [local development guide](../../../../docs/dev/local-development.md) | ||
| before creating clusters. For CLI-driven split topology, also read the | ||
| [multi-cluster CLI flow](../../../../docs/user/local-development/multi-cluster-cli.md). | ||
|
|
||
| ## Prepare an isolated environment | ||
|
|
||
| 1. Start from a fresh worktree at the target ref. | ||
| 2. Inventory existing clusters, contexts, ports, tools, and local artifacts. | ||
| 3. Ask before deleting shared state. Prefer fresh task-owned clusters. | ||
| 4. Use unique cluster names, ports, kubeconfigs, Helmfile environments, CLI | ||
| configs, secrets files, and evidence directories. | ||
| 5. Record the target commit and tool versions before installation. | ||
|
|
||
| ## Validate current behavior | ||
|
|
||
| Test the target code before applying aliases, routes, insecure transport, or | ||
| other workarounds. For a topology-sensitive claim: | ||
|
|
||
| 1. Install the control plane in one cluster and register a separate compute | ||
| cluster. | ||
| 2. Probe worker-facing DNS names and ports from the compute cluster. A | ||
| control-plane `*.svc.cluster.local` name does not cross cluster boundaries | ||
| unless the topology creates a compute-cluster alias or route for it. | ||
| 3. Launch a real worker in the compute cluster. | ||
| 4. Send at least one end-to-end invocation through the control plane and | ||
| validate the response. | ||
|
|
||
| One successful invocation is enough for light verification. Installation, | ||
| registration, ready pods, or rendered values alone do not prove worker | ||
| traffic. | ||
|
|
||
| ## Capture failure evidence | ||
|
|
||
| If the invocation fails, identify the first broken hop. Capture bounded pod | ||
| logs, events, endpoint and DNS probes, transport trust state, and relevant | ||
| resource summaries from both clusters. Do not capture credentials, tokens, or | ||
| private keys. | ||
|
Comment on lines
+68
to
+71
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win Redact user data before collecting evidence. Bounded pod logs, events, and probes can contain full request bodies or user identifiers. The current rule excludes credentials, tokens, and private keys, but it does not require redaction of full request bodies containing user data. Add an explicit redaction or omission rule before evidence is saved or reported. As per coding guidelines, do not log secrets, tokens, credentials, or full request bodies containing user data. 🧰 Tools🪛 SkillSpector (2.5.1)[error] 44: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts. Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths. (Privilege Escalation (PE3)) [error] 74: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts. Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths. (Privilege Escalation (PE3)) 🤖 Prompt for AI AgentsSource: Coding guidelines |
||
|
|
||
| Keep failed clusters running when debugging is requested. Report cluster | ||
| names, kubeconfig paths, exposed endpoints, evidence locations, and exact | ||
| reattachment commands. Do not clean up until the user approves it. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Add the required CLI skill sections and command examples.
Because this skill documents Shell/CLI-driven workflows, organize the procedure under
Before You Start,Core Commands,Examples, andAdditional Resources. Add concrete safe command examples. The current file has numbered procedures and links, but it does not have the required headings or command examples.As per coding guidelines, CLI skills must include these four sections, and public skills must include step-by-step instructions, command examples, and common edge cases.
🧰 Tools
🪛 SkillSpector (2.5.1)
[error] 44: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
(Privilege Escalation (PE3))
[error] 74: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
(Privilege Escalation (PE3))
🤖 Prompt for AI Agents
Source: Coding guidelines