]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Stop using overlays in the middle of modules
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Thu, 9 Apr 2020 23:22:16 +0000 (01:22 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Thu, 9 Apr 2020 23:22:16 +0000 (01:22 +0200)
modules/private/databases/default.nix
modules/private/databases/postgresql_replication.nix
modules/private/mail/postfix.nix
modules/private/mail/relay.nix
modules/private/monitoring/default.nix
modules/private/system/backup-2.nix
overlays/databases/postgresql/default.nix
overlays/default.nix
overlays/postfix/default.nix [new file with mode: 0644]

index c4a023ae86d754a3ba85f165ba1c867c8593e6f4..6cd6feb5b25dae3dfb6107e2b1df277422d21097 100644 (file)
@@ -10,10 +10,6 @@ in
     };
   };
 
-  config.nixpkgs.overlays = lib.mkIf cfg.enable [ (self: super: {
-    postgresql = self.postgresql_11_custom;
-  }) ];
-
   config.myServices.databases = lib.mkIf cfg.enable {
     mariadb = {
       enable = true;
index 7172c5e6e31f9c2046574a80b81e15571c5742c7..6ac2455a9eea3632c783de3a8fc937aedbe57087 100644 (file)
@@ -11,6 +11,13 @@ in
         Base path to put the replications
         '';
     };
+    mainPackage = lib.mkOption {
+      type = lib.types.package;
+      default = pkgs.postgresql;
+      description = ''
+        Postgresql package available in shell
+      '';
+    };
     hosts = lib.mkOption {
       default = {};
       description = ''
@@ -43,10 +50,6 @@ in
   };
 
   config = lib.mkIf cfg.enable {
-    nixpkgs.overlays = [ (self: super: {
-      postgresql = self.postgresql_11_custom;
-    }) ];
-
     users.users.postgres = {
       name = "postgres";
       uid = config.ids.uids.postgres;
@@ -57,7 +60,7 @@ in
       extraGroups = [ "keys" ];
     };
     users.groups.postgres.gid = config.ids.gids.postgres;
-    environment.systemPackages = [ pkgs.postgresql ];
+    environment.systemPackages = [ cfg.mainPackage ];
 
     secrets.keys = lib.flatten (lib.mapAttrsToList (name: hcfg: [
       {
index 92fa580d42da6d13f4a6ec30778b5911d4c3f073..985d4af084d8784d470f9122aa8e7ca5bc2105fd 100644 (file)
 
     networking.firewall.allowedTCPPorts = [ 25 465 587 ];
 
-    nixpkgs.overlays = [ (self: super: {
-      postfix = super.postfix.override { withMySQL = true; };
-    }) ];
     users.users."${config.services.postfix.user}".extraGroups = [ "keys" ];
     services.filesWatcher.postfix = {
       restart = true;
index c6231aa055f877fc5217c16931563870540e6705..d29ae759ead43f49ef91c6d64a82960dde8d854f 100644 (file)
@@ -89,9 +89,6 @@
 
     networking.firewall.allowedTCPPorts = [ 25 ];
 
-    nixpkgs.overlays = [ (self: super: {
-      postfix = super.postfix.override { withMySQL = true; };
-    }) ];
     users.users."${config.services.postfix.user}".extraGroups = [ "keys" ];
     services.filesWatcher.postfix = {
       restart = true;
index 8b45d470325bdb8742d01e0f32003d2f91384c1a..0586567ec326034bb11d61f5f61d5e05c092780e 100644 (file)
@@ -11,6 +11,11 @@ let
       pkgs.mailutils
     ]}
     '';
+  postgresqlBinary = if config.myServices.databasesReplication.postgresql.enable
+    then config.myServices.databasesReplication.postgresql.mainPackage
+    else if config.myServices.databases.enable
+    then config.myServices.databases.postgresql.package
+    else pkgs.postgresql;
   myplugins = pkgs.runCommand "buildplugins" {
     buildInputs = [ pkgs.makeWrapper pkgs.perl ];
   } ''
@@ -28,7 +33,7 @@ let
       pkgs.gnugrep pkgs.gawk pkgs.procps-ng
     ]}
     wrapProgram $out/check_postgres_replication --prefix PATH : ${lib.makeBinPath [
-      pkgs.postgresql
+      postgresqlBinary
     ]}
     wrapProgram $out/check_redis_replication --prefix PATH : ${lib.makeBinPath [
       pkgs.gnugrep pkgs.coreutils pkgs.redis
index 3d263f570419beb67ea5280762aa57919599dd78..a49c37474a958c84949138d3507db2dfac5f475a 100644 (file)
     postgresql = {
       enable = true;
       base = "/backup2";
+      mainPackage = pkgs.postgresql;
       hosts = {
         eldiron = {
           slot = "backup_2";
           connection = "postgresql://backup-2:${config.hostEnv.ldap.password}@eldiron.immae.eu";
+          package = pkgs.postgresql;
         };
       };
     };
index ae5898779941417a1f644c30dd3240ee9e773673..50d949675313dd255c3a0982d4b403b1e95c5225 100644 (file)
@@ -1,5 +1,5 @@
 self: super: rec {
-  postgresql_11_custom = super.postgresql_11.overrideAttrs(old: {
+  postgresql = super.postgresql_11.overrideAttrs(old: {
     # datadir in /var/lib/postgresql is named after psqlSchema
     passthru = old.passthru // { psqlSchema = "11.0"; };
     configureFlags = old.configureFlags ++ [ "--with-pam" ];
index 881083dd385e498fd2a6b88b7800dcdd2ec9b8f4..b3bc8caf4270b5278ec9e3ee7c5ba18e49abee82 100644 (file)
@@ -17,6 +17,7 @@
   nixops = import ./nixops;
   pass = import ./pass;
   pelican = import ./pelican;
+  postfix = import ./postfix;
   postgresql = import ./databases/postgresql;
   s6 = import ./s6;
   sc-im = import ./sc-im;
diff --git a/overlays/postfix/default.nix b/overlays/postfix/default.nix
new file mode 100644 (file)
index 0000000..55b8312
--- /dev/null
@@ -0,0 +1,3 @@
+self: super: {
+  postfix = super.postfix.override { withMySQL = true; };
+}