Skip to content

Retire aurora-mysql and opensearch EOL overrides; add upstream coverage check - #94

Closed
Kiran01bm wants to merge 2 commits into
mainfrom
kiran01bm/readme-aurora-mysql-upstream-merged
Closed

Kiran01bm wants to merge 2 commits into
mainfrom
kiran01bm/readme-aurora-mysql-upstream-merged

Conversation

@Kiran01bm

@Kiran01bm Kiran01bm commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

Retire the amazon-aurora-mysql and amazon-opensearch endoflife.date overrides now that upstream serves them, and add the check that should have flagged this.

Why

endoflife.date#9534 (Amazon Aurora MySQL) merged 2026-08-23 and endoflife.date#9919 (OpenSearch 3.3/3.5) merged 2026-04-18. Upstream now carries every cycle both overrides held, and both entries passed their review_due_on (2026-09-04). Nothing in the repo could tell us: the manifest validator checks shape and dates, not whether upstream has caught up, and the manifest tests were pinned to the two live override files. Meanwhile the shim was serving stale data — upstream has since moved Aurora MySQL 2 extended support to 2029-06-30, added Aurora MySQL 8.4, and replaced the OpenSearch 1.x/2.x boolean eol/extendedSupport flags with real dates.

What

  • Delete deploy/endoflife-override/api/{amazon-aurora-mysql,amazon-opensearch}.json; manifest.json is now overrides: []. api/.gitkeep keeps the directory for the docker-compose bind mount and the validator.
  • upstream.go: checkUpstreamCoverage compares each manifest override against endoflife.Client cycles; a 404 upstream means "still needed", full coverage means retirable. Unit-tested with MockClient; upstream_integration_test.go (-tags=integration) runs it against the live API and fails naming retirable products.
  • manifest_test.go now copies synthetic fixtures from testdata/valid/ instead of the live overrides, and gains a "no overrides" case.
  • Docs: README table row and ARCHITECTURE bullet lose the "via the shim while #9534 is open" caveat; shim README documents the retirement workflow; chart values.yaml example no longer names the deleted files.

Verified: ran the runtime StandardSchemaAdapter over both override files and the upstream payloads — all 19 shared cycles derive the same state (SUPPORTED/EXTENDED/EOL), only dates move to upstream's newer values. The new integration test fails on main's manifest (both products retirable) and passes after removal. With the override files gone, the nginx shim serves both products with X-Version-Guard-EOL-Source: endoflife_date, unknown products still 404, and a local file still wins when present. Lint clean on golangci-lint v1.64.8 with and without the integration tag.

Before / after

Before
  version-guard ──▶ nginx shim ──▶ api/amazon-aurora-mysql.json   (local_override, frozen 2026-08-05)
                              ──▶ api/amazon-opensearch.json     (local_override, frozen 2026-08-05)
                              ──▶ endoflife.date                 (everything else)
  go test ./deploy/endoflife-override   → validates manifest shape only; fixtures = live overrides

After
  version-guard ──▶ nginx shim ──▶ endoflife.date                 (endoflife_date, all products)
  go test ./deploy/endoflife-override                      → manifest shape; fixtures = testdata/valid
  go test -tags=integration ./deploy/endoflife-override    → FAILS when upstream covers an override

References

endoflife.date#9534 (amazon-aurora-mysql) merged upstream on 2026-08-23
and the live API now serves the product, so the "shim while the PR is
open" wording in README.md and ARCHITECTURE.md no longer holds.
…ge check

endoflife.date now serves every cycle both overrides carried (#9534 merged
2026-08-23, #9919 merged 2026-04-18) and the runtime adapter derives the
same lifecycle state from upstream as from the local files, so the shim
was only masking newer upstream dates. Nothing detected that: the
validator only checks manifest shape. The new integration-tagged check
fails when upstream fully covers an override, and the manifest tests now
run against synthetic testdata instead of the live override files.
@Kiran01bm Kiran01bm closed this Sep 8, 2026
@Kiran01bm
Kiran01bm deleted the kiran01bm/readme-aurora-mysql-upstream-merged branch September 8, 2026 05:52
@Kiran01bm Kiran01bm changed the title docs: drop stale Aurora MySQL override caveat Retire aurora-mysql and opensearch EOL overrides; add upstream coverage check Sep 8, 2026
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.

1 participant