forked from fediversity/fediversity
		
	Get rid of the deployment/ directory
				
					
				
			This commit is contained in:
		
							parent
							
								
									f4153a048c
								
							
						
					
					
						commit
						3f9c174d97
					
				
					 5 changed files with 2 additions and 295 deletions
				
			
		|  | @ -118,12 +118,9 @@ Contact the project team if you have questions or suggestions, or if you're inte | |||
| Most of the directories in this repository have their own README going into more | ||||
| details as to what they are for. As an overview: | ||||
| 
 | ||||
| - [`deployment/`](./deployment) contains bits and pieces having to do with | ||||
|   auto-deployment of test VMs on a private Proxmox. This directory is | ||||
|   deprecated, the information it contains outdate. Refer to `infra/` instead. | ||||
| 
 | ||||
| - [`infra/`](./infra) contains the configurations for the various VMs that are | ||||
|   in production for the project, for instance the Git instances or the Wiki. | ||||
|   in production for the project, for instance the Git instances or the Wiki, as | ||||
|   well as means to provision and set up new ones. | ||||
| 
 | ||||
| - [`keys/`](./keys) contains the public keys of the contributors to this project | ||||
|   as well as the systems that we administrate. | ||||
|  |  | |||
|  | @ -1,136 +0,0 @@ | |||
| { inputs, self, ... }: | ||||
| 
 | ||||
| let | ||||
|   allVmIds = builtins.genList (x: 100 + x) 156; # 100 -- 255 | ||||
| 
 | ||||
| in | ||||
| { | ||||
|   flake.nixosConfigurations.provisioning = | ||||
|     let | ||||
|       inherit (builtins) map listToAttrs; | ||||
|       makeProvisioningConfiguration = | ||||
|         vmid: | ||||
|         inputs.nixpkgs.lib.nixosSystem { | ||||
|           modules = [ | ||||
|             { procolix.vmid = vmid; } | ||||
|             ./procolixVm.nix | ||||
|             inputs.disko.nixosModules.default | ||||
|           ]; | ||||
|         }; | ||||
|     in | ||||
|     listToAttrs ( | ||||
|       map (vmid: { | ||||
|         name = "fedi${toString vmid}"; | ||||
|         value = makeProvisioningConfiguration vmid; | ||||
|       }) allVmIds | ||||
|     ); | ||||
| 
 | ||||
|   nixops4Deployments.feditest = | ||||
|     { providers, ... }: | ||||
| 
 | ||||
|     let | ||||
|       inherit (builtins) readFile; | ||||
| 
 | ||||
|       makeProcolixVmResource = vmid: vmconfig: { | ||||
|         type = providers.local.exec; | ||||
|         imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos ]; | ||||
| 
 | ||||
|         ssh = { | ||||
|           host = "95.215.187.${toString vmid}"; | ||||
|           hostPublicKey = readFile ./hostKeys/fedi${toString vmid}/ssh_host_ed25519_key.pub; | ||||
|         }; | ||||
| 
 | ||||
|         nixpkgs = inputs.nixpkgs; | ||||
|         nixos.module = { | ||||
|           imports = [ | ||||
|             vmconfig | ||||
|             { procolix.vmid = vmid; } | ||||
|             ./procolixVm.nix | ||||
|             self.nixosModules.fediversity | ||||
|             inputs.disko.nixosModules.default | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       ## NOTE: All of these secrets are publicly available in this source file | ||||
|       ## and will end up in the Nix store. We don't care as they are only ever | ||||
|       ## used for testing anyway. | ||||
|       pixelfedS3KeyConfig = | ||||
|         { pkgs, ... }: | ||||
|         { | ||||
|           s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GKb5615457d44214411e673b7b"; | ||||
|           s3SecretKeyFile = pkgs.writeText "s3SecretKey" "5be6799a88ca9b9d813d1a806b64f15efa49482dbe15339ddfaf7f19cf434987"; | ||||
|         }; | ||||
|       mastodonS3KeyConfig = | ||||
|         { pkgs, ... }: | ||||
|         { | ||||
|           s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK3515373e4c851ebaad366558"; | ||||
|           s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34"; | ||||
|         }; | ||||
|       peertubeS3KeyConfig = | ||||
|         { pkgs, ... }: | ||||
|         { | ||||
|           s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK1f9feea9960f6f95ff404c9b"; | ||||
|           s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7295c4201966a02c2c3d25b5cea4a5ff782966a2415e3a196f91924631191395"; | ||||
|         }; | ||||
| 
 | ||||
|     in | ||||
|     { | ||||
|       providers = { inherit (inputs.nixops4.modules.nixops4Provider) local; }; | ||||
| 
 | ||||
|       resources = { | ||||
|         fedi100 = makeProcolixVmResource 100 ( | ||||
|           { pkgs, ... }: | ||||
|           { | ||||
|             fediversity = { | ||||
|               domain = "abundos.eu"; | ||||
|               garage.enable = true; | ||||
|               pixelfed = pixelfedS3KeyConfig { inherit pkgs; }; | ||||
|               mastodon = mastodonS3KeyConfig { inherit pkgs; }; | ||||
|               peertube = peertubeS3KeyConfig { inherit pkgs; }; | ||||
|             }; | ||||
|           } | ||||
|         ); | ||||
| 
 | ||||
|         fedi101 = makeProcolixVmResource 101 ( | ||||
|           { pkgs, ... }: | ||||
|           { | ||||
|             fediversity = { | ||||
|               domain = "abundos.eu"; | ||||
|               pixelfed = pixelfedS3KeyConfig { inherit pkgs; } // { | ||||
|                 enable = true; | ||||
|               }; | ||||
|             }; | ||||
|           } | ||||
|         ); | ||||
| 
 | ||||
|         fedi102 = makeProcolixVmResource 102 ( | ||||
|           { pkgs, ... }: | ||||
|           { | ||||
|             fediversity = { | ||||
|               domain = "abundos.eu"; | ||||
|               mastodon = mastodonS3KeyConfig { inherit pkgs; } // { | ||||
|                 enable = true; | ||||
|               }; | ||||
| 
 | ||||
|               temp.cores = 1; # FIXME: should come from NixOps4 eventually | ||||
|             }; | ||||
|           } | ||||
|         ); | ||||
| 
 | ||||
|         fedi103 = makeProcolixVmResource 103 ( | ||||
|           { pkgs, ... }: | ||||
|           { | ||||
|             fediversity = { | ||||
|               domain = "abundos.eu"; | ||||
|               peertube = peertubeS3KeyConfig { inherit pkgs; } // { | ||||
|                 enable = true; | ||||
|                 ## NOTE: Only ever used for testing anyway. | ||||
|                 secretsFile = pkgs.writeText "secret" "574e093907d1157ac0f8e760a6deb1035402003af5763135bae9cbd6abe32b24"; | ||||
|               }; | ||||
|             }; | ||||
|           } | ||||
|         ); | ||||
|       }; | ||||
|     }; | ||||
| } | ||||
|  | @ -1,153 +0,0 @@ | |||
| { | ||||
|   lib, | ||||
|   config, | ||||
|   modulesPath, | ||||
|   ... | ||||
| }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkOption; | ||||
|   inherit (lib.types) types; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; | ||||
| 
 | ||||
|   options = { | ||||
|     procolix = { | ||||
|       vmid = mkOption { | ||||
|         type = types.ints.between 100 255; | ||||
|         description = '' | ||||
|           Identifier of the machine. This is a number between 100 and 255. | ||||
|         ''; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = { | ||||
|     ######################################################################## | ||||
|     ## Network | ||||
| 
 | ||||
|     services.openssh.enable = true; | ||||
| 
 | ||||
|     networking = { | ||||
|       hostName = "fedi${toString config.procolix.vmid}"; | ||||
|       domain = "procolix.com"; | ||||
| 
 | ||||
|       interfaces = { | ||||
|         eth0 = { | ||||
|           ipv4 = { | ||||
|             addresses = [ | ||||
|               { | ||||
|                 address = "95.215.187.${toString config.procolix.vmid}"; | ||||
|                 prefixLength = 24; | ||||
|               } | ||||
|             ]; | ||||
|           }; | ||||
|           ipv6 = { | ||||
|             addresses = [ | ||||
|               { | ||||
|                 address = "2a00:51c0:13:1305::${toString config.procolix.vmid}"; | ||||
|                 prefixLength = 64; | ||||
|               } | ||||
|             ]; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       defaultGateway = { | ||||
|         address = "95.215.187.1"; | ||||
|         interface = "eth0"; | ||||
|       }; | ||||
|       defaultGateway6 = { | ||||
|         address = "2a00:51c0:13:1305::1"; | ||||
|         interface = "eth0"; | ||||
|       }; | ||||
| 
 | ||||
|       nameservers = [ | ||||
|         "95.215.185.6" | ||||
|         "95.215.185.7" | ||||
|       ]; | ||||
|     }; | ||||
| 
 | ||||
|     ######################################################################## | ||||
|     ## Hardware | ||||
| 
 | ||||
|     boot = { | ||||
|       loader = { | ||||
|         systemd-boot.enable = true; | ||||
|         efi.canTouchEfiVariables = true; | ||||
|       }; | ||||
|       initrd = { | ||||
|         availableKernelModules = [ | ||||
|           "ata_piix" | ||||
|           "uhci_hcd" | ||||
|           "virtio_pci" | ||||
|           "virtio_scsi" | ||||
|           "sd_mod" | ||||
|           "sr_mod" | ||||
|         ]; | ||||
|         kernelModules = [ "dm-snapshot" ]; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     disko.devices.disk.main = { | ||||
|       device = "/dev/sda"; | ||||
|       type = "disk"; | ||||
| 
 | ||||
|       content = { | ||||
|         type = "gpt"; | ||||
| 
 | ||||
|         partitions = { | ||||
|           MBR = { | ||||
|             priority = 0; | ||||
|             size = "1M"; | ||||
|             type = "EF02"; | ||||
|           }; | ||||
| 
 | ||||
|           ESP = { | ||||
|             priority = 1; | ||||
|             size = "500M"; | ||||
|             type = "EF00"; | ||||
|             content = { | ||||
|               type = "filesystem"; | ||||
|               format = "vfat"; | ||||
|               mountpoint = "/boot"; | ||||
|             }; | ||||
|           }; | ||||
| 
 | ||||
|           root = { | ||||
|             priority = 2; | ||||
|             size = "100%"; | ||||
|             content = { | ||||
|               type = "filesystem"; | ||||
|               format = "ext4"; | ||||
|               mountpoint = "/"; | ||||
|             }; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
| 
 | ||||
|     ######################################################################## | ||||
|     ## Miscellaneous | ||||
| 
 | ||||
|     services.qemuGuest.enable = true; | ||||
| 
 | ||||
|     time.timeZone = "Europe/Amsterdam"; | ||||
| 
 | ||||
|     i18n.defaultLocale = "en_US.UTF-8"; | ||||
| 
 | ||||
|     users.users.root.openssh.authorizedKeys.keys = [ | ||||
|       "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEElREJN0AC7lbp+5X204pQ5r030IbgCllsIxyU3iiKY" | ||||
|     ]; | ||||
| 
 | ||||
|     nix.extraOptions = '' | ||||
|       experimental-features = nix-command flakes | ||||
|     ''; | ||||
| 
 | ||||
|     system.stateVersion = "24.05"; # Did you read the comment? | ||||
|   }; | ||||
| } | ||||
|  | @ -25,7 +25,6 @@ | |||
|         inputs.git-hooks.flakeModule | ||||
|         inputs.nixops4.modules.flake.default | ||||
| 
 | ||||
|         ./deployment/flake-part.nix | ||||
|         ./infra/flake-part.nix | ||||
|         ./services/flake-part.nix | ||||
|       ]; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue