You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: Remove product-config, build config from typed ValidatedCluster
Replace the product-config-based validation pipeline with a typed, framework-
based one mirroring trino-operator:
- validate() now produces a ValidatedCluster { name, image, cluster_config,
role_group_configs } via framework::role_utils::with_validated_config, instead
of the product-config PropertyNameKind map. server.<myid> quorum entries are
precomputed into cluster_config so the build step never needs the CRD.
- Add zk_controller/build/config_map.rs which builds zoo.cfg and
security.properties directly from the typed config, referencing the
ZookeeperCluster only for the owner reference. The operator defaults that
product-config used to inject from deploy/config-spec/properties.yaml
(admin.serverPort, clientPort, dataDir, initLimit, syncLimit, tickTime,
metricsProvider.*, networkaddress.cache.*) are now seeded here, byte-identical
to before (pinned by the kuttl ConfigMap snapshot).
- Drop the product_config Configuration impl from the CRD; add a manual Merge
impl for ZookeeperConfigOverrides (CRD schema unchanged) and Ord for
ZookeeperRole.
- Minimal consumer changes: the StatefulSet derives MYID_OFFSET/ZOOCFGDIR from
the merged config plus envOverrides; the metrics Service takes a resolved port.
- Remove ProductConfigManager from main.rs/Ctx and the product-config dependency
from both Cargo.toml. It remains only as a transitive dependency of
stackable-operator itself.
Unit tests now exercise the product-config-free path and assert the seeded
defaults and security.properties byte-for-byte. The generated CRD is unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments