Open Aleqpeia opened 1 day ago
Hardware info
{
// **Terraform Workspaces** necessary field and
"workspaces": [
"testing",
"development",
"production",
// optional fields, in scope of * can be some tag or hostname
"*-dev",
"*-prod",
],
// **flags and inputs under them** optional field and its variable
"incus-setting": {
"storage-backend": "btrfs",
"storage-create-loop": "96"
},
// **Distributed Replicated Block Device** optional field and its variable
"drbdDevices": {
"volume 0": {
"nfs1": "/dev/sdb",
"nfs2": "/dev/nvme1n1"
}
},
"${tag}": {
"primary": {
"cpu_bender": "intel", // or amd but it's better stick to intel, also it will be default
"hostname": "nixos", // and its default value
"ipv4_address": "228.13.37.255",
"mac_address": "",
"system": "x86_64-linux", // we can use aarch64 too
"group": "node",
"user": "${username}"
},
// **Rescue Images Group** and two default variables in this group
"netboot": {
"cpu_bender": "",
"hostname": "nixos",
"ipv4_address": "",
"system": "x86_64-linux",
"group": "liveimg",
"user": "nixos"
},
"livecd": {
"cpu_bender": "",
"hostname": "nixos",
"ipv4_address": "",
"system": "x86_64-linux",
"group": "liveimg",
"user": "nixos"
}
}
}
Thats config.json and its types produced by nixmesh
https://clan.lol/blog/json-schema-converter/ Also we can try it out below is facter.json which contains machine-bound and fine-grained information
{
"version": 2, // Used to track major breaking changes in the report format.
"system": "x86_64-linux", // Architecture of the target machine says authors of nixos-facter and this is source for my "system" type
"virtualisation": "incus", // Indicates whether the report was generated inside a virtualised environment, and if so, what type.
"hardware": { // All the various bits of hardware that could be detected.
"bios": { ... },
"bluetooth": [ ... ],
"bridge": [ ... ],
"chip_card": [ ... ] ,
"cpu": [ ... ],
"disk": [ ... ],
"graphics_card": [ ... ],
"hub": [ ... ],
"keyboard": [ ... ],
"memory": [ ... ],
"monitor": [ ... ],
"mouse": [ ... ],
"network_controller": [ ... ],
"network_interface": [ ... ],
"sound": [ ... ],
"storage_controller": [ ... ],
"system": [ ... ],
"unknown": [ ... ],
"usb_controller": [ ... ]
},
"smbios": { // [System Management BIOS](https://wiki.osdev.org/System_Management_BIOS) information if available.
"bios": { ... },
"board": { ... },
"cache": [ ... ],
"chassis": { ... },
"config": { ... },
"language": { ... },
"memory_array": [ ... ],
"memory_array_mapped_address": [ ... ],
"memory_device": [ ... ],
"memory_device_mapped_address": [ ... ],
"memory_error": [ ... ],
"onboard": [ ... ],
"port_connector": [ ... ],
"processor": [ ... ],
"slot": [ ... ],
"system": { ... }
}
}
specify cluster configuration/state attributes which we need to resolve for client side