package facts // USBBindTarget captures a bind mount and whether it looked healthy. type USBBindTarget struct { Path string `json:"path,omitempty"` Healthy bool `json:"healthy,omitempty"` } // USBScratch captures the desired scratch-disk configuration plus health. type USBScratch struct { Mountpoint string `json:"mountpoint,omitempty"` UUID string `json:"uuid,omitempty"` Label string `json:"label,omitempty"` FS string `json:"fs,omitempty"` MountHealthy bool `json:"mount_healthy,omitempty"` UUIDHealthy bool `json:"uuid_healthy,omitempty"` LabelHealthy bool `json:"label_healthy,omitempty"` BindTargets []USBBindTarget `json:"bind_targets,omitempty"` BindHealthy bool `json:"bind_healthy,omitempty"` } // ClassFacts captures driftable state collected by metis-sentinel. type ClassFacts struct { ClassName string `json:"class_name"` Kernel string `json:"kernel,omitempty"` K3sVersion string `json:"k3s_version,omitempty"` Containerd string `json:"containerd,omitempty"` Packages map[string]string `json:"packages,omitempty"` // name -> version DropIns map[string]string `json:"dropins,omitempty"` // path -> content Sysctl map[string]string `json:"sysctl,omitempty"` // key -> value CGroupConfig map[string]string `json:"cgroup_config,omitempty"` // key -> value USBMountHealth map[string]int `json:"usb_mount_health,omitempty"` USBUUIDHealth map[string]int `json:"usb_uuid_health,omitempty"` USBLabelHealth map[string]int `json:"usb_label_health,omitempty"` USBBindHealth map[string]int `json:"usb_bind_health,omitempty"` Notes string `json:"notes,omitempty"` } // NodeFacts captures per-node data (e.g., disk UUIDs) to verify drift. type NodeFacts struct { Hostname string `json:"hostname"` Disks map[string]string `json:"disks,omitempty"` // mount -> UUID USBScratch *USBScratch `json:"usb_scratch,omitempty"` Notes string `json:"notes,omitempty"` }