From b7eb79ca0c30dcfed59a4a6b0d42aa734b2a5993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 7 May 2026 19:48:46 +0200 Subject: [PATCH 1/8] add list of CDN URLs --- inventory/group_vars/all.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 5dad42ea..5f3f1035 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -39,6 +39,15 @@ eessi_cvmfs_server_urls: - "http://azure-us-east-s1.eessi.science/cvmfs/@fqrn@" - "http://ral-uk-s1.eessi.science:8000/cvmfs/@fqrn@" +# URLs for all CDN Stratum 1 servers. +eessi_cvmfs_server_cdn_urls: + - domain: eessi.io + use_geoapi: true + urls: + - "http://s1eessieu1-cvmfs.openhtc.io/cvmfs/@fqrn@" + - "http://s1eessina1-cvmfs.openhtc.io/cvmfs/@fqrn@" + - "http://s1ral-cvmfs.openhtc.io/cvmfs/@fqrn@" + # Configuration of all the repositories. eessi_cvmfs_repositories: - repository: software.eessi.io From d153d2dc14e6c4ef10ecb97c4a9a82fbb7d97fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 7 May 2026 19:49:09 +0200 Subject: [PATCH 2/8] add option for using a CDN --- prepare-client-packages.yml | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/prepare-client-packages.yml b/prepare-client-packages.yml index 4afbd800..bd3c9844 100644 --- a/prepare-client-packages.yml +++ b/prepare-client-packages.yml @@ -40,9 +40,6 @@ - name: Make EESSI CVMFS domain configuration file ansible.builtin.copy: content: | - # Stratum 1 servers for the eessi.io domain - CVMFS_SERVER_URL="{{ item.urls | join(';') }}" - # Public keys for the eessi.io domain CVMFS_KEYS_DIR="/etc/cvmfs/keys/{{ item.domain }}" @@ -51,11 +48,24 @@ # The client profile is supposed to be set in /etc/cvmfs/default.local if [ "$CVMFS_CLIENT_PROFILE" = "single" ]; then - if [ "$CVMFS_HTTP_PROXY" = "" ]; then - # For individual clients (laptops, clusters < 5 nodes), use a site proxy - # where possible and otherwise a direct stratum 1 connection - CVMFS_HTTP_PROXY="DIRECT" - fi + if [ "$CVMFS_HTTP_PROXY" = "" ]; then + # For individual clients (laptops, clusters < 5 nodes), use a site proxy + # where possible and otherwise a direct stratum 1 connection + CVMFS_HTTP_PROXY="DIRECT" + fi + fi + + # Check if we should use a CDN + CVMFS_USE_CDN="$CVMFS_USE_CDN" + if [ -z "$CVMFS_USE_CDN" ] && [ "$CVMFS_HTTP_PROXY" = "DIRECT" ] || [ "$CVMFS_HTTP_PROXY" = "auto;DIRECT" ]; then + CVMFS_USE_CDN="yes" + fi + + # Stratum 1 servers for the eessi.io domain + if [ "$CVMFS_USE_CDN" = "yes" ]; then + CVMFS_SERVER_URL="{{ eessi_cvmfs_server_cdn_urls | selectattr('domain', 'equalto', 'eessi.io') | map(attribute='urls') | sum(start=[]) | join(';') }}" + else + CVMFS_SERVER_URL="{{ eessi_cvmfs_server_urls | selectattr('domain', 'equalto', 'eessi.io') | map(attribute='urls') | sum(start=[]) | join(';') }}" fi dest: "{{ package_source_dir }}/etc/cvmfs/domain.d/{{ item.domain }}.conf" From 155fc021b060200459628c72adc6c730c891ceb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 7 May 2026 19:58:44 +0200 Subject: [PATCH 3/8] split long lines --- prepare-client-packages.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/prepare-client-packages.yml b/prepare-client-packages.yml index bd3c9844..161a54bc 100644 --- a/prepare-client-packages.yml +++ b/prepare-client-packages.yml @@ -63,9 +63,11 @@ # Stratum 1 servers for the eessi.io domain if [ "$CVMFS_USE_CDN" = "yes" ]; then - CVMFS_SERVER_URL="{{ eessi_cvmfs_server_cdn_urls | selectattr('domain', 'equalto', 'eessi.io') | map(attribute='urls') | sum(start=[]) | join(';') }}" + CVMFS_SERVER_URL="{{ eessi_cvmfs_server_cdn_urls | selectattr('domain', 'equalto', 'eessi.io') | + map(attribute='urls') | sum(start=[]) | join(';') }}" else - CVMFS_SERVER_URL="{{ eessi_cvmfs_server_urls | selectattr('domain', 'equalto', 'eessi.io') | map(attribute='urls') | sum(start=[]) | join(';') }}" + CVMFS_SERVER_URL="{{ eessi_cvmfs_server_urls | selectattr('domain', 'equalto', 'eessi.io') | + map(attribute='urls') | sum(start=[]) | join(';') }}" fi dest: "{{ package_source_dir }}/etc/cvmfs/domain.d/{{ item.domain }}.conf" From 7d38d0969f99bafb0ae4badf8eb666f5d975cde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 8 May 2026 09:53:43 +0200 Subject: [PATCH 4/8] don't include eessi-hpc.org config anymore --- .github/workflows/build-test-release-client-packages.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 26ec3728..6d7421dd 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -36,12 +36,6 @@ jobs: echo "localhost ansible_connection=local" > inventory/hosts ansible-playbook ./prepare-client-packages.yml - - name: Include the old eessi-hpc.org config as well for now - run: | - wget https://github.com/EESSI/filesystem-layer/releases/download/v0.4.0/cvmfs-config-eessi-0.4.0.tar - tar -C ./package -xf cvmfs-config-eessi-0.4.0.tar - rm cvmfs-config-eessi-0.4.0.tar - # We probably should loop over the set {rpm,deb,osxpkg} to create packages, but # it will make debugging more annoying. From 1e686c036fb148fb6ee0cfc2612d858413dd40af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 8 May 2026 10:07:08 +0200 Subject: [PATCH 5/8] add some additional tests for the config package --- .../build-test-release-client-packages.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 6d7421dd..17f85c9d 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -238,7 +238,18 @@ jobs: run: sudo cvmfs_config setup - name: Test repository access - run: ls /cvmfs/software.eessi.io/ + run: | + ls /cvmfs/software.eessi.io/ + cfg=$(cvmfs_config showconfig software.eessi.io) + # Check that the GEO API is enabled + echo "$cfg" | grep "CVMFS_USE_GEOAPI=yes" + # CVMFS_CLIENT_PROFILE=single should set CVMFS_USE_CDN + echo "$cfg" | grep "CVMFS_USE_CDN=yes" + # Check if we can still override the CDN setting + echo "CVMFS_USE_CDN=custom_value | sudo tee -a /etc/cvmfs/default.local + sudo cvmfs_config reload software.eessi.io + cfg=$(cvmfs_config showconfig software.eessi.io) + echo "$cfg" | grep "CVMFS_USE_CDN=custom_value" # test-macos-package: # needs: build-macos-package From 7b027011bb0a14b26fc69fe5b001818100b626c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 8 May 2026 10:10:13 +0200 Subject: [PATCH 6/8] add missing " --- .github/workflows/build-test-release-client-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 17f85c9d..3ffcbd3f 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -246,7 +246,7 @@ jobs: # CVMFS_CLIENT_PROFILE=single should set CVMFS_USE_CDN echo "$cfg" | grep "CVMFS_USE_CDN=yes" # Check if we can still override the CDN setting - echo "CVMFS_USE_CDN=custom_value | sudo tee -a /etc/cvmfs/default.local + echo "CVMFS_USE_CDN=custom_value" | sudo tee -a /etc/cvmfs/default.local sudo cvmfs_config reload software.eessi.io cfg=$(cvmfs_config showconfig software.eessi.io) echo "$cfg" | grep "CVMFS_USE_CDN=custom_value" From 2d390ed9d43eb75658aaf055c79745b264d0b5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 8 May 2026 10:14:54 +0200 Subject: [PATCH 7/8] check server URLs --- .github/workflows/build-test-release-client-packages.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 3ffcbd3f..90e1dfaf 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -241,10 +241,14 @@ jobs: run: | ls /cvmfs/software.eessi.io/ cfg=$(cvmfs_config showconfig software.eessi.io) + # Print the full configuration for debugging purposes + echo "$cfg" # Check that the GEO API is enabled echo "$cfg" | grep "CVMFS_USE_GEOAPI=yes" # CVMFS_CLIENT_PROFILE=single should set CVMFS_USE_CDN echo "$cfg" | grep "CVMFS_USE_CDN=yes" + # Check that the openhtc.io CDN URLs are used for the Stratum 1 servers + echo "$cfg" | grep "CVMFS_SERVER_URL" | grep "openhtc.io" # Check if we can still override the CDN setting echo "CVMFS_USE_CDN=custom_value" | sudo tee -a /etc/cvmfs/default.local sudo cvmfs_config reload software.eessi.io From 322bdf103c0987f89059af5ad09f80c083b55a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 8 May 2026 10:19:05 +0200 Subject: [PATCH 8/8] one more check --- .github/workflows/build-test-release-client-packages.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 90e1dfaf..54d37a96 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -249,11 +249,17 @@ jobs: echo "$cfg" | grep "CVMFS_USE_CDN=yes" # Check that the openhtc.io CDN URLs are used for the Stratum 1 servers echo "$cfg" | grep "CVMFS_SERVER_URL" | grep "openhtc.io" + # Check if we can still override the CDN setting echo "CVMFS_USE_CDN=custom_value" | sudo tee -a /etc/cvmfs/default.local sudo cvmfs_config reload software.eessi.io cfg=$(cvmfs_config showconfig software.eessi.io) + # Print the full configuration for debugging purposes + echo "$cfg" + # Check that the custom value for CVMFS_USE_CDN shows up in the configuration echo "$cfg" | grep "CVMFS_USE_CDN=custom_value" + # Now we should not be using the openhtc.io URLs anymore + echo "$cfg" | grep "CVMFS_SERVER_URL" | grep -v "openhtc.io" # test-macos-package: # needs: build-macos-package