/showcase

Infrastructure as code implementation of the seqeralabs/showcase on Seqera

Primary LanguageShellMozilla Public License 2.0MPL-2.0

seqeralabs/showcase Workspace on Seqera Platform

Overview

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

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.

1. Using Seqera Platform CLI

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:

Running the Bash scripts

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.

Software Prerequisites

  1. Seqera Platform CLI installed
  2. jq installed

Assumptions

  • Seqera Platform CLI installed and tw info has been configured
  • TOWER_API_ENDPOINT and TOWER_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

2. Using seqerakit

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:

Prerequisites

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 and TOWER_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.

Running seqerakit

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.

Showcase Demonstration

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.

Contributing

We welcome contributions to further improve the documentation and IaC scripts. Please open issues or submit pull requests with your suggestions and improvements.