@@ -65,7 +65,8 @@ use crate::crd::{
6565 DEFAULT_NAME_NODE_RPC_PORT , DFS_REPLICATION , HADOOP_POLICY_XML , HDFS_SITE_XML ,
6666 JVM_SECURITY_PROPERTIES_FILE , LISTENER_VOLUME_NAME , SERVICE_PORT_NAME_DATA ,
6767 SERVICE_PORT_NAME_HTTP , SERVICE_PORT_NAME_HTTPS , SERVICE_PORT_NAME_IPC ,
68- SERVICE_PORT_NAME_METRICS , SERVICE_PORT_NAME_RPC , SSL_CLIENT_XML , SSL_SERVER_XML ,
68+ SERVICE_PORT_NAME_JMX_METRICS , SERVICE_PORT_NAME_METRICS , SERVICE_PORT_NAME_RPC ,
69+ SSL_CLIENT_XML , SSL_SERVER_XML ,
6970 } ,
7071 security:: { AuthenticationConfig , KerberosConfig } ,
7172 storage:: {
@@ -390,10 +391,10 @@ impl v1alpha1::HdfsCluster {
390391 let ns = ns. clone ( ) ;
391392 ( 0 ..* replicas) . map ( move |i| HdfsPodRef {
392393 namespace : ns. clone ( ) ,
393- role_group_service_name : rolegroup_ref. object_name ( ) ,
394+ role_group_service_name : rolegroup_ref. rolegroup_headless_service_name ( ) ,
394395 pod_name : format ! ( "{}-{}" , rolegroup_ref. object_name( ) , i) ,
395396 ports : self
396- . ports ( role)
397+ . data_ports ( role)
397398 . iter ( )
398399 . map ( |( n, p) | ( n. clone ( ) , * p) )
399400 . collect ( ) ,
@@ -671,7 +672,7 @@ impl v1alpha1::HdfsCluster {
671672 }
672673
673674 /// Returns required port name and port number tuples depending on the role.
674- pub fn ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
675+ pub fn data_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
675676 match role {
676677 HdfsNodeRole :: Name => vec ! [
677678 (
@@ -731,26 +732,26 @@ impl v1alpha1::HdfsCluster {
731732 }
732733 }
733734
734- /// Returns required metrics port name and metrics port number tuples depending on the role.
735- pub fn metrics_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
735+ /// Deprecated required JMX metrics port name and metrics port number tuples depending on the role.
736+ pub fn jmx_metrics_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
736737 match role {
737738 HdfsNodeRole :: Name => vec ! [ (
738- String :: from( SERVICE_PORT_NAME_METRICS ) ,
739+ String :: from( SERVICE_PORT_NAME_JMX_METRICS ) ,
739740 DEFAULT_NAME_NODE_METRICS_PORT ,
740741 ) ] ,
741742 HdfsNodeRole :: Data => vec ! [ (
742- String :: from( SERVICE_PORT_NAME_METRICS ) ,
743+ String :: from( SERVICE_PORT_NAME_JMX_METRICS ) ,
743744 DEFAULT_DATA_NODE_METRICS_PORT ,
744745 ) ] ,
745746 HdfsNodeRole :: Journal => vec ! [ (
746- String :: from( SERVICE_PORT_NAME_METRICS ) ,
747+ String :: from( SERVICE_PORT_NAME_JMX_METRICS ) ,
747748 DEFAULT_JOURNAL_NODE_METRICS_PORT ,
748749 ) ] ,
749750 }
750751 }
751752
752- /// Returns required metrics port name and native metrics port number tuples depending on the role.
753- pub fn native_metrics_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
753+ /// Returns required metrics port name and metrics port number tuples depending on the role and security settings .
754+ pub fn metrics_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
754755 match role {
755756 HdfsNodeRole :: Name => vec ! [ if self . has_https_enabled( ) {
756757 (
@@ -821,6 +822,28 @@ impl v1alpha1::HdfsCluster {
821822 }
822823 }
823824 }
825+
826+ pub fn metrics_service_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
827+ let mut metrics_service_ports = vec ! [ ] ;
828+ // "native" ports
829+ metrics_service_ports. extend ( self . metrics_ports ( role) ) ;
830+ metrics_service_ports. extend ( self . jmx_metrics_ports ( role) ) ;
831+ metrics_service_ports
832+ }
833+
834+ pub fn headless_service_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
835+ let mut headless_service_ports = vec ! [ ] ;
836+ headless_service_ports. extend ( self . data_ports ( role) ) ;
837+ headless_service_ports
838+ }
839+
840+ pub fn hdfs_main_container_ports ( & self , role : & HdfsNodeRole ) -> Vec < ( String , u16 ) > {
841+ let mut main_container_ports = vec ! [ ] ;
842+ main_container_ports. extend ( self . data_ports ( role) ) ;
843+ // TODO: This will be exposed in the listener if added to container ports?
844+ // main_container_ports.extend(self.jmx_metrics_ports(role));
845+ main_container_ports
846+ }
824847}
825848
826849#[ derive( Clone , Debug , Deserialize , Eq , Hash , JsonSchema , PartialEq , Serialize ) ]
0 commit comments