Compare commits
	
		
			3 Commits
		
	
	
		
			gitea-vask
			...
			nix-topolo
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b20119ff8d | |||
| 9ad30e9921 | |||
| 9a81d570bb | 
							
								
								
									
										168
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										168
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,5 +1,26 @@ | |||||||
| { | { | ||||||
|   "nodes": { |   "nodes": { | ||||||
|  |     "devshell": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nix-topology", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1728330715, | ||||||
|  |         "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", | ||||||
|  |         "owner": "numtide", | ||||||
|  |         "repo": "devshell", | ||||||
|  |         "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "numtide", | ||||||
|  |         "repo": "devshell", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "disko": { |     "disko": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @@ -20,6 +41,40 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "flake-compat": { | ||||||
|  |       "flake": false, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1696426674, | ||||||
|  |         "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", | ||||||
|  |         "owner": "edolstra", | ||||||
|  |         "repo": "flake-compat", | ||||||
|  |         "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "edolstra", | ||||||
|  |         "repo": "flake-compat", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "flake-utils": { | ||||||
|  |       "inputs": { | ||||||
|  |         "systems": "systems" | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1726560853, | ||||||
|  |         "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", | ||||||
|  |         "owner": "numtide", | ||||||
|  |         "repo": "flake-utils", | ||||||
|  |         "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "numtide", | ||||||
|  |         "repo": "flake-utils", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "gergle": { |     "gergle": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @@ -29,17 +84,40 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1736621371, |         "lastModified": 1736621371, | ||||||
|         "narHash": "sha256-45UIQSQA7R5iU4YWvilo7mQbhY1Liql9bHBvYa3qRI0=", |         "narHash": "sha256-45UIQSQA7R5iU4YWvilo7mQbhY1Liql9bHBvYa3qRI0=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "main", | ||||||
|         "rev": "3729796c1213fe76e568ac28f1df8de4e596950b", |         "rev": "3729796c1213fe76e568ac28f1df8de4e596950b", | ||||||
|         "revCount": 20, |         "revCount": 20, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Grzegorz/gergle.git" |         "url": "https://git.pvv.ntnu.no/Grzegorz/gergle.git" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |         "ref": "main", | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Grzegorz/gergle.git" |         "url": "https://git.pvv.ntnu.no/Grzegorz/gergle.git" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "gitignore": { | ||||||
|  |       "inputs": { | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nix-topology", | ||||||
|  |           "pre-commit-hooks", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1709087332, | ||||||
|  |         "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", | ||||||
|  |         "owner": "hercules-ci", | ||||||
|  |         "repo": "gitignore.nix", | ||||||
|  |         "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "hercules-ci", | ||||||
|  |         "repo": "gitignore.nix", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "greg-ng": { |     "greg-ng": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @@ -50,13 +128,14 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1736545379, |         "lastModified": 1736545379, | ||||||
|         "narHash": "sha256-PeTTmGumdOX3rd6OKI7QMCrZovCDkrckZbcHr+znxWA=", |         "narHash": "sha256-PeTTmGumdOX3rd6OKI7QMCrZovCDkrckZbcHr+znxWA=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "main", | ||||||
|         "rev": "74f5316121776db2769385927ec0d0c2cc2b23e4", |         "rev": "74f5316121776db2769385927ec0d0c2cc2b23e4", | ||||||
|         "revCount": 42, |         "revCount": 42, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Grzegorz/greg-ng.git" |         "url": "https://git.pvv.ntnu.no/Grzegorz/greg-ng.git" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |         "ref": "main", | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Grzegorz/greg-ng.git" |         "url": "https://git.pvv.ntnu.no/Grzegorz/greg-ng.git" | ||||||
|       } |       } | ||||||
| @@ -70,7 +149,7 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1736178795, |         "lastModified": 1736178795, | ||||||
|         "narHash": "sha256-mPdi8cgvIDYcgG3FRG7A4BOIMu2Jef96TPMnV00uXlM=", |         "narHash": "sha256-mPdi8cgvIDYcgG3FRG7A4BOIMu2Jef96TPMnV00uXlM=", | ||||||
|         "ref": "refs/heads/master", |         "ref": "master", | ||||||
|         "rev": "fde738910de1fd8293535a6382c2f0c2749dd7c1", |         "rev": "fde738910de1fd8293535a6382c2f0c2749dd7c1", | ||||||
|         "revCount": 79, |         "revCount": 79, | ||||||
|         "type": "git", |         "type": "git", | ||||||
| @@ -106,7 +185,7 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1725277886, |         "lastModified": 1725277886, | ||||||
|         "narHash": "sha256-Fw4VbbE3EfypQWSgPDFfvVH47BHeg3ptsO715NlUM8Q=", |         "narHash": "sha256-Fw4VbbE3EfypQWSgPDFfvVH47BHeg3ptsO715NlUM8Q=", | ||||||
|         "ref": "refs/heads/master", |         "ref": "master", | ||||||
|         "rev": "1b4087bd3322a2e2ba84271c8fcc013e6b641a58", |         "rev": "1b4087bd3322a2e2ba84271c8fcc013e6b641a58", | ||||||
|         "revCount": 2, |         "revCount": 2, | ||||||
|         "type": "git", |         "type": "git", | ||||||
| @@ -126,17 +205,41 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1736531400, |         "lastModified": 1736531400, | ||||||
|         "narHash": "sha256-+X/HVI1AwoPcud28wI35XRrc1kDgkYdDUGABJBAkxDI=", |         "narHash": "sha256-+X/HVI1AwoPcud28wI35XRrc1kDgkYdDUGABJBAkxDI=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "main", | ||||||
|         "rev": "e4dafd06b3d7e9e6e07617766e9c3743134571b7", |         "rev": "e4dafd06b3d7e9e6e07617766e9c3743134571b7", | ||||||
|         "revCount": 7, |         "revCount": 7, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git" |         "url": "https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |         "ref": "main", | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git" |         "url": "https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "nix-topology": { | ||||||
|  |       "inputs": { | ||||||
|  |         "devshell": "devshell", | ||||||
|  |         "flake-utils": "flake-utils", | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "pre-commit-hooks": "pre-commit-hooks" | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1738246091, | ||||||
|  |         "narHash": "sha256-2+KkZsRO+XlOFbXbRgMZbRtlqn5MBNYj4HNmZ/2Tojg=", | ||||||
|  |         "owner": "oddlama", | ||||||
|  |         "repo": "nix-topology", | ||||||
|  |         "rev": "5526269fa3eedf4f4bc00c0bf7a03db31d24b029", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "oddlama", | ||||||
|  |         "repo": "nix-topology", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1741969460, |         "lastModified": 1741969460, | ||||||
| @@ -155,11 +258,11 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs-unstable": { |     "nixpkgs-unstable": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1741960758, |         "lastModified": 1742051767, | ||||||
|         "narHash": "sha256-pSGMbfkxF7TSeco54W+B1q+g22YCVp1qXHgtrdgtyR4=", |         "narHash": "sha256-JpyjnalnIqJ7cvP8HzaoJN9/i2bDx83dToodHHjGuNg=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "845dc1e9cbc2e48640b8968af58b4a19db67aa8f", |         "rev": "ec886d10b507760c90ed01e2eac7f0679d0a47ae", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @@ -169,6 +272,33 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "pre-commit-hooks": { | ||||||
|  |       "inputs": { | ||||||
|  |         "flake-compat": "flake-compat", | ||||||
|  |         "gitignore": "gitignore", | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nix-topology", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ], | ||||||
|  |         "nixpkgs-stable": [ | ||||||
|  |           "nix-topology", | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1730797577, | ||||||
|  |         "narHash": "sha256-SrID5yVpyUfknUTGWgYkTyvdr9J1LxUym4om3SVGPkg=", | ||||||
|  |         "owner": "cachix", | ||||||
|  |         "repo": "pre-commit-hooks.nix", | ||||||
|  |         "rev": "1864030ed24a2b8b4e4d386a5eeaf0c5369e50a9", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "cachix", | ||||||
|  |         "repo": "pre-commit-hooks.nix", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "pvv-calendar-bot": { |     "pvv-calendar-bot": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @@ -178,13 +308,14 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1723850344, |         "lastModified": 1723850344, | ||||||
|         "narHash": "sha256-aT37O9l9eclWEnqxASVNBL1dKwDHZUOqdbA4VO9DJvw=", |         "narHash": "sha256-aT37O9l9eclWEnqxASVNBL1dKwDHZUOqdbA4VO9DJvw=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "main", | ||||||
|         "rev": "38b66677ab8c01aee10cd59e745af9ce3ea88092", |         "rev": "38b66677ab8c01aee10cd59e745af9ce3ea88092", | ||||||
|         "revCount": 19, |         "revCount": 19, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git" |         "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |         "ref": "main", | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git" |         "url": "https://git.pvv.ntnu.no/Projects/calendar-bot.git" | ||||||
|       } |       } | ||||||
| @@ -198,13 +329,14 @@ | |||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1741738148, |         "lastModified": 1741738148, | ||||||
|         "narHash": "sha256-cJo6nbcJEOjkazkZ194NDnlsZe0W0wpxeUh2/886uC8=", |         "narHash": "sha256-cJo6nbcJEOjkazkZ194NDnlsZe0W0wpxeUh2/886uC8=", | ||||||
|         "ref": "refs/heads/main", |         "ref": "main", | ||||||
|         "rev": "c1802e7cf27c7cf8b4890354c982a4eef5b11593", |         "rev": "c1802e7cf27c7cf8b4890354c982a4eef5b11593", | ||||||
|         "revCount": 486, |         "revCount": 486, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Projects/nettsiden.git" |         "url": "https://git.pvv.ntnu.no/Projects/nettsiden.git" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  |         "ref": "main", | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.pvv.ntnu.no/Projects/nettsiden.git" |         "url": "https://git.pvv.ntnu.no/Projects/nettsiden.git" | ||||||
|       } |       } | ||||||
| @@ -218,6 +350,7 @@ | |||||||
|         "matrix-next": "matrix-next", |         "matrix-next": "matrix-next", | ||||||
|         "minecraft-data": "minecraft-data", |         "minecraft-data": "minecraft-data", | ||||||
|         "nix-gitea-themes": "nix-gitea-themes", |         "nix-gitea-themes": "nix-gitea-themes", | ||||||
|  |         "nix-topology": "nix-topology", | ||||||
|         "nixpkgs": "nixpkgs", |         "nixpkgs": "nixpkgs", | ||||||
|         "nixpkgs-unstable": "nixpkgs-unstable", |         "nixpkgs-unstable": "nixpkgs-unstable", | ||||||
|         "pvv-calendar-bot": "pvv-calendar-bot", |         "pvv-calendar-bot": "pvv-calendar-bot", | ||||||
| @@ -265,6 +398,21 @@ | |||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "systems": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1681028828, | ||||||
|  |         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default", | ||||||
|  |         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "root": "root", |   "root": "root", | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -11,21 +11,24 @@ | |||||||
|     disko.url = "github:nix-community/disko"; |     disko.url = "github:nix-community/disko"; | ||||||
|     disko.inputs.nixpkgs.follows = "nixpkgs"; |     disko.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|     pvv-nettsiden.url = "git+https://git.pvv.ntnu.no/Projects/nettsiden.git"; |     nix-topology.url = "github:oddlama/nix-topology"; | ||||||
|  |     nix-topology.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|  |     pvv-nettsiden.url = "git+https://git.pvv.ntnu.no/Projects/nettsiden.git?ref=main"; | ||||||
|     pvv-nettsiden.inputs.nixpkgs.follows = "nixpkgs"; |     pvv-nettsiden.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|     pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git"; |     pvv-calendar-bot.url = "git+https://git.pvv.ntnu.no/Projects/calendar-bot.git?ref=main"; | ||||||
|     pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs"; |     pvv-calendar-bot.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|     matrix-next.url = "github:dali99/nixos-matrix-modules/0.7.0"; |     matrix-next.url = "github:dali99/nixos-matrix-modules/0.7.0"; | ||||||
|     matrix-next.inputs.nixpkgs.follows = "nixpkgs"; |     matrix-next.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|     nix-gitea-themes.url = "git+https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git"; |     nix-gitea-themes.url = "git+https://git.pvv.ntnu.no/oysteikt/nix-gitea-themes.git?ref=main"; | ||||||
|     nix-gitea-themes.inputs.nixpkgs.follows = "nixpkgs"; |     nix-gitea-themes.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |  | ||||||
|     greg-ng.url = "git+https://git.pvv.ntnu.no/Grzegorz/greg-ng.git"; |     greg-ng.url = "git+https://git.pvv.ntnu.no/Grzegorz/greg-ng.git?ref=main"; | ||||||
|     greg-ng.inputs.nixpkgs.follows = "nixpkgs"; |     greg-ng.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     gergle.url = "git+https://git.pvv.ntnu.no/Grzegorz/gergle.git"; |     gergle.url = "git+https://git.pvv.ntnu.no/Grzegorz/gergle.git?ref=main"; | ||||||
|     gergle.inputs.nixpkgs.follows = "nixpkgs"; |     gergle.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     grzegorz-clients.url = "git+https://git.pvv.ntnu.no/Grzegorz/grzegorz-clients.git"; |     grzegorz-clients.url = "git+https://git.pvv.ntnu.no/Grzegorz/grzegorz-clients.git"; | ||||||
|     grzegorz-clients.inputs.nixpkgs.follows = "nixpkgs"; |     grzegorz-clients.inputs.nixpkgs.follows = "nixpkgs"; | ||||||
| @@ -67,6 +70,7 @@ | |||||||
|           modules = [ |           modules = [ | ||||||
|             ./hosts/${name}/configuration.nix |             ./hosts/${name}/configuration.nix | ||||||
|             sops-nix.nixosModules.sops |             sops-nix.nixosModules.sops | ||||||
|  |             inputs.nix-topology.nixosModules.default | ||||||
|           ] ++ config.modules or []; |           ] ++ config.modules or []; | ||||||
|  |  | ||||||
|           pkgs = import nixpkgs { |           pkgs = import nixpkgs { | ||||||
| @@ -178,5 +182,18 @@ | |||||||
|       // lib.genAttrs allMachines |       // lib.genAttrs allMachines | ||||||
|         (machine: self.nixosConfigurations.${machine}.config.system.build.toplevel); |         (machine: self.nixosConfigurations.${machine}.config.system.build.toplevel); | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  |     topology.x86_64-linux = import inputs.nix-topology { | ||||||
|  |       pkgs = import nixpkgs { | ||||||
|  |         system = "x86_64-linux"; | ||||||
|  |         overlays = [inputs.nix-topology.overlays.default]; | ||||||
|  |       }; # Only this package set must include nix-topology.overlays.default | ||||||
|  |       modules = [ | ||||||
|  |         # Your own file to define global topology. Works in principle like a nixos module but uses different options. | ||||||
|  |         ./topology.nix | ||||||
|  |         # Inline module to inform topology of your existing NixOS hosts. | ||||||
|  |         { nixosConfigurations = self.nixosConfigurations; } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										120
									
								
								topology.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								topology.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | { config, ... }: | ||||||
|  | let | ||||||
|  |   inherit | ||||||
|  |     (config.lib.topology) | ||||||
|  |     mkInternet | ||||||
|  |     mkRouter | ||||||
|  |     mkSwitch | ||||||
|  |     mkDevice | ||||||
|  |     mkConnection | ||||||
|  |     mkConnectionRev; | ||||||
|  |   values = import ./values.nix; | ||||||
|  | in { | ||||||
|  |  | ||||||
|  | ### Networks | ||||||
|  |  | ||||||
|  |   networks.pvv = { | ||||||
|  |     name = "PVV Network"; | ||||||
|  |     cidrv4 = values.ipv4-space; | ||||||
|  |     cidrv6 = values.ipv6-space; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   networks.site-vpn = { | ||||||
|  |     name = "OpenVPN Site to Site"; | ||||||
|  |     style = { | ||||||
|  |       primaryColor = "#9dd68d"; | ||||||
|  |       secondaryColor = null; | ||||||
|  |       pattern = "dashed"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   networks.ntnu = { | ||||||
|  |     name = "NTNU"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.internet = mkInternet { | ||||||
|  |     connections = mkConnection "ntnu" "wan1"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.ntnu = mkRouter "NTNU" { | ||||||
|  |     interfaceGroups = [ ["wan1"] ["eth1" "eth2" "eth3"] ]; | ||||||
|  |     connections.eth1 = mkConnection "ntnu-pvv-router" "wan1"; | ||||||
|  |     connections.eth2 = mkConnection "ntnu-veggen" "wan1"; | ||||||
|  |     connections.eth3 = mkConnection "stackit" "*"; | ||||||
|  |     interfaces.eth1.network = "ntnu"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  | ### Brus | ||||||
|  |  | ||||||
|  |   nodes.ntnu-pvv-router = mkRouter "NTNU PVV Gateway" { | ||||||
|  |     interfaceGroups = [ ["wan1"] ["eth1"] ]; | ||||||
|  |     connections.eth1 = mkConnection "brus-switch" "eth1"; | ||||||
|  |     interfaces.eth1.network = "pvv"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.brus-switch = mkSwitch "Brus Switch" { | ||||||
|  |     interfaceGroups = [ ["eth1" "eth2" "eth3" "eth4" "eth5" "eth6" "eth7"] ]; | ||||||
|  |     connections.eth2 = mkConnection "bekkalokk" "enp2s0"; | ||||||
|  |     connections.eth3 = mkConnection "bicep" "enp6s0f0"; | ||||||
|  |     # connections.eth4 = mkConnection "buskerud" "enp3s0f0"; | ||||||
|  |     connections.eth5 = mkConnection "knutsen" "eth1"; | ||||||
|  |     connections.eth7 = mkConnection "joshua" "eth1"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.knutsen = mkRouter "knutsen" { | ||||||
|  |     interfaceGroups = [ ["eth1"] ["eth2"] ["vpn1"] ]; | ||||||
|  |     connections.eth2 = mkConnectionRev "brus-switch" "eth6"; | ||||||
|  |     # connections.vpn1 = mkConnection "ludvigsen" "vpn1"; | ||||||
|  |     interfaces.vpn1.network = "site-vpn"; | ||||||
|  |     interfaces.vpn1.virtual = true; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.joshua = mkDevice "joshua" { | ||||||
|  |     interfaceGroups = [ ["eth1"] ]; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.shark = { | ||||||
|  |     guestType = "proxmox"; | ||||||
|  |     parent = config.nodes.joshua.id; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### PVV | ||||||
|  |  | ||||||
|  |   nodes.ntnu-veggen = mkRouter "NTNU-Veggen" { | ||||||
|  |     interfaceGroups = [ ["wan1"] ["eth1"] ]; | ||||||
|  |     connections.eth1 = mkConnection "ludvigsen" "eth1"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.ludvigsen = mkRouter "ludvigsen" { | ||||||
|  |     interfaceGroups = [ ["eth1"] ["eth2"] ["vpn1"] ]; | ||||||
|  |     connections.eth2 = mkConnection "pvv-switch" "eth1"; | ||||||
|  |     interfaces.vpn1.network = "site-vpn"; | ||||||
|  |     interfaces.vpn1.virtual = true; | ||||||
|  |     interfaces.eth1.network = "ntnu"; | ||||||
|  |     interfaces.eth2.network = "pvv"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.pvv-switch = mkSwitch "PVV Switch (Terminalrommet)" { | ||||||
|  |     interfaceGroups = [ ["eth1" "eth2" "eth3"] ]; | ||||||
|  |     connections.eth2 = mkConnection "brzeczyszczykiewicz" "eno1"; | ||||||
|  |     connections.eth3 = mkConnection "georg" "eno1"; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Openstack | ||||||
|  |  | ||||||
|  |   nodes.stackit = mkDevice "stackit" { | ||||||
|  |     interfaceGroups = [ ["*"] ]; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   nodes.ildkule = { | ||||||
|  |     guestType = "openstack"; | ||||||
|  |     parent = config.nodes.stackit.id; | ||||||
|  |   }; | ||||||
|  |   nodes.bob = { | ||||||
|  |     guestType = "openstack"; | ||||||
|  |     parent = config.nodes.stackit.id; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user