kubernetes vm building

This commit is contained in:
BOTAlex 2026-01-24 16:43:58 +01:00
parent 4e2d73d546
commit 376912c631
15 changed files with 319 additions and 15 deletions

View file

@ -8,6 +8,8 @@
};
};
nix.settings.trusted-users = [ "root" "botserver" ];
imports = [ ./../networking/networkSetup.nix ];
services.caddy = {

24
modules/getNvim.nix Normal file
View file

@ -0,0 +1,24 @@
{ pkgs, ... }: {
environment.systemPackages = [
(pkgs.writeShellScriptBin "get-nvim" ''
set -e
# 1. Define Variables
NVIM_CONFIG_DIR="$HOME/.config/nvim"
REPO_URL="https://github.com/MagicBOTAlex/NVimConfigs"
# 2. Delete Existing Config
if [ -d "$NVIM_CONFIG_DIR" ]; then
echo "🗑 Deleting existing Neovim configuration at $NVIM_CONFIG_DIR..."
rm -rf "$NVIM_CONFIG_DIR"
fi
# 3. Clone Fresh
echo " Cloning new Neovim Configs..."
git clone "$REPO_URL" "$NVIM_CONFIG_DIR"
echo " Done!"
'')
];
}

View file

@ -1,61 +0,0 @@
{ pkgs, ... }:
let
kubeMasterIP = "37.49.130.171";
kubeMasterHostname = "polycule.deprived";
kubeMasterAPIServerPort = 6443;
in {
nixpkgs.overlays = [
(final: prev: {
containerd = prev.containerd.overrideAttrs rec {
version = "1.7.29";
src = final.fetchFromGitHub {
owner = "containerd";
repo = "containerd";
rev = "v${version}";
sha256 = "sha256-aR0i+0v2t6vyI+QN30P1+t+pHU2Bw7/XPUYLjJm1rhw=";
};
installTargets = [ "install" ];
outputs = [ "out" ];
};
})
];
virtualisation.containerd.enable = true;
environment.systemPackages = with pkgs; [ kompose kubectl kubernetes argocd ];
networking.useNetworkd = true;
networking.extraHosts = "${kubeMasterIP} ${kubeMasterHostname}";
services.kubernetes = let
api = "https://${kubeMasterHostname}:${toString kubeMasterAPIServerPort}";
in {
roles = [ "node" ];
masterAddress = kubeMasterHostname;
easyCerts = true;
# point kubelet and other services to kube-apiserver
kubelet.kubeconfig.server = api;
apiserverAddress = api;
# use coredns
addons.dns.enable = true;
# needed if you use swap
kubelet.extraOpts = "--fail-swap-on=false";
};
systemd.services."forward-argocd" = {
enable = true;
description =
"forwards argocd running on kubernetes to argocd.spoodythe.one";
after = [ "network-online.target" "kubelet.service" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
script = ''
${pkgs.kubernetes}/bin/kubectl port-forward svc/argocd-server -n argocd 4325:80 || true
'';
serviceConfig = { User = "botserver"; };
};
}

24
modules/oscd.nix Normal file
View file

@ -0,0 +1,24 @@
{ config, pkgs, lib, ... }:
let
oscd = pkgs.rustPlatform.buildRustPackage rec {
pname = "oscd";
version = "0.1.10";
src = pkgs.fetchCrate {
inherit pname version;
hash = "sha256-PMn7PB7Mt+YrpV0bohTIAVvBOZMigV7WdJjwNEGpbgs=";
};
cargoHash = "sha256-K6eyRyBdab3/7024LNTh5SETH1gMZjB9viFzzWLdYBc=";
meta = with lib; {
description = "OSC debugger (CLI)";
homepage = "https://crates.io/crates/oscd";
license = licenses.mit;
maintainers = with maintainers; [ ];
platforms = platforms.all;
};
};
in
{ environment.systemPackages = with pkgs; [ oscd ]; }