Skip to main content

Infrastructure-as-code for ephemeral AWS ParallelCluster environments for bioinformatics

Project description

Daylily Ephemeral Cluster

Daylily provisions ephemeral AWS ParallelCluster environments for bioinformatics workloads. It combines a Python control plane, region-scoped reference data, head-node bootstrap, workflow launch helpers, and lifecycle operations so operators can create Slurm clusters when needed and tear them down cleanly when they do not.

What Daylily Covers

  • Preflight validation for IAM, quotas, network prerequisites, local toolchain, and reference-bucket readiness
  • Cluster creation through python -m daylily_ec create or the thin wrapper ./bin/daylily-create-ephemeral-cluster
  • A region-scoped S3 and FSx for Lustre layout for shared references, staged inputs, and results
  • Head-node bootstrap that installs DAY-EC, day-clone, and the packaged Daylily helpers
  • Operator workflows for validation, staging, workflow launch, export, drift checks, and delete

Architecture Snapshot

  1. daylily_ec is the control plane that runs preflight, renders cluster YAML, applies spot pricing, creates the cluster, and records state snapshots.
  2. AWS ParallelCluster and Slurm provide the compute fabric.
  3. A region-specific S3 bucket whose name includes omics-analysis backs FSx for Lustre so references and staged data are shared across the cluster.
  4. The head node installs Daylily utilities from bin/ and workflow definitions from config/daylily_available_repositories.yaml.
  5. Optional budgets and heartbeat notifications help operators track cost and stale resources.

Fast Path

Use the full runbook in docs/quickest_start.md. The shortest supported path from a repo checkout is:

./bin/check_prereq_sw.sh
./bin/init_dayec
conda activate DAY-EC

export AWS_PROFILE=daylily-service
export REGION_AZ=us-west-2c
export DAY_EX_CFG="$HOME/.config/daylily/daylily_ephemeral_cluster.yaml"

python -m daylily_ec preflight --region-az "$REGION_AZ" --profile "$AWS_PROFILE" --config "$DAY_EX_CFG"
python -m daylily_ec create --region-az "$REGION_AZ" --profile "$AWS_PROFILE" --config "$DAY_EX_CFG"

Before create, make sure the reference bucket for the target region exists and your config file points at it. docs/quickest_start.md shows the supported daylily-omics-references workflow and the template-copy step.

CLI Surface

The current CLI surface is:

  • python -m daylily_ec version
  • python -m daylily_ec info
  • python -m daylily_ec create --region-az <region-az> ...
  • python -m daylily_ec preflight --region-az <region-az> ...
  • python -m daylily_ec drift --state-file <path> ...
  • python -m daylily_ec resources-dir
  • python -m daylily_ec pricing snapshot --region <region> --config config/day_cluster/prod_cluster.yaml

Run python -m daylily_ec --help for the current command tree.

Documentation

Repository Highlights

Historical Material

Older long-form docs and retired notes live under docs/archive/. They are preserved for historical context and are not canonical for current operator workflows.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

daylily_ephemeral_cluster-0.7.608.tar.gz (46.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

daylily_ephemeral_cluster-0.7.608-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file daylily_ephemeral_cluster-0.7.608.tar.gz.

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.608.tar.gz
Algorithm Hash digest
SHA256 751cd4b81002bf05d83d7cbf13343482769c282a59aa9fffe06268ae0eaddeb4
MD5 f71cc7ae2fc69ae78fca6b7ec735065d
BLAKE2b-256 347e1a7959223db45a5bc6cad2a87c1f3a08478c96b485b4e01f339c9cb69c4f

See more details on using hashes here.

File details

Details for the file daylily_ephemeral_cluster-0.7.608-py3-none-any.whl.

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.608-py3-none-any.whl
Algorithm Hash digest
SHA256 8b736e84116548c8ce38357d67f1cf6696215907a49aae9b60472717bb5ed4a4
MD5 5ef7a98d7549795fe963c9799b53f086
BLAKE2b-256 fec90cef12c027669c5c14c9d54bbe4598ed4c2bada340c88f3f762a5b6273e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page