Skip to content

Commit

Permalink
Merge pull request #17 from ualberta-rcg/main
Browse files Browse the repository at this point in the history
update
  • Loading branch information
rahimkhoja authored Jan 21, 2025
2 parents 1b932c7 + c2b4178 commit 0664d38
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 25 deletions.
19 changes: 12 additions & 7 deletions slurmdbd/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libibmad-dev

# Add runtime configurations, users and groups for Munge and Slurm
RUN mkdir -p /etc/slurm /var/spool/slurm /var/log/slurm && \
groupadd -r slurm && useradd -r -g slurm -s /bin/false slurm && \
groupadd -r munge && useradd -r -g munge -s /bin/false munge
RUN groupadd -r slurm && useradd -r -g slurm -s /bin/false slurm && \
groupadd -r munge && useradd -r -g munge -s /bin/false munge

# Install Python from source
RUN cd /usr/src && \
Expand All @@ -85,8 +84,12 @@ RUN mkdir -p /usr/src && cd /usr/src && \
--sysconfdir=/etc \
--localstatedir=/var && \
make -j$(nproc) && make install && \
mkdir -p /var/lib/munge /var/log/munge /etc/munge && \
chown -R munge:munge /var/lib/munge /var/log/munge /etc/munge
mkdir -p /var/run/munge /run/munge /var/lib/munge /var/log/munge /etc/munge && \
chown -R munge:munge /etc/munge /var/run/munge /var/lib/munge /var/log/munge /run/munge && \
cp /opt/software/munge/bin/* /usr/local/bin && \
chmod 700 /var/lib/munge /var/run/munge && \
chmod 750 -R /etc/munge && \
chmod 755 /run/munge

# Build and install PMIx
RUN mkdir -p /usr/src && cd /usr/src && \
Expand All @@ -95,7 +98,7 @@ RUN mkdir -p /usr/src && cd /usr/src && \
./configure --prefix=$PMIX_PREFIX && make -j$(nproc) && make install

# Download and build Slurm
RUN mkdir -p /usr/src && cd /usr/src && \
RUN mkdir -p /usr/src /etc/slurm /var/spool/slurm /var/log/slurm && cd /usr/src && \
curl -LO https://github.com/SchedMD/slurm/archive/refs/tags/slurm-${SLURM_VERSION}.tar.gz && \
tar -xzf slurm-${SLURM_VERSION}.tar.gz && cd slurm-slurm-${SLURM_VERSION} && \
./configure --prefix=$PREFIX \
Expand All @@ -106,7 +109,9 @@ RUN mkdir -p /usr/src && cd /usr/src && \
--enable-pam \
--enable-restd \
--enable-lua && \
make -j$(nproc) && make install
make -j$(nproc) && make install && \
touch /var/log/slurm/slurm-dbd.log && \


COPY slurmdbd.conf.template /etc/slurm/slurmdbd.conf.template
COPY entrypoint.sh /entrypoint.sh
Expand Down
22 changes: 4 additions & 18 deletions slurmdbd/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,16 @@ while IFS= read -r line; do
done < /etc/slurm/slurmdbd.conf.template > /etc/slurm/slurmdbd.conf

# Slurm
mkdir -p /var/log/slurm/
touch /var/log/slurm/slurm-dbd.log
chown slurm:slurm /etc/slurm/slurmdbd.conf
chown slurm:slurm -R /var/log/slurm
#chown slurm:slurm /etc/slurm/slurmdbd.conf
#chown slurm:slurm -R /var/log/slurm
chmod 600 /etc/slurm/slurmdbd.conf

# Munge
mkdir -p /var/run/munge/
mkdir -p /var/lib/munge/
mkdir -p /var/log/munge/
cat /etc/munge/munge/munge.key | base64 -d > /etc/munge/munge.key

chown munge:munge -R /etc/munge
chown munge:munge -R /var/run/munge
chown munge:munge -R /var/lib/munge
chown munge:munge -R /var/log/munge
chown munge:munge -R /run/munge
chmod 700 /var/lib/munge
chmod 700 /var/run/munge/
chmod 750 -R /etc/munge
chmod 400 /etc/munge/munge.key
chmod 755 /run/munge
cp /opt/software/munge/bin/* /usr/local/bin

su -s /bin/bash -c "/opt/software/munge/sbin/munged --foreground --log-file=/var/log/munge/munge.log &" munge

# Run slurmdbd
exec slurmdbd "$@"

66 changes: 66 additions & 0 deletions slurmdbd/slurmdbd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
apiVersion: v1
kind: Namespace
metadata:
name: slurm
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: slurmdbd
namespace: slurm
spec:
selector:
matchLabels:
app: slurmdbd
template:
metadata:
labels:
app: slurmdbd
spec:
containers:
- name: slurmdbd
image: rkhoja/slurm:slurmdbd
imagePullPolicy: Always
env:
- name: STORAGE_HOST
value: paice-db-pxc-db-haproxy.percona-db-cluster.svc.cluster.local # Percona cluster service name
- name: STORAGE_PORT
value: "3306"
- name: STORAGE_USER
value: root
- name: STORAGE_PASS
valueFrom:
secretKeyRef:
name: paice-db-pxc-db-secrets
key: root
- name: STORAGE_LOC
value: "slurm_acct_db" # Or your desired database name
- name: AUTH_TYPE
value: "auth/munge"
volumeMounts:
- name: munge-key
mountPath: /etc/munge/
volumes:
- name: munge-key
secret:
secretName: slurm
defaultMode: 0400
items:
- key: munge
path: munge.keyfile
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: slurmdbd-service
namespace: slurm
spec:
selector:
app: slurmdbd
ports:
- port: 6819 # The port used by slurmdbd
targetPort: 6819
protocol: TCP
sessionAffinity: ClientIP # Enable sticky sessions
type: LoadBalancer # Or NodePort for bare-metal, depending on your setup

0 comments on commit 0664d38

Please sign in to comment.