feat: remove product config & clean up#738
Open
adwk67 wants to merge 7 commits into
Open
Conversation
…riter Fixes the [patch] key (it was missing the .git suffix, so the patch could never apply) and activates the smooth-operator branch of operator-rs (matching trino/hdfs/airflow/kafka) as the foundation for the v2 config_overrides adoption later in this series. Vendors the Flask Python-config writer into config/writer — byte-identical to airflow-operator's config/writer.rs (both are candidates for one shared crate; keeping them diff-empty makes that a trivial lift) — and repoints crd/mod.rs and resources/configmap.rs to it. No behaviour change (33 tests pass). Regenerated Cargo.nix/crate-hashes.json. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces the product-config validation path: ValidatedRoleGroupConfig now carries the complete superset_config.py key/value map (operator recommended values + config-derived values + user configOverrides, in that precedence) and the merged env overrides, assembled in validate. The recommended values formerly injected from properties.yaml (ROW_LIMIT=50000, SUPERSET_WEBSERVER_TIMEOUT=300, node role only, incl. the Trino-query timeout rationale) and the MAPBOX secret env injection from Configuration::compute_env move into collect_role_group_config. configOverrides now use stackable_operator::v2::config_overrides::KeyValueConfigOverrides (matching the other operators); the v1 KeyValueOverridesProvider and Configuration impls are removed. The statefulset still reads SUPERSET_WEBSERVER_TIMEOUT from the final file map, preserving configOverrides-based override semantics. Drops the product-config crate dependency (transitive via stackable-operator remains). CRD gains `nullable: true` on configOverrides values. Rendered superset_config.py and env vars are unchanged (33 tests pass; byte parity to be confirmed via kuttl). Regenerated extra/crds.yaml and Cargo.nix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…to controller/build Extracts the superset_config.py rendering (TALISMAN default + Superset/OPA settings + per-rolegroup properties + FILE_HEADER/FILE_FOOTER + Flask writer + celery connection class) into config/superset_config::build(), and relocates the ConfigMap assembler to controller/build/config_map.rs — matching the config/<file-builder> + controller/build/config_map.rs layout of airflow, hdfs, kafka and trino. The FILE_HEADER/FILE_FOOTER constants move into the builder, removing the last stackable_operator::product_config_utils import. No behaviour change (33 tests pass). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ngelog Removes the --product-config section from the commandline reference and the PRODUCT_CONFIG section from the environment-variables reference (both are now no-ops via the shared RunArguments), reduces the product-config properties.yaml files to an empty shell (their ROW_LIMIT / SUPERSET_WEBSERVER_TIMEOUT recommended values now live in controller/validate.rs; files retained pending a later Helm config refactor), and notes the product-config removal in the changelog. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 tasks
Replace the vendored flask writer (rust/operator-binary/src/config/writer.rs) with stackable_operator::v2::flask_config_writer, which now hosts the same code (moved there via operator-rs #1217, merged into the smooth-operator branch; the vendored copy was kept byte-identical to airflow-operator's precisely to enable this move). No behaviour change; rendered superset_config.py output is byte-identical by construction (same code, new home). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removed the product-config based configuration validation.
Config and environment overrides are now merged directly from the CRD into the validated cluster (including the formerly properties.yaml-provided
ROW_LIMITandSUPERSET_WEBSERVER_TIMEOUTrecommended values), the Flask config writer is vendored locally (identical to airflow-operator's, a shared-crate candidate), and theproduct-configcrate dependency is dropped.The
--product-configCLI flag andPRODUCT_CONFIGenv var are now no-ops.Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker