Commit 3c06baa
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
File tree
- deploy
- config-spec
- helm/hbase-operator/configs
- docs/modules/hbase
- examples/getting_started
- pages/reference
- extra
- rust/operator-binary
- src
- config
- controller
- build
- properties
- product_logging
- resource
- crd
- operations
- security
- tests/templates/kuttl/smoke
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
| 20 | + | |
| 21 | + | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
| |||
26 | 29 | | |
27 | 30 | | |
28 | 31 | | |
| 32 | + | |
29 | 33 | | |
30 | 34 | | |
31 | 35 | | |
| |||
0 commit comments