Skip to content

fusion without wave ? #5344

@jfouret

Description

@jfouret

New feature

Hi,

First, thank you again for Nextflow, which is a wonderful tool.

I would like to request the ability to use fusion without requiring wave. While wave is a great piece of software, I'm wondering if it is necessary just to provide the fusion executable. For example, the aws-cli executable is provided differently, and it seems possible to do the same for the fusion executable.

I have noticed that the fusion executables are available at:

https://fusionfs.seqera.io/releases/pkg/2/4/2/fusion-amd64.tar.gz

However, I didn't see any license information associated with it. Could you clarify if it's permissible to use it freely?

From what I understand, we would need to configure the container hosts to mount the fusion binary into /usr/bin and mount a temporary directory from the host into /fusion with chmod 777. This can be done with a command like:

docker run -it --mount type=tmpfs,destination=/fusion,tmpfs-mode=0777 -v /local/path/to/fusion:/usr/bin/fusion  ubuntu

This can be setup easily with AWS Batch or docker with the configuration aws.batch.volumes and docker with docker.runOptions.

This kind of workaround might prevent the automatic usage of wave to provide fusion. However, I wasn't able to test this since using fusion without wave is currently not allowed by design.

Usage scenario

For pipelines based on Docker images, some users might find that wave is not required. Here are a few scenarios where using fusion without wave could be beneficial:

  • Directly referencing images by digest using @ ensures maximum reproducibility, which might not be compatible with wave.
  • In isolated environments within a private subnet, where all containers are provided with a local registry for security reasons, wave might not be accessible.
  • If we're using containers from a private registry that include licensed software (e.g., BLAT), sharing images externally via wave could pose compliance issues.
  • wave's API rate limits and the requirement for a Tower token might be restrictive for some users.

Suggest implementation

It would be beneficial to allow the use of fusion without wave, giving users the option to manage the configuration for the provisioning of the fusion executable themselves. This could be implemented with a configuration option like fusion.useWithoutWave.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions