feat: remove product config#804
Open
adwk67 wants to merge 14 commits into
Open
Conversation
Computes the merged env and webserver_config.py overrides directly from the CRD (role <- role-group), replacing the product-config override path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces transform_all_roles_to_config / validate_all_roles_and_groups_config with direct role iteration plus merged_overrides(). Folds the dereferenced authentication/authorization objects into ValidatedAirflowCluster so downstream build steps read them from the validated cluster. The product-config crate is still used for the Flask config writer (removed in a later step). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Drops the defunct --product-config section from the commandline reference and notes the removal of product-config validation in the changelog. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Vendors the Flask Python-config writer locally (flask_config_writer) and drops the airflow-operator's direct product-config dependency. The rendered webserver_config.py is unchanged (the vendored writer is byte-for-byte faithful to the crate). product-config remains a transitive dependency via stackable-operator. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…iter Renames the vendored writer back to its upstream name and groups it under a `framework` module (mirroring the convention in trino-operator), signalling it as vendored code that is a candidate for a shared crate. The same writer is still used by superset-operator via the product-config crate. No behaviour change; the writer body is unchanged from the crate source. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…s, as done with trino
16 tasks
maltesander
reviewed
Jun 3, 2026
Comment on lines
576
to
585
| @@ -574,9 +577,9 @@ pub async fn reconcile_airflow( | |||
| airflow, | |||
| &validated.image, | |||
| &rolegroup, | |||
| &validated_rg_config.product_config_properties, | |||
| &dereferenced.authentication_config, | |||
| &dereferenced.authorization_config, | |||
| &validated_rg_config.overrides.config_file_overrides, | |||
| &validated.authentication_config, | |||
| &validated.authorization_config, | |||
| &validated_rg_config.merged_config.logging, | |||
| &Container::Airflow, | |||
| )?; | |||
Member
There was a problem hiding this comment.
I would not pass the airflow cluster anymore but use the ValidatedCluster. Will remove alot of parameters.
Relocates the vendored Flask config writer from framework/flask_app_config_writer to config/writer, matching hdfs-operator's config/writer.rs convention (no operator keeps a vendored writer under framework/, which trino reserves for v2 upstream mirrors). Converts config.rs into a config/ module. No behaviour change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…onfig Moves the webserver_config.py rendering (defaults + config overrides + the FILE_HEADER/FILE_FOOTER python blocks + the Flask writer call) out of build_rolegroup_config_map into a dedicated config::webserver_config::build(). The header/footer key constants and the related error variants move with it. Drops three debug! traces of intermediate config maps that no longer have a call site after the extraction; the rendered webserver_config.py is unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…_map Extracts build_rolegroup_config_map out of airflow_controller into a dedicated controller/build/config_map module with its own error enum, matching the controller/build/config_map.rs layout in hdfs- and trino-operator. The controller now wraps it via a single BuildConfigMap error variant; the ConfigMap-only error variants move into the new module. No behaviour change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…anch Patches operator-rs to the smooth-operator branch (matching trino- and hdfs-operator) and actually consumes it: AirflowConfigOverrides.webserver_config_py now uses stackable_operator::v2::config_overrides::KeyValueConfigOverrides — the Merge-capable variant trino/hdfs use — instead of the v1 type. Drops the v1 KeyValueOverridesProvider impl and the as_product_config_overrides() call; merged_overrides reads the override map directly (role <- role-group extend), so the rendered webserver_config.py is unchanged (39 tests pass). The CRD gains `nullable: true` on the webserver_config.py override values (v2 allows null to delete a key). Regenerated extra/crds.yaml, Cargo.nix, and crate-hashes.json. 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.
Computes the merged env and webserver_config.py overrides directly from the
CRD (role <- role-group), replacing the product-config override path.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com## Description
Definition of Done Checklist
Author
Reviewer
Acceptance
type/deprecationlabel & add to the deprecation scheduletype/experimentallabel & add to the experimental features tracker