Skip to content

Commit dedf419

Browse files
committed
chopper: add kube0 microvm
1 parent fd332da commit dedf419

File tree

5 files changed

+147
-1
lines changed

5 files changed

+147
-1
lines changed

flake.lock

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
url = "github:devusb/pingshutdown";
4242
inputs.nixpkgs.follows = "nixpkgs";
4343
};
44+
microvm = {
45+
url = "github:astro/microvm.nix";
46+
inputs.nixpkgs.follows = "nixpkgs";
47+
};
4448
};
4549

4650
outputs = { self, nixpkgs, nix-packages, nixos-generators, flake-parts, sops-nix, impermanence, blocky-tailscale, disko, colmena, buildbot-nix, pingshutdown, ... }@inputs:

hosts/chopper/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ in
4242
../common/builder.nix
4343
./paperless.nix
4444
./glance.nix
45-
./buildbot.nix
45+
./microvm.nix
4646
];
4747

4848
boot.loader.systemd-boot.enable = true;

hosts/chopper/microvm.nix

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{ inputs, ... }: {
2+
imports = [
3+
inputs.microvm.nixosModules.host
4+
];
5+
6+
microvm = {
7+
vms = {
8+
kube0.config = import ./vms/kube0.nix;
9+
};
10+
};
11+
12+
}

hosts/chopper/vms/kube0.nix

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{ pkgs, lib, ... }: {
2+
microvm = {
3+
mem = 8192;
4+
vcpu = 4;
5+
interfaces = [{
6+
type = "tap";
7+
id = "vm-kube0";
8+
mac = "02:00:00:00:00:01";
9+
}];
10+
shares = [
11+
{
12+
tag = "ro-store";
13+
source = "/nix/store";
14+
mountPoint = "/nix/.ro-store";
15+
}
16+
# {
17+
# tag = "etc";
18+
# source = "/var/lib/microvm/kube0/shares/etc";
19+
# mountPoint = "/etc";
20+
# socket = "etc.socket";
21+
# proto = "virtiofs";
22+
# }
23+
];
24+
};
25+
26+
users.users.mhelton = {
27+
isNormalUser = true;
28+
extraGroups = [ "wheel" "networkmanager" ];
29+
};
30+
users.users.mhelton.openssh.authorizedKeys.keys = [
31+
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHD+tZ4hf4MhEW+akoZbXPN3Zi4cijSkQlX6bZlnV+Aq mhelton@gmail.com"
32+
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5rmy7r//z1fARqDe6sIu5D4Nt5uD3rRvwtADDgb+sS6slv6I51Gm2rKcxDIHgYBSyhTDIuhNHlnn+cyJK4ZPxyZFxF0Vy0fZIFG3Y7AqkyQ0oXEDGYyqfL8U0mi0uGKmVW02T45w16REJG3x77uncw8VVxdEpKuYw+wk7uRlQpP/UiFYWsX4NS9rUS/aZrYZ2ys1/dCPqvz4KPXk7SZrqyqkiumIr8O0wluYI5FwhMtd3xpD9AQVI3V0zjYZPwesL+BkW4CAAm5dSnsns3haAuWHti/QLSR+90k15KhflXlq6JDzE4jrMbd1DYZqoVuTgoZxDB3HDJwEwpbYCWKLFaGR6ZDhE3NeFikNkdDRrlIcrK1wJCEO2QuDZ43IE/bDhLhOmqfliL6kRr+2G1AvY4Hr0jnJHbbHqN9mES5+VJZuhH2ii+QHS70VZN0NNQv7f0QJqiTVcUVuPXksBp6oojbkXK79CWd1X0u3shd6XinZ5N3KAD4PT8zlTCmglXNYamc1JpRqKzgFwgFcljXpHwtfuezpNVmzo1Vqi6Ib9S8qJi9rahhsafYP3Y+8EV3Ii3oXmGQBSwumAHCQIkiQ/Sc+FRS02GRgWuYOaQfvW99kLXbX+0eCMSdCJSLC+H1cO2b451qpDGGDnH9w+EvS04oyv4yufpwFlhys7qfU6HQ== mhelton@gmail.com"
33+
];
34+
35+
services.openssh = {
36+
enable = true;
37+
settings = {
38+
PermitRootLogin = lib.mkForce "no";
39+
PasswordAuthentication = false;
40+
};
41+
};
42+
43+
networking.firewall.enable = false;
44+
45+
networking.hostName = "kube0";
46+
environment.systemPackages = with pkgs; [
47+
neovim
48+
bottom
49+
];
50+
systemd.network.enable = true;
51+
systemd.network.networks."20-lan" = {
52+
matchConfig.Type = "ether";
53+
networkConfig = {
54+
DHCP = "yes";
55+
};
56+
};
57+
58+
}

0 commit comments

Comments
 (0)