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

Add wave docs #5392

Merged
merged 13 commits into from
Oct 11, 2024
61 changes: 61 additions & 0 deletions docs/wave.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,67 @@
The repository access keys must be provided as Seqera Platform credentials (see
[Authenticate private repositories](#authenticate-private-repositories) above).

### Mirroring containers

Wave allows mirroring i.e. copying containers used by your pipeline into a container registry of your choice, so that
containers are pulled by the pipeline from the target registry instead of the original registry.
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

This is useful to create on-demand cache of containers images that are co-located in the same region where the pipeline
pditommaso marked this conversation as resolved.
Show resolved Hide resolved
is executed, and therefore optimising cost and network efficiency.

To enable this capability include those settings in your Nextflow configuration:
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

```groovy
wave.enabled = true
wave.mirror = true
wave.build.repository = '<YOUR REGISTRY>'
tower.accessToken = '<YOUR ACCESS TOKEN>'
```

In the above snippet replace `<YOUR REGISTRY>` with a container registry of your choice e.g. `quay.io` (no prefix or suffix is needed)
pditommaso marked this conversation as resolved.
Show resolved Hide resolved
The container will be copied with the same name, tag and checksum in the specified registry. For example, if the source
pditommaso marked this conversation as resolved.
Show resolved Hide resolved
container is `quay.io/biocontainers/bwa:0.7.13--1` and the build repository setting is `foo.com`, the resulting container
name will be `foo.com/biocontainers/bwa:0.7.13--1`.
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

:::{tip}
When using a path prefix in target registry name, it will be pre-pended to the resulting container name. For example

Check failure on line 171 in docs/wave.md

View workflow job for this annotation

GitHub Actions / Check for spelling errors

pre-pended ==> prepended
pditommaso marked this conversation as resolved.
Show resolved Hide resolved
having `quay.io/biocontainers/bwa:0.7.13--1` as source container and `foo.com/bar` as build repository, the resulting
container will be named `foo.com/bar/biocontainers/bwa:0.7.13--1`.
:::

The credentials to allow the push of containers in the target repository needs to be provided via Seqera Platform
credentials manager, whose account is specified in the `tower.accessToken` in the above configuration.
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

### Container security scanning

Wave allows scanning containers used in your pipelines for security vulnerabilities, and report an execution error
when one or more security issues are found.

To enable this capability adds the following settings in your Nextflow configuration file:
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

```groovy
wave.enabled = true
wave.scan.mode = 'required'
tower.accessToken = '<YOUR ACCESS TOKEN>'
```

When using these setting will only allows the use of the container in your Nextflow pipeline only if has no security
vulnerabilities. You can define the level of accepted vulnerabilities by using the `wave.scan.levels`. For example:
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

```
wave.scan.levels = 'low,medium'
```

The above setting will allow the use of containers having vulnerabilities with *low* and *medium*
levels [common vulnerabilities scoring system](https://en.wikipedia.org/wiki/Common_Vulnerability_Scoring_System).
Accepted values are `low`, `medium`, `high` and `critical`.
pditommaso marked this conversation as resolved.
Show resolved Hide resolved

:::{note}
Wave security scanning applies to any container used in your pipeline, irrespective it was built by Wave or accessed
through it. The container scan automatically expires after one week, if containers is accessed again after 7 days or
more the security scan is executed one more time.
pditommaso marked this conversation as resolved.
Show resolved Hide resolved
:::

### Run pipelines using Fusion file system

Wave containers allows you to run your containerised workflow with the {ref}`fusion-page`.
Expand Down
Loading