HashiCorp Nomad · VS Code

Nomad Lens

Le operazioni Nomad dove già scrivi i tuoi job spec: explorer, plan diff, log, incident. Zero dipendenze runtime.

0 runtime deps API HTTP Nomad token solo da env MIT
nomad snapshot — prod
# Nomad snapshot — prod
jobs totali : 24  (problemi: 2)
nodi        : 6   (non-ready/drain: 1)
deployments : 3   (non healthy: 1)

## ⚠ Da guardare
| Job        | Stato          | Alloc | Failed |
| packager   | 🟠 degraded    | 2/3   | 1      |
| ingest     | 🟡 pending     | 0/2   | 0      |

$ plan  # diff repo ↔ running, prima di deployare
~ Count: 23
  ~ image: "nginx:1.25""nginx:1.27"

Cosa fa

Sei feature, un pannello. Tutto read-only e sicuro per default.

🗂️

Cluster explorer

Job con health reale — un running con alloc mancanti è degraded — allocation, task, nodi, deployment. Multi-cluster, uno switch.

🔀

Plan diff repo↔running

Apri un .nomad/.hcl e vedi il diff contro il job running prima di deployare. Parse HCL server-side.

📜

Log in streaming

stdout/stderr di qualsiasi task in un Output channel dedicato — streaming, non polling. Più stream affiancati.

🚨

Incident bundle

Un click su un'alloc fallita: cartella incidents/ con report (timeline eventi) e coda dei log allegata.

📸

Cluster snapshot

Report markdown di salute: problemi in cima, tabella completa sotto. Perfetto per il check del mattino.

🔒

Sicuro per default

Token ACL solo da env var, mai in settings/log. Avviso se un token viaggia in chiaro su http.

Installazione

Dal Marketplace (publisher allannava95) o da .vsix.

code --install-extension nomad-lens-<versione>.vsix

Poi configura i cluster in settings.json — il token si legge da una env var, mai salvato:

"nomadLens.clusters": [
  { "name": "dev",  "address": "http://nomad-dev.example:4646" },
  { "name": "prod", "address": "https://nomad.example:4646",
    "namespace": "default", "tokenEnv": "NOMAD_TOKEN_PROD" }
]

La guida d'uso completa copre explorer, plan, log, incident bundle, snapshot, troubleshooting e sicurezza.