-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add initial sections from Google Doc
- Loading branch information
1 parent
c158d82
commit 29752d4
Showing
12 changed files
with
223 additions
and
110 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
title: Nextflow configuration for Wave | ||
--- | ||
|
||
The following configuration options are available: | ||
|
||
| Method | Description | | ||
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ||
| `wave.enabled` | Enable/disable the execution of Wave containers | | ||
| `wave.endpoint` | The Wave service endpoint (default: `https://wave.seqera.io`) | | ||
| `wave.build.repository` | The container repository where image built by Wave needs to be uploaded (note: the corresponding credentials need to be provided in your Seqera Platform account). | | ||
| `wave.build.cacheRepository` | The container repository used to cache image layers build by the Wave service (note: the corresponding credentials need to be provided in your Seqera Platform account). | | ||
| `wave.conda.mambaImage` | The Mamba container image is used to build Conda based container. This is expected to be [micromamba-docker](https://github.com/mamba-org/micromamba-docker) image. | | ||
| `wave.conda.commands` | One or more commands to be added to the Dockerfile used by build a Conda based image. | | ||
| `wave.strategy` | The strategy to be used when resolving ambiguous Wave container requirement (default: `'container,dockerfile,conda'`) | | ||
| `wave.freeze` | When `freeze` mode is enabled containers provisioned by Wave are stored permanently in the repository specified via the setting `wave.build.repository`. | | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
title: Architecture | ||
--- | ||
|
||
Currently this is TBD. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
title: Container augmentation | ||
--- | ||
|
||
The container augmentation provisioning mode allows "extending" the content of a container image without rebuilding it. Instead, this mechanism allows modifying a container image during the pull phase made by a Docker client. | ||
|
||
Container augmentation works as follows: | ||
|
||
1. The client, either Nextflow or Wave client, submits a container request specifying: i) the (Platform) user identity; ii) the container image to be augmented; iii) the container extension configuration, which can be either a custom payload, one or more extension layers or container images. | ||
1. The Wave service validates the request and authorizes the user submitting a request to the Platform service | ||
1. Finally, the Wave service responds with an ephemeral container image name e.g. wave.seqera.io/wt/<ID TOKEN>/library/alpine:latest | ||
The ID TOKEN is uniquely assigned and it's used to identify and authorize the following container request. | ||
1. The Docker client uses the return image name to pull the container binary content of the upstream image directly from the target registry, finally, the content added by Wave as one or more layer extensions is shipped by the Wave service | ||
|
||
*Key points* | ||
|
||
- Wave acts as a proxy between the Docker client and the target registry that hosts the container image. | ||
- During this process, Wave modifies, if needed, the container manifest to add the new content as specified by the request, but it does not (and cannot) alter the container layer blob files that have a unique checksum that is preserved. | ||
- The image blobs are downloaded directly from the target registry (not from Wave) **[there's an exception to be discussed]** | ||
- The extended content added by Wave is served via Cloudflare CDN. | ||
- This process does not carry out any "build" operation behind the scenes. | ||
- Augmented containers are ephemeral: they are not stored in a container repository, and they can only be accessed for a short period of time. | ||
|
||
*Use cases* | ||
|
||
- Authenticate access to the private repositories via Platform credentials | ||
- Extending existing containers by adding infrastructure and pipeline dependencies on the fly without rebuilding and maintaining additional container images |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
title: Community registry | ||
--- | ||
|
||
The Community registry adds to the Wave containerization lifecycle a regular container registry to host image builds permanently and is accessible publicly by anyone. | ||
|
||
The community registry is built using [Docker Distribution][docker] and hosted on AWS infrastructure. Images are cached and served via Cloudflare CDN. | ||
|
||
*WIP Diagram* | ||
|
||
[docker]: https://github.com/distribution/distribution |
Oops, something went wrong.