Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
495 commits
Select commit Hold shift + click to select a range
f95c446
add template for latest rocky
mira-miracoli Jan 18, 2024
1157411
Merge pull request #85 from mira-miracoli/add-rocky-9-latest
mira-miracoli Jan 19, 2024
da197c3
add quiet flag
mira-miracoli Jan 19, 2024
209c7fe
remove unnecessary var
mira-miracoli Jan 19, 2024
fdae4b6
Merge pull request #86 from mira-miracoli/python-script
mira-miracoli Jan 19, 2024
e35c5e2
omit values if null
mira-miracoli Jan 23, 2024
1350ff3
Merge pull request #88 from mira-miracoli/fix-extra-vars
mira-miracoli Jan 23, 2024
d6a8c96
use image_name directly
mira-miracoli Jan 23, 2024
5b66040
Merge pull request #89 from mira-miracoli/python-script
bgruening Jan 23, 2024
5809053
Merge branch 'htcondor-secondary' into dev
mira-miracoli Mar 7, 2024
1dc57af
add miniconda for jenkins
mira-miracoli Mar 14, 2024
9f80854
use kernel-lt only when < EL9
mira-miracoli Mar 14, 2024
ce8fb90
cuda from role
mira-miracoli Mar 14, 2024
53b500b
specify cuda package for Rocky9
mira-miracoli Mar 14, 2024
8d452de
use disk size variable
mira-miracoli Mar 14, 2024
f5644f7
increase gpu to 20G
mira-miracoli Mar 18, 2024
03554eb
update nvidia driver
mira-miracoli Mar 18, 2024
220eac2
syntax for modules
mira-miracoli Mar 18, 2024
1bb07b4
bump cuda role to fix rocky 9 (see release notes)
mira-miracoli Mar 19, 2024
7fed656
lint
sanjaysrikakulam Mar 20, 2024
25d4970
sync htcondor changes with https://github.com/usegalaxy-eu/infrastruc…
sanjaysrikakulam Mar 20, 2024
c588774
Merge pull request #91 from mira-miracoli/dev
mira-miracoli Mar 21, 2024
bb438c4
update htcondor server port variable name in the workers playbook
sanjaysrikakulam Mar 21, 2024
4766217
Merge pull request #92 from sanjaysrikakulam/update_htcondor_port_var
mira-miracoli Mar 21, 2024
872f258
pin docker to 25 because image v1 not supported in 26
mira-miracoli Mar 21, 2024
53b4dc3
Merge pull request #93 from mira-miracoli/pin-docker
sanjaysrikakulam Mar 21, 2024
571aef6
Fix docker version number
sanjaysrikakulam Mar 21, 2024
60854e6
Merge pull request #94 from sanjaysrikakulam/fix_docker_version_number
sanjaysrikakulam Mar 21, 2024
cb60c14
install nivida-container-toolkit
mira-miracoli Mar 27, 2024
2a80ce3
Merge pull request #95 from mira-miracoli/nvidia-container-toolkit
sanjaysrikakulam Mar 27, 2024
57cdcbd
add rsync to jenkins
mira-miracoli Jul 16, 2024
39c547c
Merge pull request #96 from mira-miracoli/add-rsync
mira-miracoli Jul 17, 2024
efba4cb
Update requirements.yml
mira-miracoli Aug 20, 2024
479ec25
Merge pull request #97 from usegalaxy-eu/update-condor-gh
mira-miracoli Aug 20, 2024
aa94899
install condor on internal+workers only
mira-miracoli Aug 21, 2024
a8dc011
remove vscode add gitignore
mira-miracoli Aug 21, 2024
5e494c7
Merge pull request #98 from mira-miracoli/condor-workers-only
mira-miracoli Aug 21, 2024
ea316f8
use playbook variable in ansible packer
mira-miracoli Oct 15, 2024
e178d4c
select playbook based on group
mira-miracoli Oct 15, 2024
fa80cd4
Create playbooks-internal.yml
mira-miracoli Oct 15, 2024
a5414ea
Update and rename all-playbooks.yml to playbooks-external.yml
mira-miracoli Oct 15, 2024
218cb1b
missing the directory
mira-miracoli Oct 15, 2024
6dccb2f
update rocky-9-latest checksum
mira-miracoli Oct 15, 2024
dd973ff
Merge pull request #100 from usegalaxy-eu/separate-playbooks-fix-vault
mira-miracoli Oct 15, 2024
b218624
add pxe boot playbook
mira-miracoli Nov 6, 2024
ea42d25
add dirs
mira-miracoli Nov 6, 2024
24ab711
ssh-hardening
mira-miracoli Nov 6, 2024
f0e51c0
fix pxe
mira-miracoli Nov 6, 2024
b0fdd0b
remove mv task
mira-miracoli Nov 6, 2024
73778ac
Update rocky latest checksum
mira-miracoli Dec 16, 2024
14df080
Merge pull request #101 from mira-miracoli/update-rocky-9-checksum
mira-miracoli Dec 17, 2024
670c2d6
add fixed for Jenkins runner image
mira-miracoli Dec 17, 2024
68e5e1c
use conda-forge and tsnyder for packer
mira-miracoli Dec 18, 2024
7f517e9
Merge pull request #103 from mira-miracoli/cf-only
bgruening Dec 18, 2024
4708924
Update pulsar_package_version
sebastian-luna-valero Jan 10, 2025
e8cc934
Merge pull request #104 from sebastian-luna-valero/patch-2
bgruening Jan 10, 2025
2314db1
Merge pull request #105 from usegalaxy-eu/dev
mira-miracoli Feb 17, 2025
00218bf
bump handy_os role, fix remap user error
mira-miracoli Feb 17, 2025
883f87b
remove development group
mira-miracoli Feb 26, 2025
4480ff5
rm devgroups breaks dracut
mira-miracoli Feb 26, 2025
e98aa4c
use master for dracut
mira-miracoli Mar 12, 2025
a125cd2
add pxe playbook to internal
mira-miracoli Mar 12, 2025
03294be
increase memory for dracut
mira-miracoli Mar 31, 2025
87659d3
create staponpriv homedir also for gpu and generic
mira-miracoli May 13, 2025
d527786
bump cuda
mira-miracoli May 13, 2025
373015c
inc disk for all to 32G for testing
mira-miracoli May 13, 2025
8406ea4
inc disk for all to 50G for testing (lol)
mira-miracoli May 13, 2025
b8fcf96
maybe 40G is sufficient
mira-miracoli May 14, 2025
ab98e71
try with my cuda install fix branch
mira-miracoli May 14, 2025
857923d
add gpu to condor playbook
mira-miracoli May 19, 2025
a498471
special cloud init for pxe
mira-miracoli May 19, 2025
6e07522
try without pinned cuda and pin later
mira-miracoli May 20, 2025
a567bdc
copy instead of block
mira-miracoli May 20, 2025
c82c8d5
remove external cloud init for pxe
mira-miracoli May 20, 2025
7b616c2
wrong hosts syntax
mira-miracoli May 20, 2025
2cc4d23
use cron for pxe init
mira-miracoli May 20, 2025
f39a6a2
remove dnf remove libcurl that also removed nvidia
mira-miracoli May 20, 2025
916fc93
restart sshd and condor after generating keys
mira-miracoli May 21, 2025
201111a
add image name to dynmotd
mira-miracoli May 21, 2025
c322c1c
fix pxe conditional cloud init
mira-miracoli May 27, 2025
d01f2d0
handle image name through packer variables
mira-miracoli Jun 2, 2025
fd64544
add kvm playbook
mira-miracoli Jun 2, 2025
a3970ed
wrong quoting for build tag var
mira-miracoli Jun 4, 2025
b3a17c9
wrong quoting for packer
mira-miracoli Jun 4, 2025
5f7114d
make fs for scratch storage
mira-miracoli Jun 4, 2025
423968b
make fs for scratch storage
mira-miracoli Jun 4, 2025
cca6d94
add gpu detection based constraint switch in init
mira-miracoli Jun 18, 2025
6a28c70
remove server_ca
mira-miracoli Jun 24, 2025
4f6c869
remove host sign / move to vgcn-infra-pxe
mira-miracoli Jun 24, 2025
aad65a5
copy signed ssh keys
mira-miracoli Jun 24, 2025
ed473cd
pin rocky 9.5
mira-miracoli Jun 25, 2025
37b6b6f
exclude kernel from auto-update
mira-miracoli Jun 25, 2025
bb03d27
exclude kernel update on pinned rocky version
mira-miracoli Jun 25, 2025
8d116a1
small cleanup
mira-miracoli Jun 25, 2025
f4c7942
add qcow_shrink.sh
mira-miracoli Jun 25, 2025
024ade6
Comment autoupdates until kernel supported
mira-miracoli Jun 30, 2025
6ac92a5
update roles and urls
mira-miracoli Jul 1, 2025
42b463e
add kernel debug message
mira-miracoli Jul 1, 2025
2373e80
do not update in kickstart
mira-miracoli Jul 2, 2025
563c1d0
remove latest version packages url
mira-miracoli Jul 2, 2025
92e9541
url needed
mira-miracoli Jul 2, 2025
73ea1e9
explicitly install kernel headers
mira-miracoli Jul 2, 2025
9e62f83
explicitly add kernel-headers
mira-miracoli Jul 7, 2025
ca73de0
set telegraf url correctly
mira-miracoli Jul 8, 2025
e6c19f0
set telegraf url correctly
mira-miracoli Jul 8, 2025
3c12d66
set telegraf output in vgcn playbook
mira-miracoli Jul 8, 2025
038dac7
run cloudinit pxe on every boot and log output
mira-miracoli Jul 29, 2025
e2b0092
fix errors in pxe init
mira-miracoli Jul 30, 2025
9aacb5b
set cpupower schedutil
mira-miracoli Aug 18, 2025
12f1f2d
re-activate auto-updates
mira-miracoli Aug 19, 2025
c6746f1
add governor var and check cpu0 directly instead of grep
mira-miracoli Aug 19, 2025
4753fe1
move cpugovernor to boot cron
mira-miracoli Aug 19, 2025
9942e36
remove cpupower service, it sets to performance
mira-miracoli Sep 8, 2025
f4412fd
add trim cron
mira-miracoli Nov 5, 2025
13b6483
Update version of usegalaxy_eu.handy to 3.2.0
mira-miracoli Dec 15, 2025
b1748df
Merge pull request #106 from usegalaxy-eu/mira-miracoli-patch-1
mira-miracoli Dec 17, 2025
563579f
Add redhat-lsb-core to pxe package list
mira-miracoli Dec 17, 2025
2b21073
Merge pull request #107 from usegalaxy-eu/mira-miracoli-patch-1
mira-miracoli Dec 17, 2025
395a2db
Add 'enablerepo: devel' to yum task
mira-miracoli Dec 17, 2025
2247e5c
Merge pull request #108 from usegalaxy-eu/mira-miracoli-patch-2
mira-miracoli Dec 17, 2025
a3cd04b
ignore roles gitignore
gsaudade99 Jan 12, 2026
8ce3887
Merge pull request #102 from mira-miracoli/fixes-for-jenkins
mira-miracoli Jan 12, 2026
0ed5172
fix system prune
gsaudade99 Jan 22, 2026
5ca34f7
Update ansible/group_vars/all.yml
gsaudade99 Jan 22, 2026
ddb42b0
Merge pull request #110 from usegalaxy-eu/fix/docker-prune
gsaudade99 Jan 22, 2026
03aa218
bumping the telegraf version
gsaudade99 Jan 29, 2026
b07ffde
skip gpg check for now
gsaudade99 Jan 29, 2026
5312ddf
add tty fix
gsaudade99 Jan 29, 2026
1195d53
adding rocky 9.7 instead (trying to resolve cuda problem)
gsaudade99 Jan 30, 2026
6fb4eb7
updating to 9.6 instead
gsaudade99 Jan 30, 2026
c8ae095
attempt to fix tty
gsaudade99 Jan 30, 2026
f2c7c36
trying systemd
gsaudade99 Jan 30, 2026
b2bb61b
update roles
gsaudade99 Feb 10, 2026
392ef24
qemu-img interprets fix as a subdirectory and kvm-build as the start …
gsaudade99 Feb 10, 2026
277e6cf
rever requirements.yml
gsaudade99 Feb 12, 2026
0b18134
pinning 9.6
gsaudade99 Feb 12, 2026
6db0b5a
attempt to pin kernel
gsaudade99 Feb 12, 2026
0409aa9
testing with update
gsaudade99 Feb 12, 2026
501aa66
testing with update
gsaudade99 Feb 12, 2026
5c43d28
testing rocky10.1
gsaudade99 Feb 13, 2026
da8c4dc
fix build to accept pxe yes and no option
gsaudade99 Feb 13, 2026
803cb5a
fix url
gsaudade99 Feb 13, 2026
ca0520d
fix build http reference
gsaudade99 Feb 13, 2026
679d4fe
fix build img name
gsaudade99 Feb 13, 2026
91abe71
found boot_command
gsaudade99 Apr 8, 2026
b6f8f6a
fix boot commands
gsaudade99 Apr 8, 2026
1967f52
rm ip and fix timezone deprecated options
gsaudade99 Apr 9, 2026
5509fa7
uncomment partitioning
gsaudade99 Apr 9, 2026
bafe0cf
refactor ssh configuration for RHEL10 + move system update to provisi…
gsaudade99 Apr 9, 2026
fabb189
revert scp option
gsaudade99 Apr 9, 2026
3b901cc
force scp on ansible
gsaudade99 Apr 9, 2026
6e42981
Add support for RHEL/Rocky 10 in ansible playbooks
gsaudade99 Apr 9, 2026
dad6dba
upgrading devsec
gsaudade99 Apr 9, 2026
8fb8183
make docker and java compatible with el 10
gsaudade99 Apr 10, 2026
2a0151d
update geerlingguy roles
gsaudade99 Apr 10, 2026
89c2d3d
testing generic and workers gpus
gsaudade99 Apr 10, 2026
9450f83
point to my fix branch of cvmfs
gsaudade99 Apr 10, 2026
9ee755c
fixing collection type in requirements (test)
gsaudade99 Apr 10, 2026
d57db05
point to lastest cvmfs commit
gsaudade99 Apr 13, 2026
d8253a1
cleanup tasks and role order
gsaudade99 Apr 13, 2026
83a6287
create user a priory
gsaudade99 Apr 13, 2026
aa0f6e0
rename 999 user before instalation script
gsaudade99 Apr 13, 2026
8dce801
typo
gsaudade99 Apr 13, 2026
f616997
change ownership
gsaudade99 Apr 14, 2026
6e7f2fb
rhel 10 for htcondor role
gsaudade99 Apr 14, 2026
c21ea49
rm kvm stuff
gsaudade99 Apr 14, 2026
527a0b9
cleanup - rm generic
gsaudade99 Apr 14, 2026
cfe5757
generic passed as flavor
gsaudade99 Apr 14, 2026
ed5ce54
procision kvm too
gsaudade99 Apr 14, 2026
8e74853
add missing vault
gsaudade99 Apr 14, 2026
2020305
refactor delivery
gsaudade99 Apr 15, 2026
e48d7d1
add no option to deliver
gsaudade99 Apr 15, 2026
49bf4c5
allow root login (testing)
gsaudade99 Apr 15, 2026
80920c0
update htcndor commit id
gsaudade99 Apr 15, 2026
accd830
ssh hardening order fix
gsaudade99 Apr 16, 2026
ff488e6
cleanup
gsaudade99 Apr 16, 2026
0677c87
converting into latest rocky 10
gsaudade99 Apr 16, 2026
5479735
point to master
gsaudade99 Apr 16, 2026
1ef8d09
ssh timeout after 10 mins instead
gsaudade99 Apr 16, 2026
e793afa
ks to latest
gsaudade99 Apr 16, 2026
385bfc5
add docs + make provisioner conditional
gsaudade99 Apr 16, 2026
f80f2ec
change collection
gsaudade99 Apr 16, 2026
a4f7597
change commit id
gsaudade99 Apr 16, 2026
556c12a
permit rootlogin on kvm hosts
gsaudade99 Apr 16, 2026
ba55f32
exclude kernel updates
gsaudade99 Apr 16, 2026
a7f2367
change cvmfs version
gsaudade99 Apr 20, 2026
5b11c82
move cvmfs telegraf telemetry from vgcn-infrastructure-playbook
gsaudade99 Apr 20, 2026
bed6855
add missing file
gsaudade99 Apr 20, 2026
866c9ac
adding ssh key support
gsaudade99 Apr 22, 2026
90a91b4
ading hosts key group to kvm too (testing)
gsaudade99 Apr 22, 2026
df177a7
making yes a string (testing)
gsaudade99 Apr 22, 2026
fd862ff
testing addding console on bootloader
gsaudade99 Apr 22, 2026
5f46406
testing addding console on bootloader
gsaudade99 Apr 22, 2026
dc92c84
use enable systemd instead
gsaudade99 Apr 22, 2026
d5bdc73
kvm image not booting??
gsaudade99 Apr 23, 2026
6d3c232
rm duplicated task
gsaudade99 Apr 23, 2026
7ae5474
rm minified bulls
gsaudade99 Apr 23, 2026
44d0e10
lets see if claude found it
gsaudade99 Apr 23, 2026
f18dff3
now attempt to fix the kernel panic
gsaudade99 Apr 23, 2026
2e1ff0d
move cloud-init installation to a kvm taks
gsaudade99 Apr 28, 2026
37b930d
rm exclude
gsaudade99 Apr 30, 2026
336f69f
update cmvfs role
gsaudade99 Apr 30, 2026
0f4baf5
update cvmfs role
gsaudade99 Apr 30, 2026
03be412
append kernel version
gsaudade99 Apr 30, 2026
ed708e4
update cvmfs
gsaudade99 May 4, 2026
83f7c07
update ansible role
gsaudade99 May 4, 2026
e43f2d1
Update ansible/generic.yml
gsaudade99 May 6, 2026
cd3458d
Update ansible/kvm.yml
gsaudade99 May 6, 2026
904ca84
Update ansible/group_vars/kvm.yml
gsaudade99 May 6, 2026
738597e
Upgrade `usegalaxy_eu.handy` to v3.3.0
domgz May 6, 2026
4586388
Upgrade `usegalaxy-eu.autofs` to v1.4.1
domgz May 6, 2026
b733f8e
Upgrade `openslx-ng.dracut` to v0.1.0
domgz May 6, 2026
68d5e83
Update templates/rockylinux-10-latest-x86_64-anaconda-ks.cfg
gsaudade99 May 6, 2026
01137e1
Update ansible/workers.yml
gsaudade99 May 6, 2026
be7cf17
Remove source restrictions for `shell` provisioner
domgz May 6, 2026
ca9f20e
testinmg with sed + drop condor port setup
gsaudade99 May 6, 2026
e0002d5
Merge branch 'fix/kvm-build' of github.com:usegalaxy-eu/vgcn into fix…
gsaudade99 May 6, 2026
a102b78
add ffmpeg to generic
mira-miracoli May 11, 2026
5aa7e88
remove java
mira-miracoli May 11, 2026
0fcf019
mv ffmpeg after epel repo installation
gsaudade99 May 12, 2026
87cbc32
make ffmpeg a role and install RPMFusion before
mira-miracoli May 12, 2026
21e563f
add rpm fusion free repo for ffmpeg
gsaudade99 May 12, 2026
67dde09
Merge branch 'fix/kvm-build' of github.com:usegalaxy-eu/vgcn into fix…
gsaudade99 May 12, 2026
2869e9a
disable gpg check
gsaudade99 May 12, 2026
9e6e899
bump dracut version
gsaudade99 May 12, 2026
c1a3fc9
download the checksum
gsaudade99 May 12, 2026
525acdd
typo
gsaudade99 May 12, 2026
77e83a6
rm duplicate password
gsaudade99 May 19, 2026
b6f7858
Update templates/build.pkr.hcl
gsaudade99 May 19, 2026
afddb5f
comment out ffmpef
gsaudade99 May 19, 2026
f667307
Merge branch 'fix/kvm-build' of github.com:usegalaxy-eu/vgcn into fix…
gsaudade99 May 19, 2026
9720868
rm unused var
gsaudade99 May 19, 2026
6141a86
rm unused roles
gsaudade99 May 19, 2026
d8c6fca
Keep code that adds "!generic" to images that do not run the generic.…
domgz May 19, 2026
086b0b6
Ensure GPG check is enabled during `ffmpeg` installation
domgz May 19, 2026
e41062d
Apply generic.yml to group `generic`
domgz May 19, 2026
b464383
Rename group_vars/gpu.yml to group_vars/workers.yml
domgz May 19, 2026
70b6515
Rename redundant group_vars/all.yml includes
domgz May 19, 2026
da638b4
Remove remaining Condor variables
domgz May 19, 2026
1443453
Undefine `ssh_host_keys_group`
domgz May 19, 2026
1b5182d
Verify that `ssh_host_keys_group` is not needed
domgz May 19, 2026
80443f4
Include `passlib` in requirements.txt
domgz May 20, 2026
31ec7be
Ensure `gnupg2` is installed
domgz May 20, 2026
0bbaef9
Ensure SSH host key permissions match defaults
domgz May 20, 2026
847321f
Verify that `ssh_host_keys_group` is not needed (fix)
domgz May 20, 2026
3bf969e
Ensure SSH host key permissions match defaults (SSH hardening role)
domgz May 20, 2026
ffbeda7
Revert "Verify that `ssh_host_keys_group` is not needed (fix)"
domgz May 20, 2026
1cab465
Revert "Verify that `ssh_host_keys_group` is not needed"
domgz May 20, 2026
2c27c0e
Merge pull request #111 from usegalaxy-eu/fix/kvm-build
domgz May 20, 2026
d8f4626
Merge pull request #112 from usegalaxy-eu/pxe
domgz May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
qemu/
virtualbox-iso/
vmware-iso/

packer_plugins/
ansible/collections
ansible/roles
# Created by https://www.gitignore.io/api/packer

### Packer ###
Expand All @@ -12,8 +14,10 @@ packer_cache/
*.box

# End of https://www.gitignore.io/api/packer
centos-7.3-x86_64

.vault_pass
.vault_password
*.retry
.venv
centos-7.x-x86_64/
.vscode
.idea
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Contributor information

Images are built from each tag and published as
[GitHub releases](https://github.com/usegalaxy-eu/vgcn/releases). All releases (including old ones) are also available
[on this website](https://usegalaxy.eu/static/vgcn/).
138 changes: 0 additions & 138 deletions Makefile

This file was deleted.

170 changes: 79 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,102 +1,90 @@
# Virtual Galaxy Compute Nodes (VGCN)

This repo contains all of the components required to build the "Virtual Galaxy
Compute Nodes" (VGCN) that make up the HTCondor cloud used in UseGalaxy.eu

Pre-built images are available here: [https://usegalaxy.eu/static/vgcn/](https://usegalaxy.eu/static/vgcn/)

## Features

All in one image, a single image gets you:

- HTCondor
- Pulsar
- NFS
- CVMFS
- Singularity
- Docker

Everything you need to run Galaxy jobs. You can structure this in various ways that meet your needs:

- Like useGalaxy.eu: one VM as the condor master, another N as job runners
- Like EU's remote clusters: one VM as the condor master + pulsar, another as NFS, and the rest as job runners
- For BYOC: A single node that does condor master + pulsar + job execution

## Development

Development happens into the __dev__ branch, images are built from __main__ branch.

## Changelog

- 60:
- MODIFIED: moved to Rocky Linux 8
- 50:
- MODIFIED: updated Pulsar to version 0.14.11
- MODIFIED: moved to kernel 5.x
- 40:
- ADDED: Nvidia driver
- ADDED: Cuda toolkit
- ADDED: GPU accelerated Docker containers support
- MODIFIED: moved to CENTOS8
- MODIFIED: updated Pulsar to version 0.14.0
- MODIFIED: updated HTCondor to version 8.8
- 32:
- MODIFIED: Pulsar toward Py3
- 31:
- ADDED: Pulsar
- ADDED: Fonts for some jobs
- ADDED: `at` daemon
- MODIFIED: Additional 'internal' and 'external' targets allowing us to include signed SSH host keys.
- REMOVED: vault
- REMOVED: roced
- 21: Initial Release

## Makefile

We include a makefile that should build the images, running `make` will inform you of the available targets:

```console
$ make
General syntax: <template>/<flavor>[/boot]
Detected builders:
qemu
Base images:
centos-8.x-x86_64/base
rockylinux-8.x-x86_64/base
centos-7.x-x86_64/base

Provisioning:
centos-8.x-x86_64/vgcn-bwcloud
centos-8.x-x86_64/jenkins
centos-8.x-x86_64/generic
rockylinux-8.x-x86_64/vgcn-bwcloud
rockylinux-8.x-x86_64/jenkins
rockylinux-8.x-x86_64/generic
centos-7.x-x86_64/vgcn-bwcloud
centos-7.x-x86_64/jenkins
centos-7.x-x86_64/generic
# Virtual Galaxy Compute Nodes

[Galaxy Europe](https://usegalaxy.eu/) runs jobs on compute nodes belonging
to the
[bwCloud](https://www.bw-cloud.org/)/[de.NBI-cloud](https://www.denbi.de/).
These compute nodes are known as "Virtual Galaxy Compute Nodes" (VGCN).

Virtual Galaxy Compute Nodes boot from VGCN images, which are built off this
repository and made available as
[GitHub releases](https://github.com/usegalaxy-eu/vgcn/releases) and on
[this static site](https://usegalaxy.eu/static/vgcn/).

## Virtual Galaxy Compute Node images

Virtual Galaxy Compute Node images contain everything needed to run
Galaxy jobs.

- [Apptainer](https://apptainer.org/)
- [CVMFS](https://cernvm.cern.ch/fs/)
- [Docker](https://www.docker.com/)
- [NFS](https://nfs.sourceforge.net/)
- [Pulsar](https://github.com/galaxyproject/pulsar)
- [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/)

Each service can be further configured via
[cloud-init](https://cloudinit.readthedocs.io/en/23.2.2/) scripts to meet
specific needs. A few setup ideas:

- Like on usegalaxy.eu: one machine as the HTCondor master, the rest as job
runners.
- Like usegalaxy.eu's remote clusters: one machine as the HTCondor master and
pulsar server, another as NFS file server, the rest as job runners.
- For "Bring Your own Compute" (BYOC) use cases: A single node that acts as
HTCondor master, Pulsar server, and job runner.

**Important:** HTCondor has a new authentication mechanism, which uses
passwords and tokens, generated automatically during startup. The easiest and
least error-prone way to set this up is during
[installation](https://htcondor.readthedocs.io/en/latest/getting-htcondor/admin-quick-start.html#administrative-quick-start-guide).

```diff
! This is why we removed HTCondor from public images.
```

## Dependencies
You can easily install it and set up your password by adding the `execute`
installation line from the link above to your cloud-init script. There you can
set your own password and host. Both should be identical on all machines you
use, the host is the hostname or IP address of your central manager - usually
the node that accepts Pulsar requests. An implementation in
[Pulsar-Infrastructure-Playbook](https://github.com/usegalaxy-eu/pulsar-infrastructure-playbook)
is in progress.

We have listed the versions we use, but other versions may work.
## Build instructions

| Component | Version |
|------------------------------------------------|------------|
| [Packer](https://www.packer.io/downloads.html) | 1.0.4 |
| Ansible | >= 2.4.3.0 |
| qemu | 2.5.0 |
Make sure the following packages are installed on your system.

## Building This Yourself
- [Packer](https://www.packer.io/downloads.html) >= 1.9.1, < 2
- [QEMU](https://www.packer.io/downloads.html) >= 6.2, < 9
- [Ansible](https://www.ansible.com/), see [requirements.txt](./requirements.txt)

All of the images are designed to be as generic as possible so you can use them
as-is. We will provide built images, but if you wish to build them yourself,
you'll simply want to do:
Run the `build.py` script to automatically template, provision, and assemble the image.

```shell
python build.py <template> <provisioning>... <delivery> [options]
```
make rockylinux-8.x-x86_64/vgcn-bwcloud

**Example:**
```shell
python build.py rockylinux-10-latest-x86_64 workers internal cloud -q
```

## Running It
### Arguments

- **`template`**: Selects the underlying operating system on which the image will be based. Supported templates can be found as `source.qemu.*` blocks in `templates/build.pkr.hcl` (e.g., `rockylinux-10-latest-x86_64`, `rockylinux-9-latest-x86_64`).
- **`provisioning`**: One or more Ansible playbooks to run (e.g., `workers`, `internal`, `jenkins`). Note that the `generic` playbook is implicit and applied globally to all builds.
- **`delivery`**: The delivery method or destination environment, which dictates the cloud-init and boot structure. This argument expects exactly one of the mutually exclusive choices: `cloud`, `kvm`, or `pxe` (use `no` to omit all). For local development this argument should default to `no`.

### Options

- `--openstack`: Automatically convert and upload the built image to your OpenStack tenant. Ensure your OpenStack RC file credentials are sourced.
- `--conda-env <path>`: Specifies a conda environment path containing `packer` and `qemu-img` binaries.
- `--publish <key_path>`: Secure copy the resulting raw image to the static hosting site and adjust permissions.
- `--dry-run`: Output the generated Packer and shell commands without executing them.
- `-q`, `--quiet`: Supress the spinner output during build.

Once the images are built and converted, a `.raw` output file will be available in the root directory.

## Running VGCN images

Please see https://github.com/usegalaxy-eu/terraform/ for examples of how to launch and configure this.
Please see [https://github.com/usegalaxy-eu/terraform/](https://github.com/usegalaxy-eu/terraform/) for examples of how to launch and configure this.

This file was deleted.

Loading