@@ -37,10 +37,7 @@ use stackable_operator::{
3737 product_image_selection:: ResolvedProductImage , rbac:: build_rbac_resources,
3838 tls_verification:: TlsClientDetailsError ,
3939 } ,
40- crd:: {
41- listener:: v1alpha1:: { Listener , ListenerPort , ListenerSpec } ,
42- s3,
43- } ,
40+ crd:: { listener:: v1alpha1:: Listener , s3} ,
4441 k8s_openapi:: {
4542 DeepMerge ,
4643 api:: {
@@ -91,9 +88,8 @@ use crate::{
9188 crd:: {
9289 APP_NAME , CORE_SITE_XML , Container , DB_PASSWORD_ENV , DB_USERNAME_ENV , HIVE_PORT ,
9390 HIVE_PORT_NAME , HIVE_SITE_XML , HiveClusterStatus , HiveRole , JVM_SECURITY_PROPERTIES_FILE ,
94- LISTENER_VOLUME_DIR , LISTENER_VOLUME_NAME , METRICS_PORT , METRICS_PORT_NAME ,
95- MetaStoreConfig , STACKABLE_CONFIG_DIR , STACKABLE_CONFIG_DIR_NAME ,
96- STACKABLE_CONFIG_MOUNT_DIR , STACKABLE_CONFIG_MOUNT_DIR_NAME ,
91+ METRICS_PORT , METRICS_PORT_NAME , MetaStoreConfig , STACKABLE_CONFIG_DIR ,
92+ STACKABLE_CONFIG_DIR_NAME , STACKABLE_CONFIG_MOUNT_DIR , STACKABLE_CONFIG_MOUNT_DIR_NAME ,
9793 STACKABLE_LOG_CONFIG_MOUNT_DIR , STACKABLE_LOG_CONFIG_MOUNT_DIR_NAME , STACKABLE_LOG_DIR ,
9894 STACKABLE_LOG_DIR_NAME ,
9995 v1alpha1:: { self , HiveMetastoreRoleConfig } ,
@@ -103,6 +99,7 @@ use crate::{
10399 self , add_kerberos_pod_config, kerberos_config_properties,
104100 kerberos_container_start_commands,
105101 } ,
102+ listener:: { LISTENER_VOLUME_DIR , LISTENER_VOLUME_NAME , build_group_listener} ,
106103 operations:: { graceful_shutdown:: add_graceful_shutdown_config, pdb:: add_pdbs} ,
107104 product_logging:: extend_role_group_config_map,
108105} ;
@@ -341,6 +338,9 @@ pub enum Error {
341338 source : stackable_operator:: cluster_resources:: Error ,
342339 role : String ,
343340 } ,
341+ #[ snafu( display( "failed to configure listener" ) ) ]
342+ ListenerConfiguration { source : crate :: listener:: Error } ,
343+
344344 #[ snafu( display( "failed to build listener volume" ) ) ]
345345 BuildListenerVolume {
346346 source : ListenerOperatorVolumeSourceBuilderError ,
@@ -521,7 +521,8 @@ pub async fn reconcile_hive(
521521
522522 if let Some ( HiveMetastoreRoleConfig { listener_class, .. } ) = role_config {
523523 let group_listener: Listener =
524- build_group_listener ( hive, & resolved_product_image, & hive_role, listener_class) ?;
524+ build_group_listener ( hive, & resolved_product_image, & hive_role, listener_class)
525+ . context ( ListenerConfigurationSnafu ) ?;
525526 let listener = cluster_resources
526527 . add ( client, group_listener)
527528 . await
@@ -573,51 +574,6 @@ pub async fn reconcile_hive(
573574 Ok ( Action :: await_change ( ) )
574575}
575576
576- // Designed to build a listener per role
577- // In case of Hive we expect only one role: Metastore
578- pub fn build_group_listener (
579- hive : & v1alpha1:: HiveCluster ,
580- resolved_product_image : & ResolvedProductImage ,
581- hive_role : & HiveRole ,
582- listener_class : & String ,
583- ) -> Result < Listener > {
584- let metadata = ObjectMetaBuilder :: new ( )
585- . name_and_namespace ( hive)
586- . name ( hive. group_listener_name ( hive_role) )
587- . ownerreference_from_resource ( hive, None , Some ( true ) )
588- . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
589- . with_recommended_labels ( build_recommended_labels (
590- hive,
591- & resolved_product_image. app_version_label ,
592- & hive_role. to_string ( ) ,
593- "none" ,
594- ) )
595- . context ( MetadataBuildSnafu ) ?
596- . build ( ) ;
597-
598- let spec = ListenerSpec {
599- class_name : Some ( listener_class. to_owned ( ) ) ,
600- ports : Some ( listener_ports ( ) ) ,
601- ..Default :: default ( )
602- } ;
603-
604- let listener = Listener {
605- metadata,
606- spec,
607- status : None ,
608- } ;
609-
610- Ok ( listener)
611- }
612-
613- fn listener_ports ( ) -> Vec < ListenerPort > {
614- vec ! [ ListenerPort {
615- name: HIVE_PORT_NAME . to_owned( ) ,
616- port: HIVE_PORT . into( ) ,
617- protocol: Some ( "TCP" . to_owned( ) ) ,
618- } ]
619- }
620-
621577/// The rolegroup [`ConfigMap`] configures the rolegroup based on the configuration given by the administrator
622578#[ allow( clippy:: too_many_arguments) ]
623579fn build_metastore_rolegroup_config_map (
0 commit comments