From cdd39543bfd458a39328c2b27d9a68607c6cefe7 Mon Sep 17 00:00:00 2001 From: Kiara Grouwstra Date: Fri, 18 Apr 2025 13:36:27 +0200 Subject: [PATCH] rm corresponding nixops deployments --- deployment/README.md | 6 -- deployment/default.nix | 181 ----------------------------------------- infra/flake-part.nix | 43 +--------- 3 files changed, 1 insertion(+), 229 deletions(-) delete mode 100644 deployment/README.md delete mode 100644 deployment/default.nix diff --git a/deployment/README.md b/deployment/README.md deleted file mode 100644 index 4d7d039b..00000000 --- a/deployment/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Deployment - -This repository contains work to generate a full Fediversity deployment from a -minimal configuration. This is different from [`../services/`](../services) that -focuses on one machine, providing a polished and unified interface to different -Fediverse services. diff --git a/deployment/default.nix b/deployment/default.nix deleted file mode 100644 index 89bc89d9..00000000 --- a/deployment/default.nix +++ /dev/null @@ -1,181 +0,0 @@ -## `makeMakeDeployment` -- Function to help hosting providers make a -## `makeDeployment` function. -## -## https://factoryfactoryfactory.net/ - -## Generic utilities used in this function, eg. nixpkgs, NixOps4 providers, etc. -## REVIEW: We should maybe be more specific than just `inputs`. -{ - lib, - nixops4, - nixops4-nixos, - fediversity, -}: - -## Information on the hosting provider's infrastructure. This is where we inform -## this function of where it can find eg. Proxmox. -{ - ## Four NixOS configuration resource modules for four services. Those are VMs - ## that are already deployed and on which we will push our configurations. - ## - ## - Ultimately, we just want a pool of VMs, or even just a Proxmox. - ## - Each machine is flagged for a certain use case until we control DNS. - garageConfigurationResource, - mastodonConfigurationResource, - peertubeConfigurationResource, - pixelfedConfigurationResource, -}: - -## From the hosting provider's perspective, the function is meant to be -## partially applied only until here. - -## Information on the specific deployment that we request. This is the -## information coming from the FediPanel. -## -## FIXME: lock step the interface with the definitions in the FediPanel -panelConfig: - -let - inherit (lib) mkIf; - -in - -## Regular arguments of a NixOps4 deployment module. -{ providers, ... }: - -{ - providers = { inherit (nixops4.modules.nixops4Provider) local; }; - - resources = - let - ## 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. - ## - ## FIXME: Generate and store in NixOps4's state. - mastodonS3KeyConfig = - { pkgs, ... }: - { - s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK3515373e4c851ebaad366558"; - s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34"; - }; - peertubeS3KeyConfig = - { pkgs, ... }: - { - s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GK1f9feea9960f6f95ff404c9b"; - s3SecretKeyFile = pkgs.writeText "s3SecretKey" "7295c4201966a02c2c3d25b5cea4a5ff782966a2415e3a196f91924631191395"; - }; - pixelfedS3KeyConfig = - { pkgs, ... }: - { - s3AccessKeyFile = pkgs.writeText "s3AccessKey" "GKb5615457d44214411e673b7b"; - s3SecretKeyFile = pkgs.writeText "s3SecretKey" "5be6799a88ca9b9d813d1a806b64f15efa49482dbe15339ddfaf7f19cf434987"; - }; - - makeConfigurationResource = resourceModule: config: { - type = providers.local.exec; - imports = [ - nixops4-nixos.modules.nixops4Resource.nixos - resourceModule - - { - ## NOTE: With NixOps4, there are several levels and all of them live - ## in the NixOS module system: - ## - ## 1. Each NixOps4 deployment is a module. - ## 2. Each NixOps4 resource is a module. This very comment is - ## inside an attrset imported as a module in a resource. - ## 3. Each NixOps4 'configuration' resource contains an attribute - ## 'nixos.module', itself a NixOS configuration module. - nixos.module = - { ... }: - { - imports = [ - config - fediversity - ]; - }; - } - ]; - }; - - in - - { - garage-configuration = makeConfigurationResource garageConfigurationResource ( - { pkgs, ... }: - mkIf (panelConfig.mastodon.enable || panelConfig.peertube.enable || panelConfig.pixelfed.enable) { - fediversity = { - inherit (panelConfig) domain; - garage.enable = true; - pixelfed = pixelfedS3KeyConfig { inherit pkgs; }; - mastodon = mastodonS3KeyConfig { inherit pkgs; }; - peertube = peertubeS3KeyConfig { inherit pkgs; }; - }; - } - ); - - mastodon-configuration = makeConfigurationResource mastodonConfigurationResource ( - { pkgs, ... }: - mkIf panelConfig.mastodon.enable { - fediversity = { - inherit (panelConfig) domain; - temp.initialUser = { - inherit (panelConfig.initialUser) username email displayName; - # FIXME: disgusting, but nvm, this is going to be replaced by - # proper central authentication at some point - passwordFile = pkgs.writeText "password" panelConfig.initialUser.password; - }; - - mastodon = mastodonS3KeyConfig { inherit pkgs; } // { - enable = true; - }; - - temp.cores = 1; # FIXME: should come from NixOps4 eventually - }; - } - ); - - peertube-configuration = makeConfigurationResource peertubeConfigurationResource ( - { pkgs, ... }: - mkIf panelConfig.peertube.enable { - fediversity = { - inherit (panelConfig) domain; - temp.initialUser = { - inherit (panelConfig.initialUser) username email displayName; - # FIXME: disgusting, but nvm, this is going to be replaced by - # proper central authentication at some point - passwordFile = pkgs.writeText "password" panelConfig.initialUser.password; - }; - - peertube = peertubeS3KeyConfig { inherit pkgs; } // { - enable = true; - ## NOTE: Only ever used for testing anyway. - ## - ## FIXME: Generate and store in NixOps4's state. - secretsFile = pkgs.writeText "secret" "574e093907d1157ac0f8e760a6deb1035402003af5763135bae9cbd6abe32b24"; - }; - }; - } - ); - - pixelfed-configuration = makeConfigurationResource pixelfedConfigurationResource ( - { pkgs, ... }: - mkIf panelConfig.pixelfed.enable { - fediversity = { - inherit (panelConfig) domain; - temp.initialUser = { - inherit (panelConfig.initialUser) username email displayName; - # FIXME: disgusting, but nvm, this is going to be replaced by - # proper central authentication at some point - passwordFile = pkgs.writeText "password" panelConfig.initialUser.password; - }; - - pixelfed = pixelfedS3KeyConfig { inherit pkgs; } // { - enable = true; - }; - }; - } - ); - }; -} diff --git a/infra/flake-part.nix b/infra/flake-part.nix index 71c68728..06560d00 100644 --- a/infra/flake-part.nix +++ b/infra/flake-part.nix @@ -1,12 +1,11 @@ { - self, inputs, lib, ... }: let - inherit (builtins) readDir readFile fromJSON; + inherit (builtins) readDir; inherit (lib) attrNames mkOption @@ -65,35 +64,6 @@ let }; makeDeployment' = vmName: makeDeployment [ vmName ]; - ## Given an attrset of test configurations (key = test machine name, value = - ## NixOS configuration module), make a deployment with those machines' - ## configurations as resources. - makeTestDeployment = - (import ../deployment) - { - inherit lib; - inherit (inputs) nixops4 nixops4-nixos; - inherit (self.nixosModules) fediversity; - } - { - garageConfigurationResource = makeResourceModule { - vmName = "test01"; - isTestVm = true; - }; - mastodonConfigurationResource = makeResourceModule { - vmName = "test06"; # somehow `test02` has a problem - use test06 instead - isTestVm = true; - }; - peertubeConfigurationResource = makeResourceModule { - vmName = "test05"; - isTestVm = true; - }; - pixelfedConfigurationResource = makeResourceModule { - vmName = "test04"; - isTestVm = true; - }; - }; - nixops4ResourceNixosMockOptions = { ## NOTE: We allow the use of a few options from ## `inputs.nixops4-nixos.modules.nixops4Resource.nixos` such that we can @@ -159,17 +129,6 @@ in ## - We add a “test” deployment with all test machines. nixops4Deployments = genAttrs machines makeDeployment' // { default = makeDeployment machines; - test = makeTestDeployment ( - fromJSON ( - let - env = builtins.getEnv "DEPLOYMENT"; - in - if env != "" then - env - else - builtins.trace "env var DEPLOYMENT not set, falling back to ./test-machines/configuration.json!" (readFile ./test-machines/configuration.json) - ) - ); }; flake.nixosConfigurations = genAttrs machines (makeConfiguration false)