Skip to content

Commit b69d2a9

Browse files
authored
Merge branch 'main' into fix/skelton-ssh-persist
2 parents ddcf14b + e6645fd commit b69d2a9

File tree

8 files changed

+155
-23
lines changed

8 files changed

+155
-23
lines changed

.github/workflows/stackhpc.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ jobs:
9090
. environments/.stackhpc/activate
9191
ansible-playbook -vv ansible/adhoc/hpctests.yml
9292
93-
- name: Run EESSI tests
94-
run: |
95-
. venv/bin/activate
96-
. environments/.stackhpc/activate
97-
ansible-playbook -vv ansible/ci/check_eessi.yml
93+
# - name: Run EESSI tests
94+
# run: |
95+
# . venv/bin/activate
96+
# . environments/.stackhpc/activate
97+
# ansible-playbook -vv ansible/ci/check_eessi.yml
9898

9999
- name: Confirm Open Ondemand is up (via SOCKS proxy)
100100
run: |

ansible/ci/check_eessi.yml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,34 @@
1717
repo: "https://github.com/eessi/eessi-demo.git"
1818
dest: "{{ eessi_test_rootdir }}/eessi-demo"
1919

20-
- name: Run test job
21-
ansible.builtin.shell:
22-
cmd: |
20+
- name: Create batch script
21+
copy:
22+
dest: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow/tensorflow.sh"
23+
content: |
24+
#!/usr/bin/env bash
25+
#SBATCH --output=%x.out
26+
#SBATCH --error=%x.out
2327
source /cvmfs/pilot.eessi-hpc.org/latest/init/bash
2428
srun ./run.sh
29+
30+
- name: Run test job
31+
ansible.builtin.shell:
32+
cmd: sbatch --wait tensorflow.sh
2533
chdir: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow"
26-
executable: /bin/bash
2734
register: job_output
2835

36+
- name: Retrieve job output
37+
slurp:
38+
src: "{{ eessi_test_rootdir }}/eessi-demo/TensorFlow/tensorflow.sh.out"
39+
register: _tensorflow_out
40+
no_log: true # as its base64 encoded so useless
41+
42+
- name: Show job output
43+
debug:
44+
msg: "{{ _tensorflow_out.content | b64decode }}"
45+
2946
- name: Fail if job output contains error
3047
fail:
3148
# Note: Job prints live progress bar to terminal, so use regex filter to remove this from stdout
3249
msg: "Test job using EESSI modules failed. Job output was: {{ job_output.stdout | regex_replace('\b', '') }}"
33-
when: '"Epoch 5/5" not in job_output.stdout'
34-
50+
when: '"Epoch 5/5" not in _tensorflow_out.content | b64decode'

ansible/roles/grafana-dashboards/files/slurm-jobs.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"gnetId": 13535,
4747
"graphTooltip": 0,
4848
"id": null,
49-
"iteration": 1607441312744,
49+
"iteration": 1607441312745,
5050
"links": [],
5151
"panels": [
5252
{
@@ -150,7 +150,7 @@
150150
}
151151
],
152152
"query": "*",
153-
"queryType": "randomWalk",
153+
"queryType": "lucene",
154154
"refId": "A",
155155
"timeField": "@timestamp"
156156
}
@@ -302,4 +302,4 @@
302302
"uid": "jYPt7MTGk",
303303
"version": 2,
304304
"description": "Requires https://github.com/stackhpc/slurm-openstack-tools"
305-
}
305+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Python3.9, pip 23.2.1
2+
anyio==3.7.1
3+
argon2-cffi==21.3.0
4+
argon2-cffi-bindings==21.2.0
5+
arrow==1.2.3
6+
asttokens==2.2.1
7+
async-lru==2.0.4
8+
attrs==23.1.0
9+
Babel==2.12.1
10+
backcall==0.2.0
11+
beautifulsoup4==4.12.2
12+
bleach==6.0.0
13+
certifi==2023.7.22
14+
cffi==1.15.1
15+
charset-normalizer==3.2.0
16+
comm==0.1.3
17+
debugpy==1.6.7
18+
decorator==5.1.1
19+
defusedxml==0.7.1
20+
exceptiongroup==1.1.2
21+
executing==1.2.0
22+
fastjsonschema==2.18.0
23+
fqdn==1.5.1
24+
idna==3.4
25+
importlib-metadata==6.8.0
26+
ipykernel==6.25.0
27+
ipython==8.14.0
28+
ipython-genutils==0.2.0
29+
ipywidgets==8.1.0
30+
isoduration==20.11.0
31+
jedi==0.19.0
32+
Jinja2==3.1.2
33+
json5==0.9.14
34+
jsonpointer==2.4
35+
jsonschema==4.18.4
36+
jsonschema-specifications==2023.7.1
37+
jupyter==1.0.0
38+
jupyter-console==6.6.3
39+
jupyter-events==0.7.0
40+
jupyter-lsp==2.2.0
41+
jupyter_client==8.3.0
42+
jupyter_core==5.3.1
43+
jupyter_server==2.7.0
44+
jupyter_server_terminals==0.4.4
45+
jupyterlab==4.0.3
46+
jupyterlab-pygments==0.2.2
47+
jupyterlab-widgets==3.0.8
48+
jupyterlab_server==2.24.0
49+
MarkupSafe==2.1.3
50+
matplotlib-inline==0.1.6
51+
mistune==3.0.1
52+
nbclient==0.8.0
53+
nbconvert==7.7.3
54+
nbformat==5.9.2
55+
nest-asyncio==1.5.7
56+
notebook==7.0.1
57+
notebook_shim==0.2.3
58+
overrides==7.3.1
59+
packaging==23.1
60+
pandocfilters==1.5.0
61+
parso==0.8.3
62+
pexpect==4.8.0
63+
pickleshare==0.7.5
64+
platformdirs==3.10.0
65+
prometheus-client==0.17.1
66+
prompt-toolkit==3.0.39
67+
psutil==5.9.5
68+
ptyprocess==0.7.0
69+
pure-eval==0.2.2
70+
pycparser==2.21
71+
Pygments==2.15.1
72+
python-dateutil==2.8.2
73+
python-json-logger==2.0.7
74+
PyYAML==6.0.1
75+
pyzmq==25.1.0
76+
qtconsole==5.4.3
77+
QtPy==2.3.1
78+
referencing==0.30.0
79+
requests==2.31.0
80+
rfc3339-validator==0.1.4
81+
rfc3986-validator==0.1.1
82+
rpds-py==0.9.2
83+
Send2Trash==1.8.2
84+
six==1.16.0
85+
sniffio==1.3.0
86+
soupsieve==2.4.1
87+
stack-data==0.6.2
88+
terminado==0.17.1
89+
tinycss2==1.2.1
90+
tomli==2.0.1
91+
tornado==6.3.2
92+
traitlets==5.9.0
93+
typing_extensions==4.7.1
94+
uri-template==1.3.0
95+
urllib3==2.0.4
96+
wcwidth==0.2.6
97+
webcolors==1.13
98+
webencodings==0.5.1
99+
websocket-client==1.6.1
100+
widgetsnbextension==4.0.8
101+
zipp==3.16.2

ansible/roles/openondemand/tasks/jupyter_compute.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,31 @@
22
# See https://osc.github.io/ood-documentation/latest/app-development/tutorials-interactive-apps/add-jupyter/software-requirements.html
33
# - Will already have openssl and lmod
44

5+
- name: Ensure python3.9 installed
6+
dnf:
7+
name: python39
8+
tags: install
9+
510
- name: Install jupyter venv
611
# Requires separate step so that the upgraded pip is used to install packages
712
pip:
813
name: pip
914
state: latest
10-
virtualenv: /opt/jupyter
11-
virtualenv_command: python3 -m venv
15+
virtualenv: /opt/jupyter-py39
16+
virtualenv_command: python3.9 -m venv
17+
tags: install
18+
19+
- name: Copy jupyter requirements file
20+
copy:
21+
src: jupyter_requirements.txt
22+
dest: /opt/jupyter-py39/jupyter_requirements.txt
1223
tags: install
1324

1425
- name: Install jupyter package in venv
1526
pip:
16-
name: jupyter
17-
virtualenv: /opt/jupyter
18-
virtualenv_command: python3 -m venv
27+
virtualenv: /opt/jupyter-py39
28+
virtualenv_command: python3.9 -m venv
29+
requirements: /opt/jupyter-py39/jupyter_requirements.txt
1930
tags: install
2031

2132

environments/.stackhpc/ansible.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ roles_path = ../../ansible/roles
1111
filter_plugins = ../../ansible/filter_plugins
1212

1313
[ssh_connection]
14-
ssh_args = -o ControlMaster=auto -o ControlPersist=240s -o PreferredAuthentications=publickey -o UserKnownHostsFile=/dev/null
14+
ssh_args = -o ControlMaster=auto -o ControlPath=~/.ssh/%r@%h-%p -o ControlPersist=240s -o PreferredAuthentications=publickey -o UserKnownHostsFile=/dev/null
1515
pipelining = True

environments/common/inventory/group_vars/all/grafana.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ grafana_datasources:
6363
url: "http://{{ prometheus_address }}:9090" # default prometheus port
6464
editable: true
6565
- name: slurmstats
66+
# see https://github.com/grafana/opensearch-datasource#configure-the-data-source-with-provisioning
6667
type: grafana-opensearch-datasource
6768
url: "https://{{ opensearch_address }}:9200"
6869
basicAuth: true
@@ -74,12 +75,15 @@ grafana_datasources:
7475
tlsSkipVerify: true
7576
database: filebeat-*
7677
timeField: "@timestamp"
77-
flavor: opensearch
78+
# Have to set flavor and version, but ansible/roles/opensearch/templates/opensearch.yml.j2 fakes version for filebeat
79+
# so need to set to fake version here:
80+
version: '7.10.2'
81+
flavor: elasticsearch
7882
editable: true
7983
# readOnly: false
8084

8185
grafana_plugins:
82-
- grafana-opensearch-datasource
86+
- grafana-opensearch-datasource 2.8.1
8387

8488
# want to set grafana_server.serve_from_sub_path if have Open Ondemand to proxy:
8589
grafana_server:

environments/common/inventory/group_vars/all/openondemand.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ openondemand_clusters:
3737
basic:
3838
script_wrapper: |
3939
module purge
40-
export PATH=/opt/jupyter/bin/:$PATH
40+
export PATH=/opt/jupyter-py39/bin/:$PATH
4141
%s
4242
set_host: host=$(hostname -s)
4343
vnc:

0 commit comments

Comments
 (0)