DevTools Logo
All posts

K8s Routes, Nomad Moves, Transcripts & Prompt Defense

September 5, 2026 · DevTools

kubernetes
nomad
transcripts
prompt-injection
ai

Ingress YAML nobody can picture, a Nomad fleet bound for Kubernetes, transcripts full of repeated filler, and a system prompt facing hostile users — four texts too dense to reason about raw. These tools make them legible: the K8s Ingress Route Visualizer, Nomad to Kubernetes Converter, Whisper Transcript Cleaner, Prompt Injection Sandbox, and Function Calling Schema Generator.

See every host, path, and TLS secret at a glance

analyzeKubernetesIngress parses Ingress plus optional Service documents and returns structured routes — host, path, path type, service name, port, and the TLS secret covering that host — alongside warnings and a deterministic Mermaid flowchart. TLS labels come from spec.tls, so uncovered hosts show up bare and routes pointing at missing services are flagged instead of silently rendering.

Warnings name missing paths, services, and ports; unspecified path types appear in the route table plus a parsed-document count. Read the graph left to right: host with TLS label, path with match type, backend service and port. When platform teams ask for a routing review, this output is the review.

Move Nomad jobs without rewriting them by hand

convertNomadToKubernetes parses job, group, task, config, resources, network, port, service, and env blocks from HCL and emits a Kubernetes Deployment plus Service manifests. Group count becomes replicas, CPU maps to millicore limits, memory maps to mebibyte limits, and images, ports, and environment carry across into container specs:

spec:
  replicas: 3            # from group count
  template:
    spec:
      containers:
        - resources:
            limits:
              cpu: "500m"      # from resources.cpu
              memory: "256Mi"  # from resources.memory

Anything that cannot travel — non-Docker drivers, Vault and Consul stanzas, templates — surfaces as explicit warnings. That list is your migration backlog: each entry names what to reimplement natively, such as external secrets. Migrate stateless services first, then work the warnings down.

Clean transcripts, harden prompts, ship tool schemas

cleanWhisperTranscript detects plain text, SRT, and VTT automatically, strips filler words, collapses consecutive repeated words, and removes the generic repeated sentences Whisper hallucinates during silence — while preserving and validating subtitle timestamps. Every edit is logged as a typed finding (duplicate, filler, hallucination, or timestamp) with line numbers, so nothing disappears without a receipt.

The Prompt Injection Sandbox tests a system prompt against five attack families — instruction override, system prompt extraction, DAN-style jailbreak personas, role and authority confusion, and base64-encoded payloads, which are decoded and re-tested so obfuscation buys the attacker nothing. Each scenario reports detected or clear with its covering defense rules; the five hardening rules ship with deployable regexes: untrusted user content, no system disclosure, no persona switches, no asserted authority, decode-then-inspect encodings.

Finally, generateFunctionCallingSchema compiles a TypeScript interface into provider-ready tool definitions — OpenAI with strict: true, Anthropic with input_schema, or Gemini — inferring required from optionality markers so name: string is required and nick?: string is not. Write the interface once, ship correct schemas to every provider.

Try Them