You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Daylily stands up a short-lived AWS ParallelCluster, finishes the headnode configuration after `pcluster` itself reports success, gives the operator a validated Session Manager login shell as `ubuntu`, stages laptop-side inputs into the FSx-backed data plane, launches the workflow repo in tmux, exports results back to the backing S3 repository, and then tears the cluster down when the run is complete.
5
+
DayEC is the operator control plane for short-lived AWS ParallelCluster environments that run Daylily analysis workloads on FSx for Lustre. The current data plane is DRA-first: the cluster starts with reference data mounted at `/fsx/data`, run folders are attached only when needed under `/fsx/run_dir_mounts/<mount_id>`, workflow outputs stay under `/fsx/analysis_results/...`, and selected results are exported through a temporary `/fsx/exports/<export_id>` DRA to a chosen S3 analysis bucket.
6
6
7
-
> The bucket is durable. The cluster is ephemeral. Export before delete.
7
+
The cluster is ephemeral. S3 buckets are durable. Verify the export receipt before deleting the cluster.
8
8
9
9
## Supported Operator Contract
10
10
11
-
The supported path is:
11
+
Use the checkout environment and the CLI, not historical helper-script paths:
Supported remote access is AWS Systems Manager Session Manager landing directly in the `ubuntu` login shell. The repo hard-checks the Session Manager document and the effective remote user before supported command payloads run.
24
-
25
-
> A cluster is not "ready" when CloudFormation or ParallelCluster first says the infrastructure exists. The supported readiness point is when `daylily-ec create` returns successfully after the post-create headnode configuration and bootstrap validation steps complete.
14
+
2.`dyec preflight`
15
+
3.`dyec create`
16
+
4.`dyec headnode connect`
17
+
5.`dyec samples stage` for sample-manifest inputs, or `dyec mounts create` for run-folder inputs
18
+
6.`dyec workflow launch`
19
+
7.copy selected outputs into `/fsx/exports/<export_id>/...`
`fsx_export.yaml` is the machine-readable export receipt. A successful run writes `status: success` and the resolved S3 destination.
118
-
119
127
## Architecture At A Glance
120
128
121
-
1.`daylily-ec` is the control-plane CLI, with `dyec` installed as a shorter alias for the same entrypoint. It handles AWS readiness validation, preflight, create, cluster inspection, export, delete, environment introspection, runtime checks, and pricing snapshots.
122
-
2. The create flow renders the cluster configuration, calls ParallelCluster, then runs Daylily headnode configuration over Session Manager.
123
-
3. The durable data plane is the S3 bucket plus the FSx for Lustre filesystem attached to the cluster. Laptop-side staging writes into the bucket-backed FSx namespace.
124
-
4. The supported connect path is `daylily-ec headnode connect`, which opens Session Manager into the `ubuntu` login shell.
125
-
5. Workflow launch happens from the operator machine through `daylily-ec workflow launch`, which creates a run directory at `/home/ubuntu/daylily-runs/<session>/`, writes `launch.sh`, `tmux.log`, and `status.json`, and starts the run inside tmux.
126
-
6. Export uses the FSx data repository task API and writes `fsx_export.yaml` locally so the operator has a concrete export receipt before teardown.
127
-
128
-
## What This Repo Ships
129
-
130
-
-`environment.yaml` plus `pyproject.toml`: the `DAY-EC` environment contract
131
-
-`activate`: checkout bootstrap that creates or repairs `DAY-EC`, installs the repo editable, and validates the local toolchain
-`daylily-ec samples stage`: translator and staging helper that turns a multi-modality `analysis_samples.tsv` into workflow-ready `samples.tsv` and `units.tsv`, with optional run-metric sidecar staging
139
-
-`daylily-ec workflow launch/status/logs`: remote launcher and run-state inspection helpers
140
-
-`daylily-ec state list/show`: local state-file inspection helpers
141
-
-`daylily_ec/ssh_to_ssm_e2e_runner.py`: AWS-backed end-to-end runner that exercises the supported lifecycle through the repo CLI/helpers
142
-
-`bin/utils/ilmn/extract_undetermined_indexes`: Illumina Undetermined/Unclassified FASTQ index triage utility for ranking or splitting observed dual-index pairs from local paths, S3 URIs, or presigned URLs
-`/fsx/data` is the reference-data DRA created with the cluster.
144
+
-`/fsx/run_dir_mounts/<mount_id>` is for read-oriented run inputs and is not an export source.
145
+
-`/fsx/analysis_results/...` is where workflow checkouts and outputs live.
146
+
-`/fsx/exports/<export_id>` is the temporary export namespace for selected outputs.
147
+
-`fsx_export.yaml` is the export receipt to keep before teardown.
147
148
148
-
- a working named AWS profile
149
-
- permission for STS identity lookup, IAM inspection/bootstrap, Service Quotas reads, S3 bucket discovery/access, EC2/VPC inspection, FSx, SSM, and ParallelCluster operations
150
-
- a reference bucket in the target region that will back the cluster FSx filesystem
151
-
- Session Manager document `SSM-SessionManagerRunShell` configured to run shell sessions as `ubuntu` in `/home/ubuntu` and source a login shell
152
-
- enough regional quota for the requested cluster shape
149
+
## Pipeline Catalog
153
150
154
-
Local toolchain for the supported path:
151
+
`config/daylily_available_repositories.yaml` is the source of truth for repositories and blessed launch profiles. The packaged copy under `daylily_ec/resources/payload/config/` must match it.
155
152
156
-
- Conda
157
-
-`daylily-ec` or its short alias `dyec`
158
-
-`aws`
159
-
-`pcluster`
160
-
-`session-manager-plugin`
161
-
-`jq`, `yq`, `rclone`, `node`, and the rest of the `DAY-EC` Conda layer
153
+
The current DayOA pin is `1.0.7` for the repository default and every DayOA command. Catalog v2 separates:
162
154
163
-
If any of this is missing, cluster creation will fail in annoying ways. Run `daylily-ec aws validate all --profile "$AWS_PROFILE" --region-az "$REGION_AZ" --gap-analysis aws_gap.md` before account handoff, then run `daylily-ec preflight` before create.
155
+
-`sample_analysis`: uses `analysis_samples.tsv`, stages inputs, and writes `samples.tsv` / `units.tsv`.
156
+
-`run_analysis`: uses `runs.tsv`, requires a run DRA, and launches run-folder workflows such as Illumina run QC and BCL Convert.
164
157
165
-
## Cost, Time, And Failure Notes
158
+
## What This Repo Ships
166
159
167
-
-`daylily-ec create` can take a long time. The ParallelCluster build alone can take tens of minutes, and Daylily still has headnode bootstrap work to finish after that.
168
-
- The cluster is disposable; the export target is not. Do not delete until you have checked `fsx_export.yaml`.
169
-
- The supported remote user is `ubuntu`. Any path that would land you as another user is a defect, not a supported fallback.
170
-
- Session Manager misconfiguration is a hard stop. The repo does not tell operators to connect first and then switch users manually.
160
+
-`source ./activate`: creates or repairs the `DAY-EC` environment and installs the checkout editable
0 commit comments