🔥
This commit is contained in:
parent
e61be4a176
commit
78c6c5b26b
15 changed files with 142 additions and 38 deletions
13
.editorconfig
Normal file
13
.editorconfig
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# EditorConfig is awesome: https://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
[*.nix]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -1,5 +1,7 @@
|
||||||
# Created by https://www.toptal.com/developers/gitignore/api/windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all,nix
|
result
|
||||||
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all,nix
|
|
||||||
|
# Created by https://www.toptal.com/developers/gitignore/api/windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all
|
||||||
|
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all
|
||||||
|
|
||||||
### direnv ###
|
### direnv ###
|
||||||
.direnv
|
.direnv
|
||||||
|
|
@ -190,8 +192,6 @@ Temporary Items
|
||||||
# iCloud generated files
|
# iCloud generated files
|
||||||
*.icloud
|
*.icloud
|
||||||
|
|
||||||
#!! ERROR: nix is undefined. Use list command to see defined gitignore types !!#
|
|
||||||
|
|
||||||
### Vim ###
|
### Vim ###
|
||||||
# Swap
|
# Swap
|
||||||
[._]*.s[a-v][a-z]
|
[._]*.s[a-v][a-z]
|
||||||
|
|
@ -257,4 +257,4 @@ $RECYCLE.BIN/
|
||||||
# Windows shortcuts
|
# Windows shortcuts
|
||||||
*.lnk
|
*.lnk
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all,nix
|
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos,direnv,vim,emacs,visualstudiocode,jetbrains+all
|
||||||
|
|
|
||||||
9
apps.nix
Normal file
9
apps.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs, pkgs-k8s, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
mkApp = {};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
28
flake.lock
generated
28
flake.lock
generated
|
|
@ -1,5 +1,24 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"NixVirt": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748140003,
|
||||||
|
"narHash": "sha256-DNBZmuk1YRM2PmwbHzVdXumRjCUzQkMarg4iI/37rOQ=",
|
||||||
|
"rev": "5dfe108fd859b122f9a96981cb6bc12297653d6c",
|
||||||
|
"revCount": 407,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/AshleyYakeley/NixVirt/0.6.0/0197059a-e45f-7446-86b5-411ccc894ab0/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/AshleyYakeley/NixVirt/%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
"agenix": {
|
"agenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
|
|
@ -102,22 +121,23 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-k8s": {
|
"nixpkgs-k8s": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1763378238,
|
"lastModified": 1765836122,
|
||||||
"narHash": "sha256-Q0rIDYv83RF5o5cm+JMCDAkWByNk8HMGgFDHjDTQc/I=",
|
"narHash": "sha256-L6UU7Q/EWQWLrH6yzOrOrW8zWeK9RKP0EKNeaBgRzr8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c05d8d4121d466c8a57b81130ba8ae7551d4f769",
|
"rev": "771c08bfa8c7da5ab251a1d0d56fb01948f45473",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c05d8d4121d466c8a57b81130ba8ae7551d4f769",
|
"rev": "771c08bfa8c7da5ab251a1d0d56fb01948f45473",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"NixVirt": "NixVirt",
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@
|
||||||
url = "github:ryantm/agenix";
|
url = "github:ryantm/agenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
NixVirt = {
|
||||||
|
url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
# k8nix = {
|
# k8nix = {
|
||||||
# url = "gitlab:luxzeitlos/k8nix/develop";
|
# url = "gitlab:luxzeitlos/k8nix/develop";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -20,6 +24,7 @@
|
||||||
nixpkgs-k8s,
|
nixpkgs-k8s,
|
||||||
flake-utils,
|
flake-utils,
|
||||||
agenix,
|
agenix,
|
||||||
|
NixVirt,
|
||||||
# k8nix,
|
# k8nix,
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
|
@ -33,6 +38,7 @@
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
formatter = pkgs.nixfmt-tree;
|
formatter = pkgs.nixfmt-tree;
|
||||||
|
#apps = (import ./apps.nix pkgs pkgs-k8s);
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
agenix.packages.${system}.default
|
agenix.packages.${system}.default
|
||||||
|
|
|
||||||
45
hosts/common.nix
Normal file
45
hosts/common.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [ "ahci" "xhci_pci" "ehci_pci" "megaraid_sas" "nvme" "usbhid" "usb_storage" "sd_mod" "sr_mod" ];
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-label/ROOT";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "discard" "noatime" ];
|
||||||
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-label/BOOT";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" "discard" "noatime" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
useXkbConfig= true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
git
|
||||||
|
];
|
||||||
|
|
||||||
|
system.stateVersion = "25.11";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
kernelPakcages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
swraid = {
|
swraid = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mdadmConf = ''
|
mdadmConf = ''
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
useEFIBoot = true;
|
#useEFIBoot = true;
|
||||||
libvirtd = {
|
libvirtd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nss.enableGuest = true;
|
nss.enableGuest = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
./hardware.nix
|
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./programs.nix
|
./programs.nix
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{}:
|
|
||||||
|
|
||||||
{
|
|
||||||
boot = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -10,19 +10,20 @@
|
||||||
nftables.enable = true;
|
nftables.enable = true;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
nameservers = [
|
nameservers = [
|
||||||
|
"2606:4700:4700::1111#one.one.one.one"
|
||||||
|
"2620:fe::fe#dns.quad9.net"
|
||||||
"1.1.1.1#one.one.one.one"
|
"1.1.1.1#one.one.one.one"
|
||||||
"9.9.9.9"
|
"9.9.9.9#dns.quad9.net"
|
||||||
];
|
];
|
||||||
defaultGateway = {
|
defaultGateway = {
|
||||||
address = "217.115.0.182";
|
address = "217.115.0.182";
|
||||||
interface = "eno3";
|
interface = "eno3";
|
||||||
};
|
};
|
||||||
interface.eno3 = {
|
interfaces.eno3 = {
|
||||||
|
ipv6.addresses = [{ address = "2a00:1328:e100:1::6d"; prefixLength = 127; }];
|
||||||
ipv4.addresses = [{ address = "217.115.0.183"; prefixLength = 31; }];
|
ipv4.addresses = [{ address = "217.115.0.183"; prefixLength = 31; }];
|
||||||
};
|
};
|
||||||
firewall = {
|
firewall.enable = true;
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
|
|
@ -7,11 +7,21 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
};
|
};
|
||||||
|
htop = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
highlight_base_name = true;
|
||||||
|
show_cpu_frequency = true;
|
||||||
|
show_cpu_temperature = true;
|
||||||
|
update_process_names = true;
|
||||||
|
color_scheme = "6";
|
||||||
|
};
|
||||||
|
};
|
||||||
tmux = {
|
tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
terminal = "screen-256color";
|
terminal = "screen-256color";
|
||||||
shortcut = "a";
|
shortcut = "a";
|
||||||
plugins = with pkgs.tmuxPlugins; [];
|
plugins = with pkgs.tmuxPlugins; [ sensible ];
|
||||||
newSession = true;
|
newSession = true;
|
||||||
historyLimit = 10000;
|
historyLimit = 10000;
|
||||||
clock24 = true;
|
clock24 = true;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
ports = [ 10022 ];
|
ports = [ 10022 ];
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
PrintMotd = true;
|
|
||||||
banner = ''
|
banner = ''
|
||||||
__ __ __
|
__ __ __
|
||||||
/'__`\ /\ \ /'_ `\
|
/'__`\ /\ \ /'_ `\
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,20 @@
|
||||||
{
|
{
|
||||||
users.users.xengi = {
|
users.users.xengi = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" "libvirtd" ];
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
fastfetch
|
fastfetch
|
||||||
kitty
|
kitty # for terminfo
|
||||||
];
|
];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMPtGqhV7io3mhIoZho4Yf7eCo0sUZvjT2NziM2PkXSo"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICW1+Ml8R9x1LCJaZ8bIZ1qIV4HCuZ6x7DziFW+0Nn5T xengi@kanae_2022-12-09"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICjv9W8WXq9QGkgmANNPQR24/I1Pm1ghxNIHftEI+jlZ"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmb+mJfo84IagUaRoDEqY9ROjjQUOQ7tMclpN6NDPrX xengi@kota_2022-01-16"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICyklb7dvEHH0VBEMmTUQFKHN6ekBQqkDKj09+EilUIQ"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICyklb7dvEHH0VBEMmTUQFKHN6ekBQqkDKj09+EilUIQ xengi@lucy_2018-09-08"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICjv9W8WXq9QGkgmANNPQR24/I1Pm1ghxNIHftEI+jlZ xengi@mayu_2021-06-11"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGhyfD+8jMl6FDSADb11sfAsJk0KNoVzjjiDRZjUOtmf xengi@nana_2019-08-16"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMPtGqhV7io3mhIoZho4Yf7eCo0sUZvjT2NziM2PkXSo xengi@nyu_2017-10-11"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILwYcSxbP6Hon//kZFIZJSHdqvsJ6AyCwH4JP9/t4q46 xengi@yuka_2020-12-16"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ nixpkgs, agenix, ... }:
|
{ nixpkgs, agenix, NixVirt, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
@ -21,6 +21,7 @@ let
|
||||||
#};
|
#};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
./hosts/common.nix
|
||||||
];
|
];
|
||||||
mkSystem =
|
mkSystem =
|
||||||
extraModules:
|
extraModules:
|
||||||
|
|
@ -30,7 +31,7 @@ let
|
||||||
};
|
};
|
||||||
mkControlPlaneNode =
|
mkControlPlaneNode =
|
||||||
extraModules:
|
extraModules:
|
||||||
mkSystem [
|
mkSystem ([
|
||||||
#./services/etcd.nix
|
#./services/etcd.nix
|
||||||
#./services/k8s.nix
|
#./services/k8s.nix
|
||||||
#./services/k8s-apiserver.nix
|
#./services/k8s-apiserver.nix
|
||||||
|
|
@ -39,20 +40,21 @@ let
|
||||||
#./services/k8s-proxy.nix
|
#./services/k8s-proxy.nix
|
||||||
#./services/k8s-scheduler.nix
|
#./services/k8s-scheduler.nix
|
||||||
]
|
]
|
||||||
++ extraModules;
|
++ extraModules);
|
||||||
mkWorkerNode =
|
mkWorkerNode =
|
||||||
extraModules:
|
extraModules:
|
||||||
mkSystem [
|
mkSystem ([
|
||||||
#./services/k8s.nix
|
#./services/k8s.nix
|
||||||
#./services/k8s-kubelet.nix
|
#./services/k8s-kubelet.nix
|
||||||
#./services/k8s-proxy.nix
|
#./services/k8s-proxy.nix
|
||||||
]
|
]
|
||||||
++ extraModules;
|
++ extraModules);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"kaede" = nixpkgs.lib.nixosSystem {
|
"kaede" = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
|
NixVirt.nixosModules.default
|
||||||
./hosts/kaede
|
./hosts/kaede
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
services.etcd = {
|
services.etcd = {
|
||||||
enable = true
|
enable = true;
|
||||||
package = pkgs.etcd_3_6;
|
package = pkgs.etcd_3_6;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue