Review Task: ADR - DAG Migration Plan to CIMPL
Review Task: ADR - DAG Migration Plan to CIMPL
Issue: ingestion/home #56 — Draft: [ADR] DAG migration plan to CIMPL
Objective
Review and improve ingestion/home #56 so the ADR is consistent, decision-complete, and ready to advance from Initiated to Proposed / Under review. Update the issue body, status/labels, and tracking sections; leave concrete open questions as comments where a design choice still needs consensus.
Scope — issue to review
| Field | Value |
|---|---|
| Issue | ingestion/home #56 |
| Repo | osdu/platform/data-flow/ingestion/home |
| Title | Draft: [ADR] DAG migration plan to CIMPL |
| Author | Yan Sushchynski [EPAM/GC] |
| Assignees | none |
| Labels |
ADR::Proposed, M28, Venus
|
| Milestone | M28 |
| Confidential | Yes |
| Status checklist (current) | Only Initiated checked |
Context
ingestion/home #56 is a draft Lightweight ADR proposing migration of OSDU ingestion DAGs (and shared libraries) to CImpl.
In-scope DAGs:
- segy-to-zgy-conversion
- segy-to-vds-conversion
- segy-to-mdio-conversion-dag
- ingestion-dags (manifest ingestion)
- csv-parser
- energistics
Shared libraries:
Decision (as drafted):
- Make
common-python-sdkCImpl-compatible or transition to osdu-python-client - Remove template/render scripts; one cloud-agnostic DAG definition
- Design a cloud-agnostic pattern for Kubernetes Pod Operator config injection (SEGY converters)
Phase 1 pilots (named in ADR): ingestion-dags and segy-to-zgy-conversion.
What to verify / improve
-
Status consistency — Title says Draft; label is
ADR::Proposed; Status checklist only has Initiated. Align title, label, and checkboxes before soliciting review. - Decision ambiguity (SDK path) — Decision item 1 is an either/or. Pick a preferred path and define exit criteria for switching to the alternative.
- Ownership and sequencing — Add pilot order, owners, and dependency order (SDK/libs before DAG consumers).
- K8s Pod Operator pattern — Underspecified. List concrete options (e.g. env-from ConfigMap/Secret, runtime CSP lookup, shared operator wrapper) and decision criteria.
- Timeline TBDs — Replace “TBD” with target dates or M28-linked milestones for Proposed and Phase 1.
- Related work — Add a “Related issues/MRs” section; cross-link known Venus/M28 / AF3 / CImpl DAG work already in flight.
- Consequences gaps — Call out consumer impact (CSP render scripts, existing CSP forks) and rollback / compatibility approach.
- Confidentiality — Confirm whether the ADR should remain confidential once Proposed; open for community review if appropriate.
- Assignees / reviewers — Issue has no assignees. Assign author plus CSP/ingestion maintainers for review.
Suggested improvements
Apply these edits directly on ingestion/home #56:
1. Align status metadata
| Current | Suggested |
|---|---|
Title: Draft: [ADR] DAG migration plan to CIMPL
|
[ADR] DAG migration plan to CIMPL (drop Draft once Proposed) |
Label: ADR::Proposed
|
Keep only if Status checklist moves to Proposed |
| Status: Initiated only | Check Proposed (and Under review when reviewers are assigned) |
2. Resolve Decision item 1
Replace the open “or” with something like:
- Preferred: migrate / make common-python-sdk CImpl-compatible
- Fallback: transition consumers to osdu-python-client if preferred path fails gate X by date Y
(Or invert preferred/fallback — but choose one.)
3. Add sequencing section
Suggested outline:
- Shared libs / SDK CImpl readiness (common-python-sdk, osdu-ingestion-lib, osdu-airflow-lib)
- Pilot A: ingestion-dags (no Pod Operator complexity)
- Pilot B: segy-to-zgy-conversion (Pod Operator pattern)
- Revisit ADR → remaining DAGs
Name owners per pilot and per library.
4. Expand Pod Operator decision
Add alternatives and criteria, for example:
| Option | Pros | Cons |
|---|---|---|
| Env-from ConfigMap/Secret at deploy time | Simple; CSP injects values outside DAG | Still CSP-specific deploy artifacts |
| Runtime CSP lookup via shared helper | DAG code stays agnostic | Needs shared contract + tests |
| Shared Pod Operator wrapper in osdu-airflow-lib | One place to maintain | Library release coupling |
Require a chosen option (or a spike issue) before Phase 1 pilot B starts.
5. Replace timeline TBDs
| Gate | Current | Suggested |
|---|---|---|
| Proposed & Under Review | TBD — Next 1–2 weeks | Concrete date or “by end of M28 sprint N” |
| Phase 1 (Pilot Migration) | TBD — Next 1–2 months | Target milestone / date + success criteria |
6. Add Related issues/MRs section
## Related issues / MRs
- (link AF3 / CImpl / Venus work as known)
- Phase 1 pilot issues: TBD
- SDK / library tracking issues: TBD
7. Strengthen Consequences
Add under Negative / operational:
- CSP consumers of render scripts must migrate to the single DAG definition
- Temporary dual-path support (render vs CImpl) — yes/no, and for how long
- Rollback plan if Phase 1 pilots fail CImpl validation
8. Confidentiality and ownership
- Decide: keep confidential vs make public for community ADR review
- Assign: author + at least one ingestion maintainer and CSP stakeholders
Deliverables from reviewer
- Updated issue description on ingestion/home #56 covering status alignment, preferred SDK path, sequencing, Pod Operator options, timelines, related links, and consequences
- Status/label/title consistency — Initiated → Proposed (and Under review when ready)
- Assignees / reviewers set on the issue
- Comment listing any remaining open questions that need consensus before Approval
- Confidentiality decision documented in the issue (keep confidential or open)