forked from rarias/jungle
Compare commits
8 Commits
eeac26ccdb
...
quick-shel
| Author | SHA1 | Date | |
|---|---|---|---|
|
9deef256a2
|
|||
| 019826d09e | |||
| a294daf7e3 | |||
| a7018250ca | |||
| e3d1785285 | |||
|
ab86243a07
|
|||
| 14f2393d30 | |||
| f115d611e7 |
@@ -180,6 +180,19 @@
|
|||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFmMqKqPg4uocNOr3O41kLbZMOMJn3m2ZdN1JvTR96z3 bsccns@arnau-bsc"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFmMqKqPg4uocNOr3O41kLbZMOMJn3m2ZdN1JvTR96z3 bsccns@arnau-bsc"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
aaguirre = {
|
||||||
|
uid = 9655;
|
||||||
|
isNormalUser = true;
|
||||||
|
home = "/home/Computational/aaguirre";
|
||||||
|
description = "Alejandro Aguirre";
|
||||||
|
group = "Computational";
|
||||||
|
hosts = [ "apex" "hut" ];
|
||||||
|
hashedPassword = "$6$TXRXQT6jjBvxkxU6$E.sh5KspAm1qeG5Ct7OPHpo8REmbGDwjFGvqeGgTVz3GASGOAnPL7UMZsMAsAKBoahOw.v8LNno6XGrTEPzZH1";
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOlRX7ZCnqtUJYCxKgWmgSrFCYuA2LHY96rVwqxXPl86 aaguirre@BSC-8488184117"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
groups = {
|
groups = {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./p.nix
|
./p.nix
|
||||||
|
./ompss2-timer.nix
|
||||||
#./pxe.nix
|
#./pxe.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Allow gitea user to send mail
|
||||||
|
users.users.gitea.extraGroups = [ "mail-robot" ];
|
||||||
|
|
||||||
services.gitea-actions-runner.instances = {
|
services.gitea-actions-runner.instances = {
|
||||||
runrun = {
|
runrun = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
|
# Robot user that can see the password to send mail from jungle-robot
|
||||||
|
users.groups.mail-robot = {};
|
||||||
|
|
||||||
age.secrets.jungleRobotPassword = {
|
age.secrets.jungleRobotPassword = {
|
||||||
file = ../../secrets/jungle-robot-password.age;
|
file = ../../secrets/jungle-robot-password.age;
|
||||||
group = "gitea";
|
group = "mail-robot";
|
||||||
mode = "440";
|
mode = "440";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ let
|
|||||||
name = "jungle-web";
|
name = "jungle-web";
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
|
url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
|
||||||
rev = "739bf0175a7f05380fe7ad7023ff1d60db1710e1";
|
rev = "52abaf4d71652a9ef77a0b098db14ca33bffff4c";
|
||||||
hash = "sha256-ea5DzhYTzZ9TmqD+x95rdNdLbxPnBluqlYH2NmBYmc4=";
|
hash = "sha256-/ul9GazbOrOkmlvSgDz/+2W+V+ir5725Y7mVLc3rb0M=";
|
||||||
};
|
};
|
||||||
buildInputs = [ pkgs.hugo ];
|
buildInputs = [ pkgs.hugo ];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
|||||||
85
m/hut/ompss2-timer.nix
Normal file
85
m/hut/ompss2-timer.nix
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
systemd.timers = {
|
||||||
|
"ompss2-closing" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
Unit = "ompss2-closing.service";
|
||||||
|
OnCalendar = [ "*-03-15 07:00:00" "*-09-15 07:00:00"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"ompss2-freeze" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
Unit = "ompss2-freeze.service";
|
||||||
|
OnCalendar = [ "*-04-15 07:00:00" "*-10-15 07:00:00" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"ompss2-release" = {
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
Unit = "ompss2-release.service";
|
||||||
|
OnCalendar = [ "*-05-15 07:00:00" "*-11-15 07:00:00" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services =
|
||||||
|
let
|
||||||
|
closing = pkgs.writeText "closing.txt"
|
||||||
|
''
|
||||||
|
Subject: OmpSs-2 release enters closing period
|
||||||
|
|
||||||
|
Hi,
|
||||||
|
|
||||||
|
You have one month to merge the remaining features for the next OmpSs-2
|
||||||
|
release. Please, identify what needs to be merged and discuss it in the next
|
||||||
|
OmpSs-2 meeting.
|
||||||
|
|
||||||
|
Thanks!,
|
||||||
|
Jungle robot
|
||||||
|
'';
|
||||||
|
freeze = pkgs.writeText "freeze.txt"
|
||||||
|
''
|
||||||
|
Subject: OmpSs-2 release enters freeze period
|
||||||
|
|
||||||
|
Hi,
|
||||||
|
|
||||||
|
The period to introduce new features or breaking changes is over, only bug
|
||||||
|
fixes are allowed now. During this time, please prepare the release notes
|
||||||
|
to be included in the next OmpSs-2 release.
|
||||||
|
|
||||||
|
Thanks!,
|
||||||
|
Jungle robot
|
||||||
|
'';
|
||||||
|
release = pkgs.writeText "release.txt"
|
||||||
|
''
|
||||||
|
Subject: OmpSs-2 release now
|
||||||
|
|
||||||
|
Hi,
|
||||||
|
|
||||||
|
The period to introduce bug fixes is now over. Please, proceed to do the
|
||||||
|
OmpSs-2 release.
|
||||||
|
|
||||||
|
Thanks!,
|
||||||
|
Jungle robot
|
||||||
|
'';
|
||||||
|
mkServ = name: mail: {
|
||||||
|
"ompss2-${name}" = {
|
||||||
|
script = ''
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
cat ${mail} | ${config.security.wrapperDir}/sendmail star@bsc.es
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
DynamicUser = true;
|
||||||
|
Group = "mail-robot";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
(mkServ "closing" closing) //
|
||||||
|
(mkServ "freeze" freeze) //
|
||||||
|
(mkServ "release" release);
|
||||||
|
}
|
||||||
@@ -86,9 +86,7 @@ in {
|
|||||||
# when a task runs (srun) so we can ssh early.
|
# when a task runs (srun) so we can ssh early.
|
||||||
PrologFlags=Alloc,Contain,X11
|
PrologFlags=Alloc,Contain,X11
|
||||||
|
|
||||||
# LaunchParameters=ulimit_pam_adopt will set RLIMIT_RSS in processes
|
LaunchParameters=use_interactive_step
|
||||||
# adopted by the external step, similar to tasks running in regular steps
|
|
||||||
# LaunchParameters=ulimit_pam_adopt
|
|
||||||
SlurmdDebug=debug5
|
SlurmdDebug=debug5
|
||||||
#DebugFlags=Protocol,Cgroup
|
#DebugFlags=Protocol,Cgroup
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ let
|
|||||||
name = "jungle-web";
|
name = "jungle-web";
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
|
url = "https://jungle.bsc.es/git/rarias/jungle-website.git";
|
||||||
rev = "739bf0175a7f05380fe7ad7023ff1d60db1710e1";
|
rev = "52abaf4d71652a9ef77a0b098db14ca33bffff4c";
|
||||||
hash = "sha256-ea5DzhYTzZ9TmqD+x95rdNdLbxPnBluqlYH2NmBYmc4=";
|
hash = "sha256-/ul9GazbOrOkmlvSgDz/+2W+V+ir5725Y7mVLc3rb0M=";
|
||||||
};
|
};
|
||||||
buildInputs = [ pkgs.hugo ];
|
buildInputs = [ pkgs.hugo ];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ let
|
|||||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||||
|
quickShell = import ./pkgs/quick-shell/default.nix { pkgs = final; };
|
||||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||||
@@ -51,6 +52,7 @@ let
|
|||||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||||
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
||||||
|
slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; };
|
||||||
sonar = callPackage ./pkgs/sonar/default.nix { };
|
sonar = callPackage ./pkgs/sonar/default.nix { };
|
||||||
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
||||||
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
||||||
|
|||||||
76
pkgs/quick-shell/default.nix
Normal file
76
pkgs/quick-shell/default.nix
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
# This builds devshells using passthru to populate packages and inputsFrom
|
||||||
|
# lazily.
|
||||||
|
#
|
||||||
|
# Packages prefixed with @ are added to inputsFrom and the rest are
|
||||||
|
# added to packages. This makes it possible to obtain a devshell with combining
|
||||||
|
# inputsFrom and packages from the comand line:
|
||||||
|
#
|
||||||
|
# $ nix develop .#quickShell.@nosv.clang-tools.ovni.@tampi
|
||||||
|
#
|
||||||
|
# is equivalent to:
|
||||||
|
#
|
||||||
|
# with pkgs; mkShell {
|
||||||
|
# packages = [ clang-tools ovni ];
|
||||||
|
# inputsFrom = [ nosv tampi ];
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (builtins) attrNames getAttr listToAttrs;
|
||||||
|
inherit (pkgs) lib;
|
||||||
|
|
||||||
|
# list of all packages' names
|
||||||
|
names = attrNames pkgs;
|
||||||
|
|
||||||
|
# generate a attributes containing the selected packages + all the available
|
||||||
|
# packages in names ("" -> packages and "@" -> inputsFrom)
|
||||||
|
go =
|
||||||
|
selected:
|
||||||
|
let
|
||||||
|
mkAttrs =
|
||||||
|
isInputs:
|
||||||
|
(map (
|
||||||
|
name:
|
||||||
|
let
|
||||||
|
pkg = getAttr name pkgs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = (if isInputs then "@" else "") + name;
|
||||||
|
value = go (
|
||||||
|
if isInputs then
|
||||||
|
{
|
||||||
|
inherit (selected) packages;
|
||||||
|
inputsFrom = selected.inputsFrom ++ [ pkg ];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inherit (selected) inputsFrom;
|
||||||
|
packages = selected.packages ++ [ pkg ];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
) names);
|
||||||
|
|
||||||
|
attrs = listToAttrs ((mkAttrs true) ++ (mkAttrs false));
|
||||||
|
|
||||||
|
drv = pkgs.mkShell {
|
||||||
|
inherit (selected) inputsFrom packages;
|
||||||
|
name = # build a label from inputsFrom
|
||||||
|
if (selected.inputsFrom == [ ]) then
|
||||||
|
"nix-quick-shell"
|
||||||
|
else
|
||||||
|
lib.concatStringsSep "-" (map (v: v.pname or v.name or "unknown") selected.inputsFrom);
|
||||||
|
};
|
||||||
|
in
|
||||||
|
drv.overrideAttrs {
|
||||||
|
passthru = attrs // {
|
||||||
|
_passthru = drv.passthru;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
go {
|
||||||
|
inputsFrom = [ ];
|
||||||
|
packages = [ ];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user