elifsina / keystone

0 stars 0 forks source link

Specify cluster state/config attributes #4

Open Aleqpeia opened 1 day ago

Aleqpeia commented 1 day ago

specify cluster configuration/state attributes which we need to resolve for client side

ellenord commented 1 day ago

Hardware info

Aleqpeia commented 1 day ago
{
  // **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

Aleqpeia commented 1 day ago

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": { ... }
  }
}