migrateCHIToReplicated() + c.Apply() performs a full client.Update on the ClickHouseInstallation, which the Altinity operator owns and continuously mutates. The CHI is read via a non-watched c.Get() (potentially stale, since the provider intentionally does not watch CHI/CHK).
Risk: clobbering operator-normalized fields, or update conflicts under operator churn. The "only fields we own" comment is aspirational — a full Update does not enforce it.
Suggested fix: switch the migration mutation to a field-owned Server-Side Apply (or strategic-merge patch) that touches only spec.configuration.zookeeper and clusters[0].layout.replicasCount.
Held fine in the live k3d e2e (Altinity 0.27.1) but not robust by construction. Ref: PR #6.
migrateCHIToReplicated()+c.Apply()performs a full client.Update on theClickHouseInstallation, which the Altinity operator owns and continuously mutates. The CHI is read via a non-watchedc.Get()(potentially stale, since the provider intentionally does not watch CHI/CHK).Risk: clobbering operator-normalized fields, or update conflicts under operator churn. The "only fields we own" comment is aspirational — a full Update does not enforce it.
Suggested fix: switch the migration mutation to a field-owned Server-Side Apply (or strategic-merge patch) that touches only
spec.configuration.zookeeperandclusters[0].layout.replicasCount.Held fine in the live k3d e2e (Altinity 0.27.1) but not robust by construction. Ref: PR #6.