feat: remove product config & clean up#830
Conversation
Add a [patch] override redirecting stackable-operator to the smooth-operator branch of operator-rs (mirroring trino/hdfs operators), in preparation for removing product-config. No source changes were required; the framework API surface used by druid-operator is unchanged between the 0.111.0 tag and the smooth-operator branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ults Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Removes the last direct uses of the product-config crate now that validation and config-map rendering compute everything from first principles. Deletes the dead `build_role_properties` method and the five `impl Configuration` blocks, makes `common_compute_files` infallible, and replaces the `Configuration`-based `.erase()` in `get_role` with a local `erase_config` helper that erases the typed config to `()`. Also drops the `ProductConfigManager` from the controller `Ctx`, ignores the shared `--product-config` CLI arg, removes the product-config config-spec files plus their Helm/Dockerfile wiring, and removes the crate from Cargo.toml/Cargo.lock (it now only remains transitively via stackable-operator). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nces Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The operator no longer reads a product-config spec, but the config-spec properties.yaml files must remain (empty) for chart/release tooling, matching trino-operator and hdfs-operator. Revert the Helm/Dockerfile changes so the config-spec wiring is unchanged from main; only the spec contents are emptied. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…constants Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
||
| [workspace.dependencies] | ||
| product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.8.0" } | ||
| stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.111.0", features = ["crds", "webhook"] } |
There was a problem hiding this comment.
This should be bumped to 0.111.1 to be the same as the smooth-op branch in op-rs.
| role: &DruidRole, | ||
| rolegroup: &RoleGroupRef<v1alpha1::DruidCluster>, | ||
| rg: &DruidRoleGroupConfig, | ||
| owner: &v1alpha1::DruidCluster, |
There was a problem hiding this comment.
This should be handled when validating the cluster so we don't have to reach into the raw spec again i.e. extract metadata_database_connection_details into ValidatedCluster and use it from there. The comment says this is a follow-up step (which makes sense for at least the role resolution, probably), but we can deal with some of these now (maybe also storage type).
| // Currently unused by the build steps, but part of the documented `ValidatedCluster` shape; | ||
| // consumed by later tasks. | ||
| #[allow(dead_code)] | ||
| pub name: String, |
There was a problem hiding this comment.
I don't think we do this elsewhere, do we? (including a field that is not used)
| ConfigFileName::RuntimeProperties => overrides.runtime_properties.overrides.clone(), | ||
| ConfigFileName::SecurityProperties => overrides.security_properties.overrides.clone(), | ||
| // log4j2.properties is rendered by the logging framework and accepts no key/value overrides. | ||
| ConfigFileName::Log4j2Properties => BTreeMap::new(), |
There was a problem hiding this comment.
There is no arm here for jvm.config, which means that user overrides never seem to be used and are ignored. Is this intentional or have we regressed something?
There was a problem hiding this comment.
I think this behaviour is unchanged, but maybe we could do with a comment somewhere to make that clear.
Description
Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker