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]

Reply via email to