Skip to content

chore(schemas): re-vendor the CRD schemas after the datastore contract fix - #61

Merged
stxkxs merged 1 commit into
mainfrom
chore/resync-crd-schemas
Aug 7, 2026
Merged

chore(schemas): re-vendor the CRD schemas after the datastore contract fix#61
stxkxs merged 1 commit into
mainfrom
chore/resync-crd-schemas

Conversation

@stxkxs

@stxkxs stxkxs commented Aug 7, 2026

Copy link
Copy Markdown
Member

Picks up eks-agent-platform@96bb2f5, which corrected the datastore contract this repo's Platform CR is authored against.

What changed in the schema

  • status.datastores[].drift is gone. It was written by nothing, and its description read "Empty when in sync" — so a permanently empty list read as a positive assertion that the datastore matched its declaration.
  • The per-field Drift: converged / Drift: reported descriptions are gone across every datastore kind. The operator holds no AWS client for RDS, DynamoDB, ElastiCache, SQS or MSK, and no drift machinery at all. Drift is detected by landing-zone's scheduled tofu plan and never reaches the CR.
  • minACU accepts "0" — Aurora Serverless v2 auto-pause — and both ACU fields are capped at Aurora's real 256 maximum instead of admitting up to 999. Two CEL rules carry what a pattern cannot: maxACU >= minACU, and auto-pause requiring Aurora PostgreSQL 16+.
  • spec.datastores gains maxItems and the ACU strings gain maxLength, without which the apiserver's CEL cost estimator rejects the whole CRD.
  • The datastore phase no longer advertises Drifted, which had no constant in the operator and was unreachable — the datastore phase is the owning Platform's phase, copied.

Verification

npm run platform:validate passes: the committed platform.yaml validates unchanged against the tightened schema, and the gate's own self-test still rejects every seeded defect.

…t fix

Picks up eks-agent-platform@96bb2f5, which corrected the datastore contract this
repo's Platform CR is authored against.

What changed in the schema:

  * `status.datastores[].drift` is gone. It was written by nothing and its
    description read "Empty when in sync", so a permanently empty list read as a
    positive assertion that the datastore matched its declaration.
  * The per-field `Drift: converged` / `Drift: reported` descriptions are gone
    across every datastore kind. The operator holds no AWS client for RDS,
    DynamoDB, ElastiCache, SQS or MSK and no drift machinery at all; drift is
    detected by landing-zone's scheduled `tofu plan` and never reaches the CR.
  * `minACU` accepts "0" — Aurora Serverless v2 auto-pause — and both ACU fields
    are now capped at Aurora's real 256 maximum instead of admitting up to 999.
    Two CEL rules carry what a pattern cannot: maxACU >= minACU, and auto-pause
    requiring Aurora PostgreSQL 16 or later.
  * `spec.datastores` gains maxItems and the ACU strings gain maxLength, without
    which the apiserver's CEL cost estimator rejects the CRD outright.
  * The datastore status `phase` no longer advertises `Drifted`, which had no
    constant in the operator and was unreachable — the datastore phase is the
    owning Platform's phase, copied.

The committed platform.yaml validates unchanged against the tightened schema.
@stxkxs
stxkxs merged commit 3733ecb into main Aug 7, 2026
14 checks passed
@stxkxs
stxkxs deleted the chore/resync-crd-schemas branch August 7, 2026 03:37
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