# Source of truth for SLURM accounts (groups) and users on Chacha/Disco.
#
# Applied with provision.py, which diffs this file against `sacctmgr show
# account`/`show assoc` on chacha (the node running slurmdbd) and emits the
# sacctmgr commands needed to reconcile. Edit this file for every new
# project/user instead of running add_slurmuser.sh by hand.
#
# Snapshotted from the live cluster on 2026-08-04. Two things were dropped
# on purpose, not carried forward as cruft:
#   - the `test`/`test2` account: admin-only, no real users, see ops/todo.md
#   - a stray `and` user under premium_rs (share=1, no real association):
#     leftover typo, never provisioned through this path
#
# Each tier maps to the QOS objects that already exist on the cluster
# (`sacctmgr show qos`) but are currently unused — every live association is
# still on QOS=normal with hand-set GrpTRES instead. provision.py attaches
# the correct partition-scoped QOS so Chacha/Disco/Dance get the right caps
# automatically (e.g. Disco's real 80-shard ceiling, not Chacha's 96).
#
# SLURM-only: this file does not manage Linux accounts or SSH keys. Those are
# Ansible's job — see provisioning/ansible/ (conf/users/ for UID/GID,
# conf/authorized_keys/ for keys) and docs/ops/tooling/ansible.md.

tiers:
  premium_rs:
    org: hesso
    description: premium research projects
    fairshare: 750
    qos:
      chacha: premium_chacha_qos
      disco: premium_disco_qos
      dance: premium_dance_qos
  standard_rs:
    org: hesso
    description: standard research projects
    fairshare: 250
    qos:
      chacha: standard_chacha_qos
      disco: standard_disco_qos
      dance: standard_dance_qos

groups:
  - name: mattech
    tier: premium_rs
    description: mattech project account
  - name: photocast
    tier: premium_rs
    description: photocast project account
  - name: simlab
    tier: premium_rs
    description: SIMLab project account
  - name: digitallifescience
    tier: standard_rs
    description: digitallifescience project account
  - name: dymonet
    tier: standard_rs
    description: dymonet project account
  - name: eventbasedcpc
    tier: standard_rs
    description: event based cpc project account
  - name: generalaccess
    tier: standard_rs
    description: generalaccess project account
  - name: omniperso
    tier: standard_rs
    description: omniperso project account
  - name: optival
    tier: standard_rs
    description: optival project account
  - name: pmpm
    tier: standard_rs
    description: pmpm project account
  - name: students
    tier: standard_rs
    description: account limits for all students
  - name: vortexdynamics
    tier: standard_rs
    description: vortexdynamics project account

users:
  # Direct premium_rs members (no project sub-account). Live association
  # currently shows standard-tier limits (cpu=24/shard=96/mem=256G/node=1)
  # instead of premium — provision.py --check will flag this drift; fix it
  # by giving them a real project account instead of leaving them direct.
  - username: jaime.barrancohernandez
    group: mattech
    partition: dance
  - username: laura.belli
    group: mattech
    partition: dance
  - username: loic.christen
    group: mattech
    partition: dance
  - username: mauro.leidi
    group: mattech
    partition: dance
  - username: yannic.delisle
    group: mattech
    partition: null
  - username: yannick.bovier
    group: mattech
    partition: dance
  - username: yiwei.jia
    group: mattech
    partition: dance

  - username: loic.azzalini
    group: photocast
    partition: dance

  ### SIMLab ###
  - username: cedric.travelletti
    group: simlab
    partition: dance
  - username: gregory.mermoud
    group: simlab
    partition: dance
  - username: alexandre.veuthey
    group: simlab
    partition: dance
  - username: fereshteh.jafari
    group: simlab
    partition: dance
  - username: glorymary.givi
    group: simlab
    partition: dance
  - username: marc.gillioz
    group: simlab
    partition: dance
  - username: marta.rende
    group: simlab
    partition: dance

  ### DLS ###
  - username: theophile.gentilhomme
    group: digitallifescience
    partition: dance
  - username: simon.duerr
    group: generalaccess
    partition: dance


  ### DYMONET ###
  - username: laura.finarelli
    group: dymonet
    partition: dance

  ### OTHERS ###
  - username: steve.devenes
    group: omniperso
    partition: dance

  - username: gregoire.castelain
    group: optival
    partition: dance

  - username: darko.petrovic
    group: pmpm
    partition: dance

  - username: roland.willa
    group: vortexdynamics
    partition: dance

  ### STUDENTS ###
  - username: alexandre.venturi
    group: students
    partition: dance
  - username: francisco.ribeiro
    group: students
    partition: dance
  - username: guillaume.bessard
    group: students
    partition: dance
  - username: jeremy.duc
    group: students
    partition: dance
  - username: louis.heredero
    group: students
    partition: dance
  
  - username: martin.tavernier
    group: students
    partition: dance
  - username: pim
    group: students
    partition: dance
  - username: sebastien.borloz
    group: students
    partition: dance

