This repository contains updated demonstration documentation and Infrastructure as Code (IaC) scripts for deploying and managing infrastructure in the seqeralabs/showcase
workspace on Seqera Platform.
Infrastructure as Code (IaC) provides the ability to provision and manage infrastructure through configuration files. Having IaC enables automation in set up, consistency and standardization in infrastructure, and documentation of how resources are configured.
This guide describes how to create resources on Seqera Platform through IaC using two methods: (1) Seqera Platform CLI, and (2) seqerakit.
Most Seqera Platform entities such as Pipelines, Compute Environments and Datasets can be exported in JSON format via the Seqera Platform CLI. This is very useful for creating IaC to store the exact configuration options used to create these entities, and to share and track changes over time.
This repository contains JSON representation of the Seqera Platform entitites generated by the Platform CLI that were used to create the seqeralabs/showcase
Workspace:
- Compute Environments for AWS, Azure, Google Cloud, and SLURM
- Pipelines from a select set of nf-core pipelines
- Datasets for running the pipelines with minimal test data
The bash scripts required to programatically import and export these entities from Seqera Platform via the CLI have also been provided in the scripts
directory.
To create the Compute Environments:
bash scripts/bash/tw_computeenvs_import.sh
To add the Datasets:
bash scripts/bash/tw_datasets_add.sh
To add the Pipelines:
bash scripts/bash/tw_pipelines_import.sh
See Seqera Platform CLI usage docs for more examples of interacting with the Platform.
- Seqera Platform CLI installed
jq
installed
- Seqera Platform CLI installed and
tw info
has been configured TOWER_API_ENDPOINT
andTOWER_ACCESS_TOKEN
have been injected into the executing environment (see the Seqera Platform CLI documentation on configuring these)- Credentials for AWS, Azure, and Google have already been set-up in Seqera Platform
The Seqera Platform entities represented above in JSON can also be represented as YAML configuration files. These configuration YAMLs can be used by seqerakit
, a Python package wrapping the Seqera Platform CLI, to define and automate how entities should be created.
This repository also contains YAML configuration files defining creation of Seqera Platform entities on the seqeralabs/showcase
Workspace with seqerakit
:
To use seqerakit
, you will need to have:
- The Seqera Platform CLI installed and
tw info
has been configured as described above TOWER_API_ENDPOINT
andTOWER_ACCESS_TOKEN
environment variables set Credentials for AWS, Azure, and Google have already been set-up in Seqera Platform- The package installed via:
conda install seqerakit
Or:
pip install seqerakit
Please refer to the package's installation guide for more details on the required dependencies.
Similar to executing the scripts above to import and create Pipelines, Compute Environments, and Datasets that are defined in JSON onto Seqera Platform, the YAML files provided in this repository can also be used to create seqeralabs/showcase
entities on the Platform. For example:
To create the Compute Environments:
seqerakit seqerakit/compute-envs/*
To add the Datasets:
seqerakit seqerakit/datasets/*
To add the Pipelines:
seqerakit seqerakit/pipelines/*
See the seqerakit documentation for more usage examples and options for running seqerakit
.
This guide provides a walkthrough of a standard Seqera Platform demonstration using the seqeralabs/showcase
workspace. The demonstration will describe how to add and run a pipeline in the Platform, examine the run details, and highlight key features such as pipeline optimization, Data Explorer, and Data Studios.
The demonstration will focus on using the nf-core/rnaseq pipeline as an example to execute a Nextflow pipeline on Seqera Cloud using the AWS Batch cloud executor.
You can find the updated documentation in the demo/
directory.
We welcome contributions to further improve the documentation and IaC scripts. Please open issues or submit pull requests with your suggestions and improvements.