1+ //! Build the discovery `ConfigMap` for the HbaseCluster.
2+
13use std:: collections:: BTreeMap ;
24
35use snafu:: { ResultExt , Snafu } ;
46use stackable_operator:: {
57 builder:: { configmap:: ConfigMapBuilder , meta:: ObjectMetaBuilder } ,
6- commons:: product_image_selection:: ResolvedProductImage ,
78 k8s_openapi:: api:: core:: v1:: ConfigMap ,
89 kube:: runtime:: reflector:: ObjectRef ,
9- utils:: cluster_info:: KubernetesClusterInfo ,
1010} ;
1111
1212use crate :: {
1313 config:: writer:: to_hadoop_xml,
14- crd:: { HBASE_SITE_XML , HbaseRole , v1alpha1} ,
15- hbase_controller:: build_recommended_labels,
16- kerberos:: { self , kerberos_discovery_config_properties} ,
17- zookeeper:: ZookeeperConnectionInformation ,
14+ controller:: build:: properties:: ConfigFileName ,
15+ crd:: { HbaseRole , v1alpha1} ,
16+ hbase_controller:: { ValidatedCluster , build_recommended_labels} ,
1817} ;
1918
2019type Result < T , E = Error > = std:: result:: Result < T , E > ;
@@ -36,43 +35,42 @@ pub enum Error {
3635 ObjectMeta {
3736 source : stackable_operator:: builder:: meta:: Error ,
3837 } ,
39-
40- #[ snafu( display( "failed to add Kerberos discovery" ) ) ]
41- AddKerberosDiscovery { source : kerberos:: Error } ,
4238}
4339
4440/// Creates a discovery config map containing the `hbase-site.xml` for clients.
45- pub fn build_discovery_configmap (
46- hbase : & v1alpha1:: HbaseCluster ,
47- cluster_info : & KubernetesClusterInfo ,
48- zookeeper_connection_information : & ZookeeperConnectionInformation ,
49- resolved_product_image : & ResolvedProductImage ,
41+ ///
42+ /// The rendered content comes entirely from `cluster`; `owner_ref` is retained only for the
43+ /// ConfigMap ObjectMeta / owner reference.
44+ pub fn build_discovery_config_map (
45+ cluster : & ValidatedCluster ,
46+ owner_ref : & v1alpha1:: HbaseCluster ,
5047) -> Result < ConfigMap > {
51- let mut hbase_site = zookeeper_connection_information. as_hbase_settings ( ) ;
52- hbase_site. extend (
53- kerberos_discovery_config_properties ( hbase, cluster_info)
54- . context ( AddKerberosDiscoverySnafu ) ?,
55- ) ;
48+ let cluster_config = & cluster. cluster_config ;
49+
50+ let mut hbase_site = cluster_config
51+ . zookeeper_connection_information
52+ . as_hbase_settings ( ) ;
53+ hbase_site. extend ( cluster_config. discovery_kerberos_config . clone ( ) ) ;
5654
5755 ConfigMapBuilder :: new ( )
5856 . metadata (
5957 ObjectMetaBuilder :: new ( )
60- . name_and_namespace ( hbase )
61- . ownerreference_from_resource ( hbase , None , Some ( true ) )
58+ . name_and_namespace ( owner_ref )
59+ . ownerreference_from_resource ( owner_ref , None , Some ( true ) )
6260 . with_context ( |_| ObjectMissingMetadataForOwnerRefSnafu {
63- hbase : ObjectRef :: from_obj ( hbase ) ,
61+ hbase : ObjectRef :: from_obj ( owner_ref ) ,
6462 } ) ?
6563 . with_recommended_labels ( & build_recommended_labels (
66- hbase ,
67- & resolved_product_image . app_version_label_value ,
64+ owner_ref ,
65+ & cluster . image . app_version_label_value ,
6866 & HbaseRole :: RegionServer . to_string ( ) ,
6967 "discovery" ,
7068 ) )
7169 . context ( ObjectMetaSnafu ) ?
7270 . build ( ) ,
7371 )
7472 . add_data (
75- HBASE_SITE_XML ,
73+ ConfigFileName :: HbaseSite . to_string ( ) ,
7674 to_hadoop_xml (
7775 hbase_site
7876 . into_iter ( )
0 commit comments