aboutsummaryrefslogtreecommitdiff
path: root/app/drone-ci/build/machine-config.nix
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-05-30 14:57:05 +0200
committerAlex Auvolat <alex@adnab.me>2022-05-30 14:57:05 +0200
commitd47d4e93ab8682710e80eec8c7c9d6a7d2f14202 (patch)
treea0039fb674a7150c0338707606a20c9d62ced1e5 /app/drone-ci/build/machine-config.nix
parent2d9adf82d04261f420af4cc5482e442297741a5d (diff)
downloadnixcfg-d47d4e93ab8682710e80eec8c7c9d6a7d2f14202.tar.gz
nixcfg-d47d4e93ab8682710e80eec8c7c9d6a7d2f14202.zip
Work on drone runner as VM
Diffstat (limited to 'app/drone-ci/build/machine-config.nix')
-rw-r--r--app/drone-ci/build/machine-config.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/app/drone-ci/build/machine-config.nix b/app/drone-ci/build/machine-config.nix
new file mode 100644
index 0000000..3b55078
--- /dev/null
+++ b/app/drone-ci/build/machine-config.nix
@@ -0,0 +1,68 @@
+{ pkgs, lib, ... }:
+
+with lib;
+
+{
+ imports = [
+ <nixpkgs/nixos/modules/profiles/qemu-guest.nix>
+ ];
+
+ config = {
+ fileSystems."/" = {
+ device = "/dev/disk/by-label/nixos";
+ fsType = "ext4";
+ autoResize = true;
+ };
+
+ boot.growPartition = true;
+ boot.kernelParams = [ "console=ttyS0" ];
+ boot.loader.grub.device = "/dev/vda";
+ boot.loader.timeout = 0;
+
+ users.extraUsers.root.openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJpaBZdYxHqMxhv2RExAOa7nkKhPBOHupMP3mYaZ73w9 lx@lindy"
+ ];
+ services.openssh.enable = true;
+ services.openssh.permitRootLogin = "prohibit-password";
+ networking.firewall = {
+ enable = true;
+ allowedTCPPorts = [ 22 ];
+ };
+
+ virtualisation.docker.enable = true;
+ virtualisation.oci-containers.backend = "docker";
+ virtualisation.oci-containers.containers = {
+ drone_runner = {
+ image = "drone/drone-runner-docker:1.4.0";
+ volumes = [
+ "/nix:/nix"
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ];
+ environment = {
+ DRONE_RPC_PROTO = "https";
+ DRONE_RPC_HOST = "drone.deuxfleurs.fr";
+ DRONE_RUNNER_CAPACITY = "1";
+ DRONE_DEBUG = "true";
+ DRONE_LOGS_TRACE = "true";
+ DRONE_RPC_DUMP_HTTP = "true";
+ DRONE_RPC_DUMP_HTTP_BODY = "true";
+ DRONE_RUNNER_LABELS = "nix:1";
+ };
+ environmentFiles = [
+ "/dev/qemu/dronesecret0"
+ ];
+ };
+ drone_gc = {
+ image = "drone/gc:latest";
+ volumes = [
+ "/var/run/docker.sock:/var/run/docker.sock"
+ ];
+ environment = {
+ GC_DEBUG = "true";
+ GC_CACHE = "10gb";
+ GC_INTERVAL = "10m";
+ };
+ };
+ };
+ };
+}