villebro opened a new pull request, #43:
URL: https://github.com/apache/superset-kubernetes-operator/pull/43
## Summary
Adds a `SupersetMaintenancePage` child CRD that serves a lightweight
maintenance page while lifecycle tasks (clone/migrate/init) run and components
are drained. Uses orphan deletion of the SupersetWebServer child CR to preserve
its Service, then patches the selector to route traffic to maintenance pods —
giving instant (~1s) switchover via the endpoints controller.
**Two modes:**
- **Managed** (default): `nginx:alpine` with operator-generated HTML.
Customize via `title`, `message`, or full `body`.
- **Custom**: user provides their own image/command. Content fields passed
as `SUPERSET_OPERATOR__MAINTENANCE_*` env vars.
Opt-in via presence on the lifecycle spec:
```yaml
spec:
lifecycle:
maintenancePage: {}
```
**Design: Orphan Deletion**
The operator uses `propagationPolicy: Orphan` when deleting the web-server
child CR during drain. This preserves the Service as an unowned resource, which
the operator patches to route to maintenance pods. After lifecycle completes,
the child reconciler naturally re-adopts the Service via `CreateOrUpdate` +
`SetControllerReference`.
**Alternatives considered and rejected:**
- Owner reference manipulation: non-standard, fragile coupling with GC timing
- Separate Service + Ingress/HTTPRoute backend swap: propagation latency
varies by controller (1s to 3min for cloud LBs), creating an error window;
doesn't work without networking
- Parent-owned stable Service: breaking change to Service naming for a
single feature
Full rationale documented in `docs/architecture/internals.md`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]