about summary refs log tree commit diff
path: root/doc/builders
diff options
context:
space:
mode:
authorGeraint Ballinger <G3zz@users.noreply.github.com>2023-04-07 04:10:49 +0100
committerGitHub <noreply@github.com>2023-04-07 05:10:49 +0200
commit8b2521bdae89126497fa6f139fb9d030d5d13184 (patch)
tree9a7f20e258bc1b67f3053e3d1b1e9ffc47f2f3d6 /doc/builders
parent772d05f31d5169f414659217b98907916f5f14fa (diff)
downloadnixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar.gz
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar.bz2
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar.lz
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar.xz
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.tar.zst
nixlib-8b2521bdae89126497fa6f139fb9d030d5d13184.zip
nixos/darwin-builder: add disk space options (#224480)
Diffstat (limited to 'doc/builders')
-rw-r--r--doc/builders/special/darwin-builder.section.md86
1 files changed, 86 insertions, 0 deletions
diff --git a/doc/builders/special/darwin-builder.section.md b/doc/builders/special/darwin-builder.section.md
index 3913b692498d..30bf2d095102 100644
--- a/doc/builders/special/darwin-builder.section.md
+++ b/doc/builders/special/darwin-builder.section.md
@@ -61,3 +61,89 @@ builders-use-substitutes = true
 ```ShellSession
 $ sudo launchctl kickstart -k system/org.nixos.nix-daemon
 ```
+
+## Example flake usage
+
+```
+{
+  inputs = {
+    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin";
+    darwin.url = "github:lnl7/nix-darwin/master";
+    darwin.inputs.nixpkgs.follows = "nixpkgs";
+  };
+
+  outputs = { self, darwin, nixpkgs, ... }@inputs:
+  let
+
+    inherit (darwin.lib) darwinSystem;
+    system = "aarch64-darwin";
+    pkgs = nixpkgs.legacyPackages."${system}";
+    linuxSystem = builtins.replaceStrings [ "darwin" ] [ "linux" ] system;
+
+    darwin-builder = nixpkgs.lib.nixosSystem {
+      system = linuxSystem;
+      modules = [
+        "${nixpkgs}/nixos/modules/profiles/macos-builder.nix"
+        { virtualisation.host.pkgs = pkgs; }
+      ];
+    };
+  in {
+
+    darwinConfigurations = {
+      machine1 = darwinSystem {
+        inherit system;
+        modules = [
+          {
+            nix.distributedBuilds = true;
+            nix.buildMachines = [{
+              hostName = "ssh://builder@localhost";
+              system = linuxSystem;
+              maxJobs = 4;
+              supportedFeatures = [ "kvm" "benchmark" "big-parallel" ];
+            }];
+
+            launchd.daemons.darwin-builder = {
+              command = "${darwin-builder.config.system.build.macos-builder-installer}/bin/create-builder";
+              serviceConfig = {
+                KeepAlive = true;
+                RunAtLoad = true;
+                StandardOutPath = "/var/log/darwin-builder.log";
+                StandardErrorPath = "/var/log/darwin-builder.log";
+              };
+            };
+          }
+        ];
+      };
+    };
+
+  };
+}
+```
+
+## Reconfiguring the builder
+
+Initially you should not change the builder configuration else you will not be
+able to use the binary cache. However, after you have the builder running locally
+you may use it to build a modified builder with additional storage or memory.
+
+To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as
+in the example below and rebuild.
+
+```
+    darwin-builder = nixpkgs.lib.nixosSystem {
+      system = linuxSystem;
+      modules = [
+        "${nixpkgs}/nixos/modules/profiles/macos-builder.nix"
+        {
+          virtualisation.host.pkgs = pkgs;
+          virtualisation.darwin-builder.diskSize = 5120;
+          virtualisation.darwin-builder.memorySize = 1024;
+          virtualisation.darwin-builder.hostPort = 33022;
+          virtualisation.darwin-builder.workingDirectory = "/var/lib/darwin-builder";
+        }
+      ];
+```
+
+You may make any other changes to your VM in this attribute set. For example,
+you could enable Docker or X11 forwarding to your Darwin host.
+