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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.606.tar.gz
Algorithm Hash digest
SHA256 8036fb7ea01813927e8bba7f8fdf4e02fbf6b39a8368363b5cdabef441f5cada
MD5 76432936aa36e41b2404765a1b306aec
BLAKE2b-256 ec53aa672a35a6c13337aab485fe7c4f196cfb04473c9cdffc6c8112aff40843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for daylily_ephemeral_cluster-0.7.606-py3-none-any.whl
Algorithm Hash digest
SHA256 f55daf5e8190fe10d5c158944d5dc1e6401379a7e7d6e4ad76f294bbca5201c7
MD5 66b1200d4f59d30a165829ce3408aa4a
BLAKE2b-256 5058645c6f656c1304442c3d115073e63b7a5881c542a608b12d892b1603cdf1

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