villebro opened a new pull request, #55:
URL: https://github.com/apache/superset-kubernetes-operator/pull/55
## Summary
Groups seven small cleanups into one PR. The only breaking change is the
condition-type rename (item 1) — the rest are internal fixes, status plumbing,
and documentation hygiene.
## Details
1. **Rename `InitComplete` condition** — split the misleading shared
condition into two:
- `SupersetLifecycleTask.status.conditions`: `InitComplete` →
**`TaskComplete`**
- `Superset.status.conditions`: `InitComplete` → **`LifecycleComplete`**
The old name was a holdover from when the operator had only an "init"
task. After the `SupersetInit → SupersetTask` refactor it was firing with
"Initialization completed successfully" messages on clone, migrate, and rotate
tasks — a lie. Event reasons (`InitStarted`/`InitFailed`/`InitRetry`) and
condition reasons/messages were renamed to
`TaskStarted`/`TaskFailed`/`TaskRetry` for consistency.
2. **Thread the injected clock through the task timeout branch.**
`supersetlifecycletask_controller.go` now uses `r.now().Sub(...)` instead of
`time.Since(...)`, matching the rest of the package and making timeout
behaviour deterministic under a fake clock.
3. **Prune parent-owned Python ConfigMaps when a component is removed from
spec.** Previously `reconcileComponent` returned early when the accessor was
nil and the `{parent}-{component}` ConfigMap lingered until the parent CR
itself was deleted.
4. **Unify the web-server port path.** A new
`resolveWebServerPort(superset)` helper resolves the first container port from
the merged top-level + component-level pod template (using the same resolution
engine as the generic child Service path). It's now used consistently by:
- the parent-owned web-server Service selector/port,
- the maintenance page,
- the rendered `SUPERSET_WEBSERVER_PORT` in `superset_config.py` (via a
new `ConfigInput.WebServerPort` field).
Previously a user-specified container port could desync from the Service
target and the rendered config. Tests added in `renderer_test.go` and
`maintenance_test.go` (top-level, component, and default cases).
5. **Populate `status.components.*.configChecksum`** by reading
`spec.configChecksum` from each child CR via unstructured. The field was
advertised in the API but left silently empty, making per-component rollout
tracking impossible from `kubectl`.
6. **Housekeeping**: removed the unused `componentDescriptor.suffix` field
(sub-resource suffixes flow through `naming.ResourceBaseName` from
`componentType`), and fixed the stale `reconcileChildConfigMap` reference in
the contributor docs — the current design has parent-owned ConfigMaps.
7. **Include `Message` in the `setCondition` update predicate.** Stale
diagnostic messages could otherwise persist when status/reason/generation were
unchanged. `LastTransitionTime` is still preserved on message-only edits.
--
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]