diff --git a/ansible/extras.yml b/ansible/extras.yml index c7cacb877..8fb82aeba 100644 --- a/ansible/extras.yml +++ b/ansible/extras.yml @@ -48,6 +48,26 @@ name: cuda tasks_from: "{{ 'runtime.yml' if appliances_mode == 'configure' else 'install.yml' }}" +- name: Setup Apptainer + hosts: apptainer + gather_facts: yes + tags: apptainer + tasks: + - name: Install and configure Apptainer + include_role: + name: azimuth_cloud.image_utils.apptainer + tasks_from: "{{ 'configure.yml' if appliances_mode == 'configure' else 'main.yml' }}" + +- name: Setup Apptainer + hosts: nextflow + gather_facts: yes + tags: nextflow + tasks: + - name: Install and configure Nextflow + include_role: + name: azimuth_cloud.image_utils.nextflow + tasks_from: "{{ 'configure.yml' if appliances_mode == 'configure' else 'main.yml' }}" + - name: Persist hostkeys across rebuilds # Must be after filesystems.yml (for storage) # and before portal.yml (where OOD login node hostkeys are scanned) diff --git a/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json b/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json index 763165f62..3d586d154 100644 --- a/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json +++ b/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json @@ -1,6 +1,6 @@ { "cluster_image": { - "RL8": "openhpc-RL8-250514-1502-5a923b2c", - "RL9": "openhpc-RL9-250514-1502-5a923b2c" + "RL8": "openhpc-RL8-250204-1352-8d071ba8", + "RL9": "openhpc-RL9-250204-1432-8d071ba8" } } diff --git a/environments/common/inventory/group_vars/all/apptainer.yml b/environments/common/inventory/group_vars/all/apptainer.yml new file mode 100644 index 000000000..610156139 --- /dev/null +++ b/environments/common/inventory/group_vars/all/apptainer.yml @@ -0,0 +1,7 @@ +--- + +# Mounting /tmp by default can break assumptions made +# by some containers used in nf-core workflows. +apptainer_config_overrides: + - directive: "mount tmp" + value: "no" diff --git a/environments/common/inventory/group_vars/all/nextflow.yml b/environments/common/inventory/group_vars/all/nextflow.yml new file mode 100644 index 000000000..69b85f29d --- /dev/null +++ b/environments/common/inventory/group_vars/all/nextflow.yml @@ -0,0 +1,4 @@ +--- + +nextflow_skel_config: | + process.executor = 'slurm' diff --git a/environments/common/inventory/group_vars/all/openhpc.yml b/environments/common/inventory/group_vars/all/openhpc.yml index 005bdf04d..06dc6f033 100644 --- a/environments/common/inventory/group_vars/all/openhpc.yml +++ b/environments/common/inventory/group_vars/all/openhpc.yml @@ -38,7 +38,6 @@ openhpc_packages_default: - ohpc-gnu12-openmpi4-perf-tools # for hpctests - openblas-gnu12-ohpc # for hpctests (HPL) # EPEL packages: - - apptainer - podman-compose openhpc_packages_extra: [] openhpc_packages: "{{ (openhpc_packages_default + openhpc_packages_extra) | select | list }}" diff --git a/environments/common/inventory/groups b/environments/common/inventory/groups index b6c216ef6..5d181381c 100644 --- a/environments/common/inventory/groups +++ b/environments/common/inventory/groups @@ -182,3 +182,9 @@ extra_packages [gateway] # Add builder to this group to install gateway ansible-init playbook into image + +[apptainer] +# Hosts to install and configure Apptainer on + +[nextflow] +# Hosts to install and configure Nextflow on diff --git a/environments/common/layouts/everything b/environments/common/layouts/everything index 9f2c7c706..d9da796ff 100644 --- a/environments/common/layouts/everything +++ b/environments/common/layouts/everything @@ -125,3 +125,10 @@ builder [gateway:children] # Add builder to this group to install gateway ansible-init playbook into image builder + +[apptainer:children] +login +compute + +[nextflow:children] +login diff --git a/requirements.yml b/requirements.yml index 729280df5..2b402fbe7 100644 --- a/requirements.yml +++ b/requirements.yml @@ -48,7 +48,7 @@ collections: version: 0.4.0 - name: https://github.com/azimuth-cloud/ansible-collection-image-utils type: git - version: 0.5.0 + version: apptainer # stackhpc.pulp has pulp.squeezer as dependency, any version, but latest # requires newer ansible than can install - name: pulp.squeezer