Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to new infrastructure + eessi.io repo #160

Merged
merged 25 commits into from
Nov 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4f6d564
eessi-hpc.org -> eessi.io
bedroge Sep 9, 2023
5c64985
prepare for eessi.io domain
bedroge Sep 9, 2023
2b2b782
add (temporary) servers and keys for eessi.io
bedroge Sep 29, 2023
85d0870
replace pilot.eessi-hpc.org by software.eessi.io
bedroge Sep 29, 2023
1f5e649
remove commented line with old stratum 0
bedroge Sep 29, 2023
9a64007
ingest to new software.eessi.io repo
bedroge Oct 2, 2023
52aa5af
update comment about generic and vendorless targets
bedroge Oct 2, 2023
1bafe5b
define files and (variant) symlinks for software.eessi.io
bedroge Oct 2, 2023
476594c
add .yml extension
bedroge Oct 3, 2023
da96037
fix loop and run as repo owner
bedroge Oct 3, 2023
d3dedc5
run create_cvmfs_content_structure role on stratum0
bedroge Oct 3, 2023
73d9312
use DNS names instad of IPs
bedroge Nov 3, 2023
83d02b0
remove 'latest' symlink
bedroge Nov 9, 2023
7f9b6c1
add description to software.eessi.io repo
bedroge Nov 9, 2023
4ea9f64
Merge branch 'main' into eessi.io
bedroge Nov 9, 2023
0090870
only use CI-enabled repos for all playbooks
bedroge Nov 9, 2023
f6383af
add ci repo
bedroge Nov 9, 2023
2de1d94
first check cvmfs_repositories, then use eessi_cvmfs_repositories
bedroge Nov 9, 2023
b04dd46
remove ci.eessi.io for now
bedroge Nov 9, 2023
cb4faee
only add the metadata for servers with at least one repo
bedroge Nov 9, 2023
d32ecba
first check cvmfs_repositories, then use eessi_cvmfs_repositories
bedroge Nov 9, 2023
27bc491
revert removal that checks for stratum1 playbook
bedroge Nov 9, 2023
45aa2ff
use localhost, since this is always running on stratum 0
bedroge Nov 10, 2023
3e21537
set default repo owner to root
bedroge Nov 10, 2023
e4f085b
use new public key
bedroge Nov 10, 2023
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
14 changes: 7 additions & 7 deletions .github/workflows/build-test-release-client-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,12 +147,12 @@ jobs:
run: sudo cvmfs_config setup

- name: Test repository access
run: ls /cvmfs/pilot.eessi-hpc.org/
run: ls /cvmfs/software.eessi.io/

test-rpm-package:
needs: build-linux-packages
runs-on: ubuntu-latest
container:
container:
image: centos:centos7
options: --device /dev/fuse --privileged

Expand Down Expand Up @@ -183,10 +183,10 @@ jobs:

- name: Mount the repositories
#run: cvmfs_config setup
run: mkdir -p /cvmfs/pilot.eessi-hpc.org && mount -t cvmfs pilot.eessi-hpc.org /cvmfs/pilot.eessi-hpc.org
run: mkdir -p /cvmfs/software.eessi.io && mount -t cvmfs software.eessi.io /cvmfs/software.eessi.io

- name: Test repository access
run: ls /cvmfs/pilot.eessi-hpc.org/
run: ls /cvmfs/software.eessi.io/

test-tar-package:
needs: build-linux-packages
Expand Down Expand Up @@ -223,7 +223,7 @@ jobs:
run: sudo cvmfs_config setup

- name: Test repository access
run: ls /cvmfs/pilot.eessi-hpc.org/
run: ls /cvmfs/software.eessi.io/

# test-macos-package:
# needs: build-macos-package
Expand Down Expand Up @@ -254,10 +254,10 @@ jobs:
# run: echo "CVMFS_CLIENT_PROFILE=single" | sudo tee /etc/cvmfs/default.local
#
# - name: Mount the repositories
# run: sudo mkdir -p /Users/Shared/cvmfs/pilot.eessi-hpc.org && sudo mount -t cvmfs pilot.eessi-hpc.org /Users/Shared/cvmfs/pilot.eessi-hpc.org
# run: sudo mkdir -p /Users/Shared/cvmfs/software.eessi.io && sudo mount -t cvmfs software.eessi.io /Users/Shared/cvmfs/software.eessi.io
#
# - name: Test repository access
# run: ls /Users/Shared/cvmfs/pilot.eessi-hpc.org/
# run: ls /Users/Shared/cvmfs/software.eessi.io/

release:
#needs: [build-linux-packages, build-macos-package, test-deb-package, test-rpm-package, test-macos-package, test-tar-package]
Expand Down
94 changes: 18 additions & 76 deletions inventory/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ eessi_cvmfs_repos_enabled: true
eessi_email: [email protected]

#
# Defaults for eessi-hpc.org repos.
# Defaults for eessi.io repos.
#

# We do not use a config repo anymore.
Expand All @@ -18,97 +18,39 @@ eessi_cvmfs_config_repo: {}
# /etc/cvmfs/keys/*.pub
# Note: you first have to run the stratum0.yml playbook once to generate the repositories and keys.
eessi_cvmfs_keys:
- path: /etc/cvmfs/keys/eessi-hpc.org/cvmfs-config.eessi-hpc.org.pub
- path: /etc/cvmfs/keys/eessi.io/software.eessi.io.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqoTBc/Eksr9ECEOoCzHA
F20UjePR7mJyWB13eTBXnjq7PLKKilfk2llLKetPIRMEmbvp97NiQ9ALe/tiGDzT
1Wg82Mf9oO4DNQYrTfE/MP5inIrMtSv1WnYJYV4Bgm24s8IhHXytIf1D4qt0x1v5
0yRui0dwaZrErWKRKufbJ6ehmEDHuVSEAujrORyig/jYFKVyTaCsXnmwFDJmX2Uw
RGCaf0M9ZLYs9t/SWA0s08rle5kH82hgBsIvUr7PLT7hbU407VK6+Y02tuxbI0JR
+hCt494UsFs3tchmTebpK+x3pVRXybQ66Qm1mQiaz+2VbUJdQEov4RCC5PcOmOOk
BwIDAQAB
-----END PUBLIC KEY-----
- path: /etc/cvmfs/keys/eessi-hpc.org/pilot.eessi-hpc.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAommtaoqQ36Rb/cFnqUWg
8FoYCOjJWVBMQ4sVZ87oFRWehOUbcfy/ah85D9055HQws7i/hLNGJJAa7Es3E2o8
v8LtSlRdfR1A7b7LA6p3213HHz6dNU6I1riwtE2OP7/w4Q3+Agj1iRtW535GwzGo
4ZbewL8T1kbyaEm4HyefoitHXJthoPyTlYAhvAegIil1VJPhJZW+q/NWxnsd9QGJ
uAtbSICQg6mBJI50KiCBYmKHOAjH2W8qEnLWc7JoPoNvAHuMx1ya6YerBM5T9Esm
HJN0HHOVdRIwNjjPkV2jIqhJoI85no89v8/V45SFPVo+A7N0Cj4QdQrQTezpnlby
FQIDAQAB
-----END PUBLIC KEY-----
# The following (duplicate) key can be removed after this PR has been merged:
# https://github.com/galaxyproject/ansible-cvmfs/pull/32
- path: /etc/cvmfs/keys/eessi-hpc.org/data.eessi-hpc.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAommtaoqQ36Rb/cFnqUWg
8FoYCOjJWVBMQ4sVZ87oFRWehOUbcfy/ah85D9055HQws7i/hLNGJJAa7Es3E2o8
v8LtSlRdfR1A7b7LA6p3213HHz6dNU6I1riwtE2OP7/w4Q3+Agj1iRtW535GwzGo
4ZbewL8T1kbyaEm4HyefoitHXJthoPyTlYAhvAegIil1VJPhJZW+q/NWxnsd9QGJ
uAtbSICQg6mBJI50KiCBYmKHOAjH2W8qEnLWc7JoPoNvAHuMx1ya6YerBM5T9Esm
HJN0HHOVdRIwNjjPkV2jIqhJoI85no89v8/V45SFPVo+A7N0Cj4QdQrQTezpnlby
FQIDAQAB
-----END PUBLIC KEY-----
- path: /etc/cvmfs/keys/eessi-hpc.org/ci.eessi-hpc.org.pub
key: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAommtaoqQ36Rb/cFnqUWg
8FoYCOjJWVBMQ4sVZ87oFRWehOUbcfy/ah85D9055HQws7i/hLNGJJAa7Es3E2o8
v8LtSlRdfR1A7b7LA6p3213HHz6dNU6I1riwtE2OP7/w4Q3+Agj1iRtW535GwzGo
4ZbewL8T1kbyaEm4HyefoitHXJthoPyTlYAhvAegIil1VJPhJZW+q/NWxnsd9QGJ
uAtbSICQg6mBJI50KiCBYmKHOAjH2W8qEnLWc7JoPoNvAHuMx1ya6YerBM5T9Esm
HJN0HHOVdRIwNjjPkV2jIqhJoI85no89v8/V45SFPVo+A7N0Cj4QdQrQTezpnlby
FQIDAQAB
-----END PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyau1UFUcoiqpE5U9StON
W0Trc3PM02AA5kYgknrqZJdusj5PcNg7rhOnrd+SX8BIiVtVMr6mqORXsJ2FNydJ
lfm512GcmurM154m6Hz4I+UttcpVLe1CvlyxjjCrN0siSiPnLDONy3Ih1PWyRlA/
sobSaIhx3Vyn1IzC0nbjstKObAYJs2kjokS+cipX2oIXJSoxkhvXcxmiMCi2GQIs
KTQDT+bATs9eK+ZqY4n5x8VX87AlMBQuSCP5mA8VQPx4aCf8AjHWAn3qmPrhk3od
Z/Cl9vrYzoWJT1HOyumv7aEv7UlY81++3w/AwYKXLJI6ioop2AotjrUm3w2U3+k7
WQIDAQAB
-----END PUBLIC KEY-----

# URLs for all the Stratum 1 servers.
eessi_cvmfs_server_urls:
- domain: eessi-hpc.org
- domain: eessi.io
use_geoapi: true
urls:
- "http://rug-nl.stratum1.cvmfs.eessi-infra.org/cvmfs/@fqrn@"
- "http://bgo-no.stratum1.cvmfs.eessi-infra.org/cvmfs/@fqrn@"
- "http://azure-us-east1.stratum1.cvmfs.eessi-infra.org/cvmfs/@fqrn@"
- "http://aws-eu-west1.stratum1.cvmfs.eessi-infra.org/cvmfs/@fqrn@"
- "http://aws-eu-central-s1.eessi.science/cvmfs/@fqrn@"
- "http://azure-us-east-s1.eessi.science/cvmfs/@fqrn@"

# Configuration of all the repositories.
eessi_cvmfs_repositories:
- repository: pilot.eessi-hpc.org
stratum0: rug-nl.stratum0.cvmfs.eessi-infra.org
- repository: software.eessi.io
stratum0: rug-nl-s0.eessi.science
owner: "{{ cvmfs_repo_owner | default('root') }}"
key_dir: /etc/cvmfs/keys/eessi-hpc.org
key_dir: /etc/cvmfs/keys/eessi.io
server_options:
- CVMFS_AUTO_GC=false
- CVMFS_AUTO_TAG_TIMESPAN="30 days ago"
- CVMFS_GARBAGE_COLLECTION=true
client_options: []
use_for_ci: false
description: Repository containing pilot versions of the EESSI software stack.
- repository: data.eessi-hpc.org
stratum0: rug-nl.stratum0.cvmfs.eessi-infra.org
owner: "{{ cvmfs_repo_owner | default('root') }}"
key_dir: /etc/cvmfs/keys/eessi-hpc.org
server_options:
- CVMFS_AUTO_GC=false
- CVMFS_AUTO_TAG_TIMESPAN="30 days ago"
- CVMFS_GARBAGE_COLLECTION=true
client_options: []
use_for_ci: false
description: "Data files used for applications available in the EESSI stack."
- repository: ci.eessi-hpc.org
stratum0: rug-nl.stratum0.cvmfs.eessi-infra.org
owner: "{{ cvmfs_repo_owner | default('root') }}"
key_dir: /etc/cvmfs/keys/eessi-hpc.org
server_options:
- CVMFS_AUTO_GC=false
- CVMFS_GARBAGE_COLLECTION=true
client_options: []
use_for_ci: true
description: "Small-sized repository used for CI purposes."
description: "Repository that contains the EESSI software stacks."

# Meta information for CVMFS Stratum servers
cvmfs_server_meta_administrator: "EESSI CVMFS Administrators"
Expand Down
4 changes: 2 additions & 2 deletions prepare-client-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@
- name: Make EESSI CVMFS domain configuration file
copy:
content: |
# Stratum 1 servers for the eessi-hpc.org domain
# Stratum 1 servers for the eessi.io domain
CVMFS_SERVER_URL="{{ item.urls|join(';') }}"

# Public keys for the eessi-hpc.org domain
# Public keys for the eessi.io domain
CVMFS_KEYS_DIR="/etc/cvmfs/keys/{{ item.domain }}"

# Enable or disable the Geo API, based on the configuration file
Expand Down
2 changes: 1 addition & 1 deletion roles/create_cvmfs_content_structure/files/.cvmfsdirtab
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/versions/*/software/*/*/*/*/software
/versions/*/software/*/*/*/*/software/*/*
/versions/*/software/*/*/*/*/modules
# generic and graviton2 are one level less deep
# generic and some (aarch64) targets are one level less deep
/versions/*/software/*/*/*/software
/versions/*/software/*/*/*/software/*/*
/versions/*/software/*/*/*/modules
9 changes: 5 additions & 4 deletions roles/create_cvmfs_content_structure/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@
delegate_to: localhost
ansible.builtin.stat:
path: "{{ role_path }}/vars/{{ item.repository }}.yml"
with_items: "{{ eessi_cvmfs_repositories }}"
register: repo_vars_file
with_items: "{{ cvmfs_repositories | default(eessi_cvmfs_repositories) }}"
register: repo_vars_files

- name: "Apply do_repo for each repository with a vars file"
ansible.builtin.include_tasks: do_repo.yml
vars:
cvmfs_repo: "{{ repo_vars_file.item.repository }}"
when: repo_vars_file.stat.exists
with_items: "{{ repo_vars_file.results }}"
with_items: "{{ repo_vars_files.results }}"
loop_control:
loop_var: repo_vars_file
args:
apply:
become: "{{ 'yes' if repo_vars_file.item.owner == 'root' else 'no' }}"
become: "{{ 'true' if repo_vars_file.item.owner != lookup('env', 'USER') else 'false' }}"
become_user: "{{ repo_vars_file.item.owner }}"
10 changes: 10 additions & 0 deletions roles/create_cvmfs_content_structure/vars/software.eessi.io.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Specifications of files and symlinks for the software.eessi.io CVMFS repository.
# Paths for files and symlinks should be relative to the root of the repository.
---
files:
- name: .cvmfsdirtab
dest: ''
mode: '644'

symlinks:
host_injections: '$(EESSI_HOST_INJECTIONS:-/opt/eessi)'
3 changes: 2 additions & 1 deletion roles/cvmfs_server_meta_info/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
group: root
mode: 0644
become: true
when: (cvmfs_repositories | length) > 0

- name: Create meta information for each CVMFS repository
ansible.builtin.include_tasks: repo_meta_info.yml
Expand All @@ -17,6 +18,6 @@
recommended-stratum0: "http://{{ item.stratum0 }}/cvmfs/{{ item.repository }}"
recommended-stratum1s: "{{ eessi_cvmfs_server_urls | selectattr('domain', 'in', item.repository) |
map(attribute='urls') | map('regex_replace', '@fqrn@', item.repository) }}"
with_items: "{{ eessi_cvmfs_repositories }}"
with_items: "{{ cvmfs_repositories | default(eessi_cvmfs_repositories) }}"
when: "'cvmfsstratum0servers' in group_names or cvmfs_role == 'stratum0'"
...
4 changes: 2 additions & 2 deletions roles/cvmfs_server_meta_info/tasks/repo_meta_info.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@

- name: Get the current meta information of this repository from the server
ansible.builtin.command:
cmd: "cvmfs_swissknife info -M -r {{ this_cvmfs_repo_meta['recommended-stratum0'] }}"
cmd: "cvmfs_swissknife info -M -r http://localhost:{{ cvmfs_stratum0_http_ports[0] | default('80') }}/cvmfs/{{ this_cvmfs_repo.repository }}"
changed_when: false
register: current_repo_meta

- name: Update the repository's meta information
ansible.builtin.command:
cmd: "cvmfs_server update-repoinfo -f {{ tmp_json_file.path }} {{ this_cvmfs_repo.repository }}"
when: (current_repo_meta.stdout | checksum) != json_file_stat.stat.checksum
become_user: "{{ cvmfs_repo_owner }}"
become_user: "{{ cvmfs_repo_owner | default('root') }}"

- name: Remove temporary json file
ansible.builtin.file:
Expand Down
2 changes: 1 addition & 1 deletion scripts/ingest-tarball.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

# Only if it passes these checks, the tarball gets ingested to the base dir in the repository specified below.

repo=pilot.eessi-hpc.org
repo=software.eessi.io
basedir=versions
decompress="gunzip -c"
# list of supported architectures for compat and software layers
Expand Down
1 change: 1 addition & 0 deletions stratum0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@
when: ansible_facts['os_family'] == 'RedHat'
- galaxyproject.cvmfs
- cvmfs_server_meta_info
- create_cvmfs_content_structure
...
Loading