@@ -17,14 +17,14 @@ use stackable_operator::{
1717    builder:: { 
1818        self , 
1919        pod:: { 
20+             PodBuilder , 
2021            container:: ContainerBuilder , 
2122            resources:: ResourceRequirementsBuilder , 
2223            volume:: { 
2324                ListenerOperatorVolumeSourceBuilder ,  ListenerOperatorVolumeSourceBuilderError , 
2425                ListenerReference ,  SecretFormat ,  SecretOperatorVolumeSourceBuilder , 
2526                SecretOperatorVolumeSourceBuilderError ,  VolumeBuilder ,  VolumeMountBuilder , 
2627            } , 
27-             PodBuilder , 
2828        } , 
2929    } , 
3030    commons:: product_image_selection:: ResolvedProductImage , 
@@ -36,19 +36,19 @@ use stackable_operator::{
3636        } , 
3737        apimachinery:: pkg:: util:: intstr:: IntOrString , 
3838    } , 
39-     kube:: { core:: ObjectMeta ,   ResourceExt } , 
39+     kube:: { ResourceExt ,   core:: ObjectMeta } , 
4040    kvp:: Labels , 
4141    product_logging:: { 
4242        self , 
4343        framework:: { 
44-             create_vector_shutdown_file_command ,  remove_vector_shutdown_file_command ,   LoggingError , 
44+             LoggingError ,  create_vector_shutdown_file_command ,  remove_vector_shutdown_file_command , 
4545        } , 
4646        spec:: { 
4747            ConfigMapLogConfig ,  ContainerLogConfig ,  ContainerLogConfigChoice , 
4848            CustomContainerLogConfig , 
4949        } , 
5050    } , 
51-     utils:: { cluster_info:: KubernetesClusterInfo ,   COMMON_BASH_TRAP_FUNCTIONS } , 
51+     utils:: { COMMON_BASH_TRAP_FUNCTIONS ,   cluster_info:: KubernetesClusterInfo } , 
5252} ; 
5353use  strum:: { Display ,  EnumDiscriminants ,  IntoStaticStr } ; 
5454
@@ -58,6 +58,8 @@ use crate::{
5858        jvm:: { construct_global_jvm_args,  construct_role_specific_jvm_args} , 
5959    } , 
6060    crd:: { 
61+         AnyNodeConfig ,  DataNodeContainer ,  HdfsNodeRole ,  HdfsPodRef ,  NameNodeContainer , 
62+         UpgradeState , 
6163        constants:: { 
6264            DATANODE_ROOT_DATA_DIR_PREFIX ,  DEFAULT_DATA_NODE_METRICS_PORT , 
6365            DEFAULT_JOURNAL_NODE_METRICS_PORT ,  DEFAULT_NAME_NODE_METRICS_PORT ,  LISTENER_VOLUME_DIR , 
@@ -69,8 +71,7 @@ use crate::{
6971            SERVICE_PORT_NAME_RPC ,  STACKABLE_ROOT_DATA_DIR , 
7072        } , 
7173        storage:: DataNodeStorageConfig , 
72-         v1alpha1,  AnyNodeConfig ,  DataNodeContainer ,  HdfsNodeRole ,  HdfsPodRef ,  NameNodeContainer , 
73-         UpgradeState , 
74+         v1alpha1, 
7475    } , 
7576    product_logging:: { 
7677        FORMAT_NAMENODES_LOG4J_CONFIG_FILE ,  FORMAT_ZOOKEEPER_LOG4J_CONFIG_FILE , 
@@ -104,10 +105,9 @@ pub enum Error {
104105        role :  String , 
105106    } , 
106107
107-     #[ snafu(  
108-         display( "could not determine any ContainerConfig actions for {container_name:?}. Container not recognized."  
109-         )  
110-     ) ]  
108+     #[ snafu( display(  
109+         "could not determine any ContainerConfig actions for {container_name:?}. Container not recognized."  
110+     ) ) ]  
111111    UnrecognizedContainerName  {  container_name :  String  } , 
112112
113113    #[ snafu( display( "invalid container name {name:?}" ) ) ]  
@@ -191,22 +191,20 @@ pub enum ContainerConfig {
191191} 
192192
193193impl  ContainerConfig  { 
194-     // volumes 
195-     pub  const  STACKABLE_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "log" ; 
196194    pub  const  DATA_VOLUME_MOUNT_NAME :  & ' static  str  = "data" ; 
197-     pub  const  HDFS_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "hdfs-config" ; 
198- 
199-     const  HDFS_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "hdfs-log-config" ; 
200-     const  ZKFC_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "zkfc-config" ; 
201-     const  ZKFC_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "zkfc-log-config" ; 
202195    const  FORMAT_NAMENODES_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "format-namenodes-config" ; 
203196    const  FORMAT_NAMENODES_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "format-namenodes-log-config" ; 
204197    const  FORMAT_ZOOKEEPER_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "format-zookeeper-config" ; 
205198    const  FORMAT_ZOOKEEPER_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "format-zookeeper-log-config" ; 
199+     const  HADOOP_HOME :  & ' static  str  = "/stackable/hadoop" ; 
200+     pub  const  HDFS_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "hdfs-config" ; 
201+     const  HDFS_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "hdfs-log-config" ; 
202+     // volumes 
203+     pub  const  STACKABLE_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "log" ; 
206204    const  WAIT_FOR_NAMENODES_CONFIG_VOLUME_MOUNT_NAME :  & ' static  str  = "wait-for-namenodes-config" ; 
207205    const  WAIT_FOR_NAMENODES_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "wait-for-namenodes-log-config" ; 
208- 
209-     const  HADOOP_HOME :  & ' static  str  = "/stackable/hadoop " ; 
206+      const   ZKFC_CONFIG_VOLUME_MOUNT_NAME :   & ' static   str  =  "zkfc-config" ; 
207+     const  ZKFC_LOG_VOLUME_MOUNT_NAME :  & ' static  str  = "zkfc-log-config " ; 
210208
211209    /// Add all main, side and init containers as well as required volumes to the pod builder. 
212210     #[ allow( clippy:: too_many_arguments) ]  
@@ -802,7 +800,9 @@ wait_for_termination $!
802800
803801    // Command to export `KERBEROS_REALM` env var to default real from krb5.conf, e.g. `CLUSTER.LOCAL` 
804802    fn  export_kerberos_real_env_var_command ( )  -> String  { 
805-         format ! ( "export KERBEROS_REALM=$(grep -oP 'default_realm = \\ K.*' {KERBEROS_CONTAINER_PATH}/krb5.conf)\n " ) 
803+         format ! ( 
804+             "export KERBEROS_REALM=$(grep -oP 'default_realm = \\ K.*' {KERBEROS_CONTAINER_PATH}/krb5.conf)\n " 
805+         ) 
806806    } 
807807
808808    /// Command to `kinit` a ticket using the principal created for the specified hdfs role 
@@ -869,52 +869,37 @@ wait_for_termination $!
869869        // See https://github.com/stackabletech/hdfs-operator/issues/138 for details 
870870        if  let  ContainerConfig :: Hdfs  {  role,  .. }  = self  { 
871871            let  role_opts_name = role. hadoop_opts_env_var_for_role ( ) . to_string ( ) ; 
872-             env. insert ( 
873-                 role_opts_name. clone ( ) , 
874-                 EnvVar  { 
875-                     name :  role_opts_name, 
876-                     value :  Some ( self . build_hadoop_opts ( hdfs,  role_group,  resources) ?) , 
877-                     ..EnvVar :: default ( ) 
878-                 } , 
879-             ) ; 
872+             env. insert ( role_opts_name. clone ( ) ,  EnvVar  { 
873+                 name :  role_opts_name, 
874+                 value :  Some ( self . build_hadoop_opts ( hdfs,  role_group,  resources) ?) , 
875+                 ..EnvVar :: default ( ) 
876+             } ) ; 
880877        } 
881878
882-         env. insert ( 
883-             "HADOOP_OPTS" . to_string ( ) , 
884-             EnvVar  { 
885-                 name :  "HADOOP_OPTS" . to_string ( ) , 
886-                 value :  Some ( construct_global_jvm_args ( hdfs. has_kerberos_enabled ( ) ) ) , 
887-                 ..EnvVar :: default ( ) 
888-             } , 
889-         ) ; 
879+         env. insert ( "HADOOP_OPTS" . to_string ( ) ,  EnvVar  { 
880+             name :  "HADOOP_OPTS" . to_string ( ) , 
881+             value :  Some ( construct_global_jvm_args ( hdfs. has_kerberos_enabled ( ) ) ) , 
882+             ..EnvVar :: default ( ) 
883+         } ) ; 
890884        if  hdfs. has_kerberos_enabled ( )  { 
891-             env. insert ( 
892-                 "KRB5_CONFIG" . to_string ( ) , 
893-                 EnvVar  { 
894-                     name :  "KRB5_CONFIG" . to_string ( ) , 
895-                     value :  Some ( format ! ( "{KERBEROS_CONTAINER_PATH}/krb5.conf" ) ) , 
896-                     ..EnvVar :: default ( ) 
897-                 } , 
898-             ) ; 
899-             env. insert ( 
900-                 "KRB5_CLIENT_KTNAME" . to_string ( ) , 
901-                 EnvVar  { 
902-                     name :  "KRB5_CLIENT_KTNAME" . to_string ( ) , 
903-                     value :  Some ( format ! ( "{KERBEROS_CONTAINER_PATH}/keytab" ) ) , 
904-                     ..EnvVar :: default ( ) 
905-                 } , 
906-             ) ; 
885+             env. insert ( "KRB5_CONFIG" . to_string ( ) ,  EnvVar  { 
886+                 name :  "KRB5_CONFIG" . to_string ( ) , 
887+                 value :  Some ( format ! ( "{KERBEROS_CONTAINER_PATH}/krb5.conf" ) ) , 
888+                 ..EnvVar :: default ( ) 
889+             } ) ; 
890+             env. insert ( "KRB5_CLIENT_KTNAME" . to_string ( ) ,  EnvVar  { 
891+                 name :  "KRB5_CLIENT_KTNAME" . to_string ( ) , 
892+                 value :  Some ( format ! ( "{KERBEROS_CONTAINER_PATH}/keytab" ) ) , 
893+                 ..EnvVar :: default ( ) 
894+             } ) ; 
907895        } 
908896
909897        // Needed for the `containerdebug` process to log it's tracing information to. 
910-         env. insert ( 
911-             "CONTAINERDEBUG_LOG_DIRECTORY" . to_string ( ) , 
912-             EnvVar  { 
913-                 name :  "CONTAINERDEBUG_LOG_DIRECTORY" . to_string ( ) , 
914-                 value :  Some ( format ! ( "{STACKABLE_LOG_DIR}/containerdebug" ) ) , 
915-                 value_from :  None , 
916-             } , 
917-         ) ; 
898+         env. insert ( "CONTAINERDEBUG_LOG_DIRECTORY" . to_string ( ) ,  EnvVar  { 
899+             name :  "CONTAINERDEBUG_LOG_DIRECTORY" . to_string ( ) , 
900+             value :  Some ( format ! ( "{STACKABLE_LOG_DIR}/containerdebug" ) ) , 
901+             value_from :  None , 
902+         } ) ; 
918903
919904        // Overrides need to come last 
920905        let  mut  env_override_vars:  BTreeMap < String ,  EnvVar >  =
@@ -1457,13 +1442,15 @@ impl ContainerVolumeDirs {
14571442    pub  fn  config_mount ( & self )  -> & str  { 
14581443        self . config_mount . as_str ( ) 
14591444    } 
1445+ 
14601446    pub  fn  config_mount_name ( & self )  -> & str  { 
14611447        self . config_mount_name . as_str ( ) 
14621448    } 
14631449
14641450    pub  fn  log_mount ( & self )  -> & str  { 
14651451        self . log_mount . as_str ( ) 
14661452    } 
1453+ 
14671454    pub  fn  log_mount_name ( & self )  -> & str  { 
14681455        self . log_mount_name . as_str ( ) 
14691456    } 
0 commit comments