Skip to content

feat: prep for new packs — ork migrate, deletion protection#182

Merged
iAlexeze merged 3 commits into
mainfrom
feat/prep-for-new-packs
Jun 23, 2026
Merged

feat: prep for new packs — ork migrate, deletion protection#182
iAlexeze merged 3 commits into
mainfrom
feat/prep-for-new-packs

Conversation

@iAlexeze

@iAlexeze iAlexeze commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • ork migrate now emits README.md with the full migration workflow (registry → build → validate → simulate → release → push → bundle → deploy → inspect)
  • Deletion protection extended to custom: block children — GVRs and CRD names registered in webhook, labeled via label manager at create/update, get RBAC added to gateway ClusterRole; gated on parent CRD's ShouldProtectCRs()/ShouldProtectCRD()
  • IsGatewayEnabled() treats a non-empty endpoint as sufficient — enabled: true no longer required when an endpoint is present
  • Strict YAML parsing (StrictUnmarshal) for e2e, simulate, and SetupConfig — unknown fields now fail loudly
  • Spinner output in e2e runner for helm install, wait, and Orkestra install/upgrade steps; setup helm steps now pass --wait --timeout 5m

Test plan

  • ork migrate rewrites a controller-runtime reconciler; TODOs are accurate; logging import is preserved; README.md emitted with correct steps
  • Katalog with custom: children and deletion protection enabled — children labeled on create and update; webhook intercepts DELETE on custom child GVR
  • Katalog with deletion protection disabled on owner CRD — custom children not labeled and not registered in webhook
  • Gateway with only endpoint: set and no enabled: trueIsGatewayEnabled() returns true
  • Unknown field in e2e.yaml or simulate.yaml returns a clear error; valid files still parse correctly
  • ork e2e helm setup steps show spinner and block until helm reports ready

iAlexeze added 3 commits June 22, 2026 02:21
StrictUnmarshal replaces lenient yaml.Unmarshal in the e2e runner,
simulate, validate, and SetupConfig.UnmarshalYAML so unknown fields
(e.g. setup.commands) fail loudly instead of being silently ignored.

Spinner output replaces raw fmt.Printf lines for helm installs,
waits, and Orkestra install/upgrade steps.
ork migrate now emits a README.md alongside the rewritten reconciler.
The README guides through the full flow: resolve TODOs, make registry,
make build, make validate, ork simulate, make release, ork push,
ork generate bundle, helm upgrade --install, ork inspect.
Custom children declared in onCreate/onReconcile custom blocks are now
registered in the deletion-protection webhook (both instance GVRs and
CRD type names), labeled with orkestra.io/deletion-protection=true via
the label manager at create/update time, and granted GET RBAC in the
gateway ClusterRole.

Protection is gated on the parent CRD's ShouldProtectCRs() and
ShouldProtectCRD() — opting out of protection on the owner CRD also
opts out the children.

IsGatewayEnabled() now treats a non-empty endpoint as sufficient to
enable the gateway without requiring explicit enabled: true.
@iAlexeze iAlexeze merged commit a111bca into main Jun 23, 2026
4 of 6 checks passed
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