@@ -63,6 +63,7 @@ use stackable_operator::{
6363 statefulset:: StatefulSetConditionBuilder ,
6464 } ,
6565 utils:: COMMON_BASH_TRAP_FUNCTIONS ,
66+ v2:: builder:: meta:: ownerreference_from_resource,
6667} ;
6768use strum:: { EnumDiscriminants , IntoStaticStr } ;
6869
@@ -128,11 +129,6 @@ pub enum Error {
128129 rolegroup : RoleGroupRef < v1alpha2:: AirflowCluster > ,
129130 } ,
130131
131- #[ snafu( display( "object is missing metadata to build owner reference" ) ) ]
132- ObjectMissingMetadataForOwnerRef {
133- source : stackable_operator:: builder:: meta:: Error ,
134- } ,
135-
136132 #[ snafu( display( "failed to patch service account" ) ) ]
137133 ApplyServiceAccount {
138134 source : stackable_operator:: cluster_resources:: Error ,
@@ -442,7 +438,7 @@ pub async fn reconcile_airflow(
442438 && let Some ( listener_group_name) = & role_config. group_listener_name
443439 {
444440 let rg_group_listener = build_group_listener (
445- airflow ,
441+ & validated_cluster ,
446442 build_recommended_labels (
447443 airflow,
448444 AIRFLOW_CONTROLLER_NAME ,
@@ -497,7 +493,7 @@ pub async fn reconcile_airflow(
497493 . context ( LabelBuildSnafu ) ?;
498494
499495 let rg_headless_service = build_rolegroup_headless_service (
500- airflow ,
496+ & validated_cluster ,
501497 & rolegroup,
502498 role_group_service_recommended_labels. clone ( ) ,
503499 role_group_service_selector. clone ( ) . into ( ) ,
@@ -512,7 +508,7 @@ pub async fn reconcile_airflow(
512508 } ) ?;
513509
514510 let rg_metrics_service = build_rolegroup_metrics_service (
515- airflow ,
511+ & validated_cluster ,
516512 & rolegroup,
517513 role_group_service_recommended_labels,
518514 role_group_service_selector. into ( ) ,
@@ -632,8 +628,7 @@ async fn build_executor_template(
632628
633629 let worker_pod_template_config_map = build_executor_template_config_map (
634630 airflow,
635- & validated_cluster. image ,
636- & validated_cluster. cluster_config . authentication_config ,
631+ validated_cluster,
637632 metadata_database_connection_details,
638633 & rbac_sa. name_unchecked ( ) ,
639634 & merged_executor_config,
@@ -650,21 +645,19 @@ async fn build_executor_template(
650645}
651646
652647fn build_rolegroup_metadata (
653- airflow : & v1alpha2:: AirflowCluster ,
654- resolved_product_image : & & ResolvedProductImage ,
648+ cluster : & ValidatedCluster ,
655649 rolegroup : & & RoleGroupRef < v1alpha2:: AirflowCluster > ,
656650 prometheus_label : Label ,
657651 name : String ,
658652) -> Result < ObjectMeta , Error > {
659653 let metadata = ObjectMetaBuilder :: new ( )
660- . name_and_namespace ( airflow )
654+ . name_and_namespace ( cluster )
661655 . name ( name)
662- . ownerreference_from_resource ( airflow, None , Some ( true ) )
663- . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
656+ . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
664657 . with_recommended_labels ( & build_recommended_labels (
665- airflow ,
658+ cluster ,
666659 AIRFLOW_CONTROLLER_NAME ,
667- & resolved_product_image . app_version_label_value ,
660+ & cluster . image . app_version_label_value ,
668661 & rolegroup. role ,
669662 & rolegroup. role_group ,
670663 ) )
@@ -675,17 +668,16 @@ fn build_rolegroup_metadata(
675668}
676669
677670pub fn build_group_listener (
678- airflow : & v1alpha2 :: AirflowCluster ,
671+ cluster : & ValidatedCluster ,
679672 object_labels : ObjectLabels < v1alpha2:: AirflowCluster > ,
680673 listener_class : String ,
681674 listener_group_name : String ,
682675) -> Result < listener:: v1alpha1:: Listener > {
683676 Ok ( listener:: v1alpha1:: Listener {
684677 metadata : ObjectMetaBuilder :: new ( )
685- . name_and_namespace ( airflow )
678+ . name_and_namespace ( cluster )
686679 . name ( listener_group_name)
687- . ownerreference_from_resource ( airflow, None , Some ( true ) )
688- . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
680+ . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
689681 . with_recommended_labels ( & object_labels)
690682 . context ( ObjectMetaSnafu ) ?
691683 . build ( ) ,
@@ -978,8 +970,7 @@ fn build_server_rolegroup_statefulset(
978970 Label :: try_from ( ( "restarter.stackable.tech/enabled" , "true" ) ) . context ( BuildLabelSnafu ) ?;
979971
980972 let metadata = build_rolegroup_metadata (
981- airflow,
982- & resolved_product_image,
973+ validated_cluster,
983974 & rolegroup_ref,
984975 restarter_label,
985976 rolegroup_ref. object_name ( ) ,
@@ -1048,8 +1039,7 @@ fn build_logging_container(
10481039#[ allow( clippy:: too_many_arguments) ]
10491040fn build_executor_template_config_map (
10501041 airflow : & v1alpha2:: AirflowCluster ,
1051- resolved_product_image : & ResolvedProductImage ,
1052- authentication_config : & AirflowClientAuthenticationDetailsResolved ,
1042+ cluster : & ValidatedCluster ,
10531043 metadata_database_connection_details : & SqlAlchemyDatabaseConnectionDetails ,
10541044 sa_name : & str ,
10551045 merged_executor_config : & ExecutorConfig ,
@@ -1058,6 +1048,9 @@ fn build_executor_template_config_map(
10581048 rolegroup_ref : & RoleGroupRef < v1alpha2:: AirflowCluster > ,
10591049 git_sync_resources : & git_sync:: v1alpha2:: GitSyncResources ,
10601050) -> Result < ConfigMap > {
1051+ let resolved_product_image = & cluster. image ;
1052+ let authentication_config = & cluster. cluster_config . authentication_config ;
1053+
10611054 let mut pb = PodBuilder :: new ( ) ;
10621055 let pb_metadata = ObjectMetaBuilder :: new ( )
10631056 . with_recommended_labels ( & build_recommended_labels (
@@ -1167,8 +1160,7 @@ fn build_executor_template_config_map(
11671160 ObjectMetaBuilder :: new ( )
11681161 . name_and_namespace ( airflow)
11691162 . name ( airflow. executor_template_configmap_name ( ) )
1170- . ownerreference_from_resource ( airflow, None , Some ( true ) )
1171- . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
1163+ . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
11721164 . with_recommended_labels ( & build_recommended_labels (
11731165 airflow,
11741166 AIRFLOW_CONTROLLER_NAME ,
0 commit comments