Microvms are not persistent #43
@@ -49,4 +49,3 @@ The following example would init and autostart durruti and gitea:
|
|||||||
``` nix
|
``` nix
|
||||||
malobeo.microvm.deployHosts = [ "durruti" "gitea" ];
|
malobeo.microvm.deployHosts = [ "durruti" "gitea" ];
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
20
flake.lock
generated
20
flake.lock
generated
@@ -26,11 +26,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -88,11 +88,11 @@
|
|||||||
"spectrum": "spectrum"
|
"spectrum": "spectrum"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732122592,
|
"lastModified": 1733796600,
|
||||||
"narHash": "sha256-lF54irx92m8ddNDQDtOUjKsZAnsGyPL3QTO7byjlxNg=",
|
"narHash": "sha256-scaQMTs4NnGkd9SZWROr5m0vOZIIhRkk5N7Q+S9zhXQ=",
|
||||||
"owner": "astro",
|
"owner": "astro",
|
||||||
"repo": "microvm.nix",
|
"repo": "microvm.nix",
|
||||||
"rev": "19650774c23df84d0b8f315d2527274563497cad",
|
"rev": "e08aed6e3a32e47e21e57bd2791326ea3f7647be",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -239,11 +239,11 @@
|
|||||||
"spectrum": {
|
"spectrum": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1729945407,
|
"lastModified": 1733308308,
|
||||||
"narHash": "sha256-iGNMamNOAnVTETnIVqDWd6fl74J8fLEi1ejdZiNjEtY=",
|
"narHash": "sha256-+RcbMAjSxV1wW5UpS9abIG1lFZC8bITPiFIKNnE7RLs=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "f1d94ee7029af18637dbd5fdf4749621533693fa",
|
"rev": "80c9e9830d460c944c8f730065f18bb733bc7ee2",
|
||||||
"revCount": 764,
|
"revCount": 792,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://spectrum-os.org/git/spectrum"
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -45,12 +45,32 @@ let
|
|||||||
inputs.microvm.nixosModules.microvm
|
inputs.microvm.nixosModules.microvm
|
||||||
{
|
{
|
||||||
microvm = {
|
microvm = {
|
||||||
hypervisor = "qemu";
|
hypervisor = "cloud-hypervisor";
|
||||||
shares = [ {
|
mem = 2560;
|
||||||
tag = "ro-store";
|
shares = [
|
||||||
source = "/nix/store";
|
{
|
||||||
mountPoint = "/nix/.ro-store";
|
source = "/nix/store";
|
||||||
} ];
|
mountPoint = "/nix/.ro-store";
|
||||||
|
tag = "store";
|
||||||
|
proto = "virtiofs";
|
||||||
|
socket = "store.socket";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = "/var/lib/microvms/${hostName}/etc";
|
||||||
|
mountPoint = "/etc";
|
||||||
|
tag = "etc";
|
||||||
|
proto = "virtiofs";
|
||||||
|
socket = "etc.socket";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = "/var/lib/microvms/${hostName}/var";
|
||||||
|
mountPoint = "/var";
|
||||||
|
tag = "var";
|
||||||
|
proto = "virtiofs";
|
||||||
|
socket = "var.socket";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
interfaces = [
|
interfaces = [
|
||||||
{
|
{
|
||||||
type = "tap";
|
type = "tap";
|
||||||
|
|||||||
24
outputs.nix
24
outputs.nix
@@ -4,6 +4,7 @@
|
|||||||
, nixpkgs-unstable
|
, nixpkgs-unstable
|
||||||
, nixos-generators
|
, nixos-generators
|
||||||
, sops-nix
|
, sops-nix
|
||||||
|
, microvm
|
||||||
, ...
|
, ...
|
||||||
} @inputs:
|
} @inputs:
|
||||||
|
|
||||||
@@ -15,8 +16,27 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems
|
|||||||
pkgs = nixpkgs.legacyPackages."${system}";
|
pkgs = nixpkgs.legacyPackages."${system}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells.default = pkgs.callPackage ./shell.nix {
|
devShells.default =
|
||||||
inherit (sops-nix.packages."${pkgs.system}") sops-import-keys-hook ssh-to-pgp sops-init-gpg-key;
|
let
|
||||||
|
sops = sops-nix.packages."${pkgs.system}";
|
||||||
|
microvmpkg = microvm.packages."${pkgs.system}";
|
||||||
|
in
|
||||||
|
pkgs.mkShell {
|
||||||
|
sopsPGPKeyDirs = [
|
||||||
|
"./machines/secrets/keys/hosts"
|
||||||
|
"./machines/secrets/keys/users"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
sops.ssh-to-pgp
|
||||||
|
sops.sops-import-keys-hook
|
||||||
|
sops.sops-init-gpg-key
|
||||||
|
pkgs.sops
|
||||||
|
pkgs.age
|
||||||
|
pkgs.python310Packages.grip
|
||||||
|
pkgs.mdbook
|
||||||
|
microvmpkg.microvm
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
|
|||||||
24
shell.nix
24
shell.nix
@@ -1,24 +0,0 @@
|
|||||||
{ mkShell
|
|
||||||
, sops-import-keys-hook
|
|
||||||
, ssh-to-pgp
|
|
||||||
, sops-init-gpg-key
|
|
||||||
, sops
|
|
||||||
, pkgs
|
|
||||||
}:
|
|
||||||
|
|
||||||
mkShell {
|
|
||||||
sopsPGPKeyDirs = [
|
|
||||||
"./machines/secrets/keys/hosts"
|
|
||||||
"./machines/secrets/keys/users"
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
ssh-to-pgp
|
|
||||||
sops-import-keys-hook
|
|
||||||
sops-init-gpg-key
|
|
||||||
sops
|
|
||||||
pkgs.age
|
|
||||||
pkgs.python310Packages.grip
|
|
||||||
pkgs.mdbook
|
|
||||||
];
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user