Skip to content

feat: remove product config & clean up#765

Open
maltesander wants to merge 18 commits into
mainfrom
refactor/remove-product-config
Open

feat: remove product config & clean up#765
maltesander wants to merge 18 commits into
mainfrom
refactor/remove-product-config

Conversation

@maltesander
Copy link
Copy Markdown
Member

Description

  • remove product config
  • move to config map builder step

Definition of Done Checklist

  • Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
  • Please make sure all these things are done and tick the boxes

Author

  • Changes are OpenShift compatible
  • CRD changes approved
  • CRD documentation for all fields, following the style guide.
  • Helm chart can be installed and deployed operator works
  • Integration tests passed (for non trivial changes)
  • Changes need to be "offline" compatible
  • Links to generated (nightly) docs added
  • Release note snippet added

Reviewer

  • Code contains useful comments
  • Code contains useful logging statements
  • (Integration-)Test cases added
  • Documentation added or updated. Follows the style guide.
  • Changelog updated
  • Cargo.toml only contains references to git tags (not specific commits or branches)

Acceptance

  • Feature Tracker has been updated
  • Proper release label has been added
  • Links to generated (nightly) docs added
  • Release note snippet added
  • Add type/deprecation label & add to the deprecation schedule
  • Add type/experimental label & add to the experimental features tracker

maltesander and others added 15 commits June 3, 2026 14:43
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) <[email protected]>
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) <[email protected]>
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) <[email protected]>
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) <[email protected]>
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) <[email protected]>
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) <[email protected]>
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) <[email protected]>
@razvan
Copy link
Copy Markdown
Member

razvan commented Jun 5, 2026

CRD is backwards compatible (as of now). Tested operator upgrade with the getting started script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants