Skip to content

SDD Docs - #1

Merged
joelanford merged 1 commit into
operator-framework:mainfrom
tmshort:sdd-docs
Aug 25, 2026
Merged

SDD Docs#1
joelanford merged 1 commit into
operator-framework:mainfrom
tmshort:sdd-docs

Conversation

@tmshort

@tmshort tmshort commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the Specification-Driven Design (SDD) documents for the OLMv0→OLMv1 migration feature
(OCPSTRAT-2693).

These four documents form the design contract for the migration library implemented in PR #2.
They are committed first so reviewers can evaluate the design independently of the implementation.


Documents

File Purpose
migration/README.md Feature overview — the two CLIs, operator states, high-level flow, and architecture
migration/REQUIREMENTS.md Functional and architectural requirements (R1–R10); every Subscription, OperatorGroup, and CatalogSource field; ClusterExtension target mapping
migration/PLAN.md Eight implementation phases with exit criteria, dependencies, and Jira story references (OPRUN-4717 through OPRUN-4723)
migration/VALIDATION.md Verifiable acceptance criteria (V1–V7) and a requirement-traceability table linking every R-item to at least one validation check

Also includes:

  • README.md — repo-level overview pointing to the migration documents
  • .gitignore — ignores built binaries (bin/), test artifacts, editor files, and runtime backup directories

Design highlights

  • Two CLIsmigrate-operators-v0-to-v1 (verb subcommands: check, convert, rollback, cleanup) and migrate-catalogs-v0-to-v1
  • Four-state classification — Eligible / Ineligible / AlreadyMigrated / Conflict
  • Non-interactive--dry-run for preview; all overrides via explicit --acknowledge-* flags
  • Close-to-zero downtime — orphan cascade on Subscription/CSV deletion; workloads keep running
  • SecretPacker — Secret-backed COS objects to handle large bundles within etcd limits
  • Full field-by-field mapping — every Subscription, OperatorGroup, and CatalogSource field is specified with its exact OLMv1 target

Related

@perdasilva perdasilva left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about a better structure for SDD docs? For example:
specs/<dateYYYYMMDD>-<featureSlug>/README.md.

That way there is a natural location in the repo for all specs, and they are time-ordered.

Also, nit: lowercase the names of the other files so that the README is the most prominent?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any objection to doing it as a follow-on?

@joelanford

joelanford commented Aug 25, 2026

Copy link
Copy Markdown
Member

WDYT about adding the actual SDD skills to this repo so that future contributors can easily follow the same style and workflows.

For example, https://github.com/joelanford/library-olm/tree/main/.claude/commands, maybe starting with:

  • ideate / quick-item
  • plan-next-phase (maybe rename to refine?)

Also, specs/conventions.md, specs/mission.md, and specs/tech-stack.md are useful context that we should commit as well. I have those for my library-olm repo here: https://github.com/joelanford/library-olm/tree/main/specs

@tmshort

tmshort commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

WDYT about adding the actual SDD skills to this repo so that future contributors can easily follow the same style and workflows.

Can that be done as a separate PR? These are specific for the migration tool. That seems more general purpose.

@joelanford

Copy link
Copy Markdown
Member

Maybe also squash this down to a single commit?

@tmshort

tmshort commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

Maybe also squash this down to a single commit?

But the history! ;)

Adds the Specification-Driven Design documents for the migration
feature under specs/20260821-migration-v0-to-v1/:

  README.md       — feature overview, CLIs, operator states, architecture
  requirements.md — R1–R10 requirements with per-field Subscription/
                    OperatorGroup/CatalogSource handling and ClusterExtension
                    target mapping
  plan.md         — eight implementation phases with exit criteria,
                    dependencies, and Jira story references
  validation.md   — verifiable acceptance criteria (V1–V7) and
                    requirement-traceability table

Also updates README.md and .gitignore.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Todd Short <tshort@redhat.com>
@joelanford
joelanford merged commit 4c92f2b into operator-framework:main Aug 25, 2026
@tmshort
tmshort deleted the sdd-docs branch August 25, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants