Skip to content

test(fresh-node): the delete phase removes the Lakehouse first and waits for the GC (#1043) - #1049

Merged
schwarztrinker merged 1 commit into
mainfrom
test/1043-delete-phase
Nov 12, 2026
Merged

schwarztrinker merged 1 commit into
mainfrom
test/1043-delete-phase

Conversation

@schwarztrinker

Copy link
Copy Markdown
Contributor

Refs #1043

What changed

scripts/verify-fresh-node.sh, phase_delete only:

  • header comment: the D18 contract replaces the "operator has no delete path yet" note;
  • new step 1 deletes lakehouse/${LAKEHOUSE} first (its finalizer uninstalls trino/lakekeeper/openfga/seaweedfs and retains the catalog PVC); a failed Lakehouse delete exits 1;
  • step 2 is the PlatformInstance delete (was step 1);
  • new wait loop kubectl wait --for=delete deploy/{nova,keycloak} --timeout=60s before the Deployment assertions, with || true so the get loop stays the assertion;
  • the remaining step numbers shift by one (3, 4, 5) — the ticket only names the 1→2 renumber, this keeps the sequence consistent.

Checks

$ bash -n scripts/verify-fresh-node.sh && echo "syntax ok"
syntax ok
$ git diff --stat
 scripts/verify-fresh-node.sh | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)
$ ./scripts/verify-fresh-node.sh; echo "exit=$?"        # readiness phase on the lab, read-only
? instance "platforminstance/cluster is not readable in stardelt"
verify-fresh-node: UNVERIFIED (no PlatformInstance on this cluster)
exit=3
$ make lint
lint: OK

Function-level harness (stub kubectl, phase_delete extracted verbatim, scratch under $HOME), three scenarios:

=== A: full success ===   exit=0
kubectl -n stardelt delete lakehouse/main --wait=true --timeout=30m
kubectl -n stardelt delete platforminstance/cluster --wait=true --timeout=30m
kubectl -n stardelt wait --for=delete deploy/nova --timeout=60s
kubectl -n stardelt wait --for=delete deploy/keycloak --timeout=60s
kubectl -n stardelt get deploy/nova           # the assertion after the wait
=== B: Lakehouse delete fails === exit=1
✗ delete "lakehouse/main was not deleted"
verify-fresh-node: FAIL (the Lakehouse delete did not complete)
  (log stops there: the PlatformInstance delete is never issued)
=== C: GC never removes nova/keycloak === exit=1
✗ delete nova still present
✗ delete keycloak still present
verify-fresh-node: FAIL (the delete left something behind)

Not run

The real delete phase on a fresh node (destructive, owned by platform#293 on demand; the lab has no PlatformInstance). That run is the final proof, after operator#587/#588 are in the pin (operator#587 is already there, platform#1046).

Remaining

Nothing in this ticket.

Copilot AI lite review requested due to automatic review settings November 12, 2026 08:09

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@schwarztrinker
schwarztrinker merged commit f86927e into main Nov 12, 2026
3 checks passed
@schwarztrinker
schwarztrinker deleted the test/1043-delete-phase branch November 12, 2026 08:11
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.

2 participants