Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/Skidbladnir

.nornir/assets/install-matrix.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 860 340" font-family="-apple-system,Segoe UI,Roboto,sans-serif" font-size="13">
  <defs>
    <marker id="a" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto">
      <path d="M0,0 L7,3 L0,6 Z" fill="#555"/>
    </marker>
  </defs>
  <text x="24" y="28" font-weight="700" font-size="16">The install matrix — assert install+start+health as DATA</text>
  <text x="24" y="46" fill="#888" font-size="12" font-style="italic">(OS image × backend × scope) cell → boot KVM → probe → ProbeReport</text>

  <!-- host -->
  <rect x="24" y="66" width="220" height="240" rx="10" fill="none" stroke="#bbb" stroke-dasharray="4 3"/>
  <text x="34" y="84" fill="#888" font-size="11">host (server-side)</text>

  <rect x="40" y="98" width="188" height="46" rx="7" fill="#eef3fb" stroke="#2b5fb3" stroke-width="1.5"/>
  <text x="134" y="118" text-anchor="middle" font-weight="600">run_matrix</text>
  <text x="134" y="134" text-anchor="middle" fill="#555" font-size="10">cartesian, renderer_for filter</text>

  <rect x="40" y="158" width="188" height="46" rx="7" fill="#eefaf0" stroke="#2f8f4e" stroke-width="1.5"/>
  <text x="134" y="178" text-anchor="middle" font-weight="600">FAT images (pure Rust)</text>
  <text x="134" y="194" text-anchor="middle" fill="#555" font-size="10">cidata seed · skiddata payload</text>

  <rect x="40" y="218" width="188" height="46" rx="7" fill="#fdf2ec" stroke="#c26a2b" stroke-width="1.5"/>
  <text x="134" y="238" text-anchor="middle" font-weight="600">sink_results</text>
  <text x="134" y="254" text-anchor="middle" fill="#555" font-size="10">probe_reports.jsonl · airgap_events</text>

  <!-- guest -->
  <rect x="320" y="66" width="300" height="200" rx="10" fill="none" stroke="#c26a2b" stroke-width="1.5" stroke-dasharray="6 4"/>
  <text x="330" y="84" fill="#c26a2b" font-size="11">KVM guest (real init/PID1)</text>

  <rect x="340" y="98" width="260" height="44" rx="7" fill="#eefaf0" stroke="#2f8f4e" stroke-width="1.3"/>
  <text x="470" y="118" text-anchor="middle" font-weight="600">cloud-init: install skidtest</text>
  <text x="470" y="134" text-anchor="middle" fill="#555" font-size="10">write units · run enable/start verbs</text>

  <rect x="340" y="152" width="260" height="44" rx="7" fill="#eef3fb" stroke="#2b5fb3" stroke-width="1.3"/>
  <text x="470" y="172" text-anchor="middle" font-weight="600">skidbladnir-probe (static musl)</text>
  <text x="470" y="188" text-anchor="middle" fill="#555" font-size="10">running? pid? ports? health? logs</text>

  <rect x="340" y="206" width="260" height="44" rx="7" fill="#f6eefb" stroke="#7a3fb3" stroke-width="1.3"/>
  <text x="470" y="226" text-anchor="middle" font-weight="600">ProbeReport (one JSON line)</text>
  <text x="470" y="242" text-anchor="middle" fill="#555" font-size="10">→ /dev/virtio-ports/org.skidbladnir.report</text>

  <!-- ProbeReport out -->
  <rect x="670" y="150" width="166" height="70" rx="8" fill="#fdf2ec" stroke="#c26a2b" stroke-width="1.5"/>
  <text x="753" y="174" text-anchor="middle" font-weight="600">CellResult</text>
  <text x="753" y="192" text-anchor="middle" fill="#555" font-size="11">Passed · Unhealthy</text>
  <text x="753" y="208" text-anchor="middle" fill="#555" font-size="11">NoReport · Skipped</text>

  <path d="M228,121 C270,121 290,110 340,116" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <path d="M228,181 C260,181 300,150 340,132" fill="none" stroke="#2f8f4e" stroke-width="1.5" marker-end="url(#a)"/>
  <path d="M600,228 C640,228 650,200 670,190" fill="none" stroke="#c26a2b" stroke-width="1.5" marker-end="url(#a)"/>
  <path d="M700,220 C640,290 300,290 200,264" fill="none" stroke="#555" stroke-width="1.3" marker-end="url(#a)"/>

  <text x="24" y="326" fill="#888" font-size="11">virtio-serial write-back works under NetMode::Isolated — no NIC, no ssh. Unrendered backends skip honestly (Skipped).</text>
</svg>