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.609.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.609-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.609.tar.gz
Algorithm Hash digest
SHA256 e9bf53dd9da9521d544e7fc388bca8106627ecddefbc922671b9d87c9ed7ff59
MD5 0743636ccb0bae8e93c8850887b6e9f7
BLAKE2b-256 e763ac1caf759965596fc3ffc6e66331b1fb8688804c75fec5df3d598397dc2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.609-py3-none-any.whl
Algorithm Hash digest
SHA256 42584b151e5e11ef90339cf21596da3e862fb23279cd12fff3b28835dde84b48
MD5 b5fb0aae475d33234b333e602ec82f65
BLAKE2b-256 491e44ee34359be10c5d62dda91669b398cfab846a1045719e6646aa66cd500f

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