Skip to content

Commit 3c06baa

Browse files
maltesanderclauderazvanadwk67
authored
feat: remove product config & clean up (#765)
* chore: switch to smooth-operator branch and vendor the config writer Activate the operator-rs smooth-operator patch (matching trino/hdfs) and add a vendored Hadoop XML / Java-properties writer copied from hdfs-operator, so the operator no longer needs product-config for rendering. Reroute discovery and the controller to the vendored writer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor: reshape ValidatedCluster toward the v2 framework Add name (ClusterName) and a ValidatedClusterConfig, rename role_groups to role_group_configs, and add merged config_overrides/env_overrides per role group. The product_config_properties map is kept temporarily so the existing config-map path still compiles. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: add controller/build config-map module without product-config Add per-file builders (hbase-site, hbase-env, ssl-server, ssl-client, security.properties) and a config_map orchestrator that render from the validated cluster, plus unit tests. Defaults previously sourced from properties.yaml (cluster distributed, role-specific DNS TTLs, HBASE_MANAGES_ZK) are now in code. Not yet wired into reconcile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor: build rolegroup ConfigMap from the validated cluster Wire reconcile to the new controller/build config_map orchestrator, build container env from validated env_overrides instead of the product-config Env map, and delete the old PropertyNameKind-based config-map and hbase-env.sh builders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor: validate the HbaseCluster without product-config Drop ProductConfigManager / transform_all_roles_to_config / validate_all_roles_and_groups_config from the validate step, remove the Configuration trait impls and build_role_properties from the CRD, delete the now-unused product_config_properties field and the Ctx.product_config field, and stop loading the product config in main.rs. The product-config crate is now unreferenced in source. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore: remove the product-config dependency Empty config-spec/properties.yaml (mirroring trino/opensearch/hdfs) and drop the product-config crate from both Cargo manifests. The operator now renders all config from typed, validated inputs; product-config remains only as a transitive dependency of stackable-operator. Also remove the stale product-config CLI/env-var docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * refactor: decouple config-map builders from HbaseCluster Pre-resolve kerberos/TLS settings + kerberos flag (ValidatedClusterConfig) and the role-specific non-heap JVM args (ValidatedRoleGroupConfig) during validate, so the hbase-site/hbase-env/ssl-server/ssl-client builders render purely from the validated cluster. The config_map orchestrator still uses HbaseCluster only for the ConfigMap owner reference/metadata (to be decoupled in a follow-up). Rename validated -> validated_cluster. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore: regenerate * fix: change paramter order & fmt * fix: use builder pattern for discovery configmap * chore: rebuild hashes * fix: remove result from product logging * fix: move product logging to build step * fix: move constants * refactor: consolidate logging to build step * chore: adapted changelog * chore: replace json_pp with jq in getting started scripts * add snapshot tests and make them succeed * refactor: consume the config-file writer from stackable-operator Replace the vendored java-properties/Hadoop-XML writer (rust/operator-binary/src/config/writer.rs) with stackable_operator::v2::config_file_writer, which hosts the same code (moved there verbatim via operator-rs #1217 on the smooth-operator branch; hbase's copy was byte-identical to hdfs's, the canonical source). Drop the now-unused java-properties and xml dependencies. No behaviour change; rendered output is byte-identical by construction (same code, new home). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor: add uid, namespace to ValidatedCluster * refactor: use non optional property writers * fix: cleanup, move constants, fix comments * refactor: consolidate ValidatedRoleGroupConfig * Update rust/operator-binary/src/hbase_controller.rs Co-authored-by: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> * fix: bump stackable-operator for non optional KeyValueConfigOverrides * fix: update hashes * refactor: move ValidatedCluster structs to controller/mod.rs * refactor: add framework module * drop dead code: namespace * fix: remove product-config references in comments * refactor: drop vendored framework, use mergeable v2 JavaCommonConfig * test: decouple builder tests from crd::merged_config via validated_cluster() * chore: bump stackable-operator * refactor: move jvm config builder into controller/build * refactor: remove HbaseCluster::merged_config, dedup merge via with_validated_config * chore: bump stackable-operator * refactor: Add ValidatedCluster methods and use RoleGroupName. * refactor: move k8s resources to resource folder, config etc to build * refactor: Add ValidatedHbaseConfig, adapt to v2 logging & add vector tests * refactor: switch to v2 Clusterresources * chore: cleanup constants * refactor: Use typed constants, remove duplicated merge * refactor: remove raw cluster references from k8s resources * refactor: move listener build out of crd * refactor: move role and port constants to builder * refactor: move region_mover to builder * fix(tests): add vector templates & fix vars * refactor: use v2 ConfigMapName, SecretName, ListenerName in CRD * refactor: switch to v2 listener builder * refactor: use v2 container builder * refactor: use v2 Port type * refactor: remove raw cluster ref from kerberos and jvm * fix: move hardcoded reused values to constants * refactor: switch to generic rolegroupconfig * refactor: remove has_kerberos_enabled and has_https_enabled from ValidatedClusterConfig * refactor: remove calulcated properties from Validated* structs * chore: bump dependencies * fix: use optional replicas * fix: remove v2 upstream reference * fix: do not write empty xml files * refactor: consolidate discovery * refactor: use v2 VolumeName * test: add unit test for region mover & znode * refactor: move hardcoded properties to constants * fix: make opaconfig optional, rename logging module, document listener ephemeral API * fix: consolidate STACKABE_LOG_DIR import; remove empty vec allocation; commet region mover timeout * chore: bump stackable operator 0.112.0, tokio 1.52, clap 4.6 * fix: remove ssl security from snapshot when no tls is used * refactor: use indoc for unit tests * refactor: use indoc in awlward unit tests --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Co-authored-by: Andrew Kenworthy <andrew.kenworthy@stackable.tech> Co-authored-by: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com>
1 parent c122643 commit 3c06baa

58 files changed

Lines changed: 6376 additions & 4990 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515
Previously, arbitrary file names were silently accepted and ignored ([#751]).
1616
- Bump `stackable-operator` to 0.111.1 and snafu to 0.9 ([#751], [#752]).
1717
- Internal operator refactoring: introduce dereference() and validate() steps in the reconciler ([#757]).
18+
- Removed the `product-config` dependency; configuration is now rendered from typed, validated inputs ([#757]).
1819
- test: Bump vector-aggregator to 0.55.0, replace /graphql call with gRPC call ([#762]).
20+
- BREAKING: Removed product-config machinery. This is a breaking change in terms of configuration.
21+
Users relying on the product-config `properties.yaml` file have to set these properties via the CRD ([#765]).
1922

2023
### Removed
2124

@@ -26,6 +29,7 @@
2629
[#752]: https://github.com/stackabletech/hbase-operator/pull/752
2730
[#757]: https://github.com/stackabletech/hbase-operator/pull/757
2831
[#762]: https://github.com/stackabletech/hbase-operator/pull/762
32+
[#765]: https://github.com/stackabletech/hbase-operator/pull/765
2933
[#767]: https://github.com/stackabletech/hbase-operator/pull/767
3034

3135
## [26.3.0] - 2026-03-16

0 commit comments

Comments
 (0)