forked from Deuxfleurs/nixcfg
Deploy garage on staging using nix2 driver
This commit is contained in:
parent
105c081728
commit
c9f9ed4c71
5 changed files with 41 additions and 55 deletions
|
@ -57,22 +57,21 @@ job "garage-staging" {
|
||||||
# }
|
# }
|
||||||
|
|
||||||
task "server" {
|
task "server" {
|
||||||
driver = "exec2"
|
driver = "nix2"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
#command = "/usr/bin/env"
|
packages = [
|
||||||
command = "/run/current-system/sw/bin/nix"
|
"bash", # so that we can enter a shell inside container
|
||||||
args = [
|
|
||||||
"run",
|
|
||||||
"git+https://git.deuxfleurs.fr/Deuxfleurs/garage.git?ref=nix-remove-system&rev=60c26fbc628d7b450ae39214b578ab6a30583d5c",
|
"git+https://git.deuxfleurs.fr/Deuxfleurs/garage.git?ref=nix-remove-system&rev=60c26fbc628d7b450ae39214b578ab6a30583d5c",
|
||||||
"--",
|
|
||||||
"server"
|
|
||||||
]
|
]
|
||||||
|
command = "garage"
|
||||||
|
args = [ "server" ]
|
||||||
bind = {
|
bind = {
|
||||||
"/mnt/storage/garage-staging/data" = "/data",
|
"/mnt/storage/garage-staging/data" = "/data",
|
||||||
"/mnt/ssd/garage-staging/meta" = "/meta",
|
"/mnt/ssd/garage-staging/meta" = "/meta",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
user = "root"
|
||||||
|
|
||||||
template {
|
template {
|
||||||
data = file("../config/garage.toml")
|
data = file("../config/garage.toml")
|
|
@ -77,16 +77,16 @@
|
||||||
## EXPERIMENTAL ON STAGING: NIX NOMAD JOBS
|
## EXPERIMENTAL ON STAGING: NIX NOMAD JOBS
|
||||||
services.nomad.dropPrivileges = false;
|
services.nomad.dropPrivileges = false;
|
||||||
|
|
||||||
# ----- nomad-driver-nix & nomad-driver-exec2 -----
|
# ----- nomad-driver-nix & nomad-driver-nix2 -----
|
||||||
services.nomad.extraSettingsPlugins =
|
services.nomad.extraSettingsPlugins =
|
||||||
let nomad_driver_nix = import ./nomad-driver-nix.nix { inherit pkgs; };
|
let nomad_driver_nix = import ./nomad-driver-nix.nix { inherit pkgs; };
|
||||||
nomad_driver_exec2 = import ./nomad-driver-exec2.nix { inherit pkgs; };
|
nomad_driver_nix2 = import ./nomad-driver-nix2.nix { inherit pkgs; };
|
||||||
in [
|
in [
|
||||||
(pkgs.symlinkJoin {
|
(pkgs.symlinkJoin {
|
||||||
name = "nomad-drivers";
|
name = "nomad-drivers";
|
||||||
paths = [
|
paths = [
|
||||||
nomad_driver_nix
|
nomad_driver_nix
|
||||||
nomad_driver_exec2
|
nomad_driver_nix2
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
@ -99,22 +99,11 @@
|
||||||
# default config for the exec2 driver
|
# default config for the exec2 driver
|
||||||
services.nomad.settings.plugin = [
|
services.nomad.settings.plugin = [
|
||||||
{
|
{
|
||||||
"exec2-driver" = [
|
"nix2-driver" = [
|
||||||
{
|
{
|
||||||
config = [
|
config = [
|
||||||
{
|
{
|
||||||
bind_read_only = {
|
# default_nixpkgs = "github:nixos/nixpkgs/nixos-22.11";
|
||||||
"/etc/static" = "/etc/static";
|
|
||||||
"/etc/passwd" = "/etc/passwd";
|
|
||||||
"/etc/resolv.conf" = "/etc/resolv.conf";
|
|
||||||
"/etc/nix/nix.conf" = "/etc/nix/nix.conf";
|
|
||||||
"/etc/ssl" = "/etc/ssl";
|
|
||||||
"/etc/nsswitch.conf" = "/etc/nsswitch.conf";
|
|
||||||
"/nix" = "/nix";
|
|
||||||
"/bin" = "/bin";
|
|
||||||
"/usr" = "/usr";
|
|
||||||
"/run/current-system/sw" = "/run/current-system/sw";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ copy cluster/$CLUSTER/node/$NIXHOST.site.nix /etc/nixos/site.nix
|
||||||
|
|
||||||
if [ "$CLUSTER" = "staging" ]; then
|
if [ "$CLUSTER" = "staging" ]; then
|
||||||
copy nix/nomad-driver-nix.nix /etc/nixos/nomad-driver-nix.nix
|
copy nix/nomad-driver-nix.nix /etc/nixos/nomad-driver-nix.nix
|
||||||
copy nix/nomad-driver-exec2.nix /etc/nixos/nomad-driver-exec2.nix
|
copy nix/nomad-driver-nix2.nix /etc/nixos/nomad-driver-nix2.nix
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# use ./upgrade_nixos instead to upgrade NixOS
|
# use ./upgrade_nixos instead to upgrade NixOS
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
pkgs ? import <nixpkgs> {}
|
|
||||||
}:
|
|
||||||
pkgs.buildGoModule rec {
|
|
||||||
pname = "nomad-driver-exec2";
|
|
||||||
version = "0.1.0";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "Alexis211";
|
|
||||||
repo = "nomad-driver-exec2";
|
|
||||||
rev = "14bd8f2010c3a1f90c6d1297f47ebbf46ee87dde";
|
|
||||||
sha256 = "sha256-k75VEi2+9mS9v3bx/ygumy0niQP7bLWIgB0Zwhuky+k=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorSha256 = "sha256-EQdTxVOBRYQjg7kAB+pFJYcNwk0zlsjjJxM+EO/cK84=";
|
|
||||||
|
|
||||||
ldflags = [
|
|
||||||
"-X github.com/Alexis211/nomad-driver-exec2/exec2.pluginVersion=${version}"
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
mv $out/bin/nomad-driver-exec2 $out/bin/exec2-driver
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = "Nomad exec driver with support for bind mouns";
|
|
||||||
homepage = "https://github.com/Alexis211/nomad-driver-exec2";
|
|
||||||
license = licenses.mpl20;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
29
nix/nomad-driver-nix2.nix
Normal file
29
nix/nomad-driver-nix2.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
pkgs ? import <nixpkgs> {}
|
||||||
|
}:
|
||||||
|
pkgs.buildGoModule rec {
|
||||||
|
pname = "nomad-driver-nix2";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = "https://git.deuxfleurs.fr/lx/nomad-driver-nix2";
|
||||||
|
rev = "d13a77952cd6404fa535b3863fca0a5bf8501af5";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorSha256 = "sha256-EQdTxVOBRYQjg7kAB+pFJYcNwk0zlsjjJxM+EO/cK84=";
|
||||||
|
|
||||||
|
ldflags = [
|
||||||
|
"-X git.deuxfleurs.fr/lx/nomad-driver-nix2/nix2.pluginVersion=${version}"
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mv $out/bin/nomad-driver-nix2 $out/bin/nix2
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "Nomad driver to run Nix jobs";
|
||||||
|
homepage = "https://git.deuxfleurs.fr/lx/nomad-driver-nix2";
|
||||||
|
license = licenses.mpl20;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue