Phase 1 of observability plan: mapped the complete OVN topology at logical (NB), physical (SB), and OVS layers. Traced packet path from LAN through VIP LB to HAProxy backends. Documented naming conventions, gateway failover, Geneve tunnels, and MTU implications. Deliverables: - notes/ovn-deep-dive.md: comprehensive OVN internals guide - incusos/helpers/ovn-inspect: --nb/--sb/--ovs/--full/--trace actions - .claude/rules/ovn-internals.md: context for AI assistants Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| ansible | ||
| incusos | ||
| notes | ||
| .gitignore | ||
| .mcp.json | ||
| CLAUDE.md | ||
| README.md | ||
README.md
incu-contrib
Peripheral tools, snippets, and scripts for working with Incus, IncusOS, and the broader ecosystem.
Primarily aimed at home lab environments but useful in production as well.
Contents
incusos/
Scripts for building IncusOS installation media and seed configurations:
-
incusos-iso-- Build customized IncusOS ISO/IMG images using the official flasher-tool. Supports both architectures (x86_64, aarch64), multiple applications (Incus, Operations Center), automatic client certificate injection, and batch generation. -
incusos-seed-- Generate IncusOS seed archives (tar or FAT image) for installation customization. Covers all seed file types: install, applications, Incus preseed, Operations Center, network, and update configuration. -
incusos-proxmox-- Declarative IncusOS deployment on Proxmox VE. Define VMs in YAML, and the script handles seed generation, ISO upload, VM creation with correct settings (UEFI, TPM 2.0, VirtIO-SCSI), and automated installation. -
deploy-awx-- Deploy and manage AWX (Ansible automation) on the Incus cluster. Handles VM creation, K3s install, AWX Operator deployment, project/template configuration, and Aether integration.
See incusos/README.md for full documentation.
ansible/
Ansible playbooks for AWX/Aether lifecycle hooks. Playbooks use the Incus REST API (not SSH) for all instance operations — works regardless of network topology.
playbooks/post-deploy.yml-- Runs after Aether creates an instance. Configures hostname, installs base packages, sets timezone, logs deployment.playbooks/decommission.yml-- Runs before Aether deletes an instance. Graceful service shutdown and decommission logging (best-effort).
notes/
Guides and reference material (roughly in learning order):
clustering-guide.md-- Detailed Incus clustering walkthrough (manual cluster formation via remotes).operations-center-guide.md-- Operations Center provisioning, cluster management, and tested limitations.networking-guide.md-- OVN overlay networking tutorial (bridge + OVN + LAN access).shared-storage-guide.md-- iSCSI + lvmcluster shared storage for instant migration.production-lab-guide.md-- Manual cluster + OVN + HA workloads (validated end-to-end).migration-guide.md-- Migration paths into Incus from Proxmox, UTM, VMware Fusion, and Docker.aether-guide.md-- Aether management platform: deployment, instance/blueprint lifecycle, API reference, OVN recovery, and node resizing.awx-guide.md-- AWX deployment, Aether integration, Ansible playbook patterns, and the deploy-awx management script.incus-version-compatibility.md-- Incus package versions across platforms and install instructions.utm-support.md-- Design document for future UTM support on macOS.
Quick Start
# Install the flasher-tool (requires Go 1.22+)
go install github.com/lxc/incus-os/incus-osd/cmd/flasher-tool@latest
# Build a default IncusOS ISO with your client cert injected
./incusos/incusos-iso
# Build for a specific architecture and application
./incusos/incusos-iso --arch aarch64 --app operations-center --defaults
# Generate all common ISO variants at once
./incusos/incusos-iso --batch
# Generate a standalone seed archive
./incusos/incusos-seed --app incus --defaults --output my-seed.tar
# Generate a SEED_DATA FAT image for external boot media
./incusos/incusos-seed --format fat --app incus --defaults --output seed.img
Requirements
- Go 1.22+ -- for installing the flasher-tool
- curl -- for downloading images from the CDN
- tar, gzip -- for seed archive creation and image decompression
- Incus client (recommended) -- for automatic client certificate detection. Works with any version; certificates are read directly from disk. See version compatibility notes for install instructions per platform (macOS, Debian/Ubuntu, Arch).
- mtools (optional) -- for creating FAT seed images
License
MIT