@@ -4,11 +4,9 @@ use snafu::{OptionExt, ResultExt, Snafu};
44use stackable_operator:: {
55 builder:: { configmap:: ConfigMapBuilder , meta:: ObjectMetaBuilder } ,
66 k8s_openapi:: api:: core:: v1:: ConfigMap ,
7- kvp:: ObjectLabels ,
87 product_logging:: framework:: VECTOR_CONFIG_FILE ,
9- role_utils:: RoleGroupRef ,
108 utils:: cluster_info:: KubernetesClusterInfo ,
11- v2:: builder:: meta:: ownerreference_from_resource,
9+ v2:: { builder:: meta:: ownerreference_from_resource, types :: operator :: RoleGroupName } ,
1210} ;
1311
1412use crate :: {
@@ -23,16 +21,11 @@ use crate::{
2321 proxy_hosts,
2422 } ,
2523 } ,
26- crd:: { NifiRole , v1alpha1 } ,
24+ crd:: NifiRole ,
2725} ;
2826
2927#[ derive( Debug , Snafu ) ]
3028pub enum Error {
31- #[ snafu( display( "failed to build metadata" ) ) ]
32- MetadataBuild {
33- source : stackable_operator:: builder:: meta:: Error ,
34- } ,
35-
3629 #[ snafu( display( "failed to build bootstrap.conf" ) ) ]
3730 BootstrapConfig {
3831 #[ snafu( source( from( crate :: controller:: build:: Error , Box :: new) ) ) ]
@@ -43,19 +36,19 @@ pub enum Error {
4336 BuildNifiProperties {
4437 #[ snafu( source( from( crate :: controller:: build:: Error , Box :: new) ) ) ]
4538 source : Box < crate :: controller:: build:: Error > ,
46- rolegroup : RoleGroupRef < v1alpha1 :: NifiCluster > ,
39+ rolegroup : RoleGroupName ,
4740 } ,
4841
4942 #[ snafu( display( "failed to build ConfigMap for {rolegroup}" ) ) ]
5043 BuildRoleGroupConfig {
5144 source : stackable_operator:: builder:: configmap:: Error ,
52- rolegroup : RoleGroupRef < v1alpha1 :: NifiCluster > ,
45+ rolegroup : RoleGroupName ,
5346 } ,
5447
5548 #[ snafu( display( "failed to serialize JVM security properties for {}" , rolegroup) ) ]
5649 JvmSecurityProperties {
5750 source : stackable_operator:: v2:: config_file_writer:: PropertiesWriterError ,
58- rolegroup : String ,
51+ rolegroup : RoleGroupName ,
5952 } ,
6053
6154 #[ snafu( display( "failed to build login-identity-providers configuration" ) ) ]
@@ -75,23 +68,25 @@ type Result<T, E = Error> = std::result::Result<T, E>;
7568/// Build the rolegroup [`ConfigMap`] configuring the rolegroup based on the
7669/// resolved cluster configuration.
7770///
78- /// All NiFi configuration is sourced from `cluster`. `recommended_labels` must be built by the
79- /// caller (typically via `build_recommended_labels`).
71+ /// All NiFi configuration is sourced from `cluster`.
72+ ///
73+ /// `vector_config` is the Vector agent config (`vector.yaml`) built by the caller (where a
74+ /// `RoleGroupRef` is available); it is `None` when the Vector agent is disabled.
8075pub fn build_rolegroup_config_map (
8176 cluster : & ValidatedCluster ,
82- rolegroup : & RoleGroupRef < v1alpha1:: NifiCluster > ,
83- recommended_labels : & ObjectLabels < ' _ , ValidatedCluster > ,
77+ role_group_name : & RoleGroupName ,
8478 cluster_info : & KubernetesClusterInfo ,
79+ vector_config : Option < String > ,
8580) -> Result < ConfigMap > {
8681 tracing:: debug!( "building rolegroup ConfigMap" ) ;
8782
8883 let rg = cluster
8984 . role_group_configs
9085 . get ( & NifiRole :: Node )
91- . and_then ( |groups| groups. get ( & rolegroup . role_group ) )
86+ . and_then ( |groups| groups. get ( role_group_name ) )
9287 . with_context ( || MissingRoleGroupSnafu {
9388 role : NifiRole :: Node . to_string ( ) ,
94- role_group : rolegroup . role_group . clone ( ) ,
89+ role_group : role_group_name . to_string ( ) ,
9590 } ) ?;
9691
9792 let proxy_hosts = proxy_hosts:: compute_proxy_hosts ( cluster, cluster_info) ;
@@ -103,11 +98,15 @@ pub fn build_rolegroup_config_map(
10398 cm_builder
10499 . metadata (
105100 ObjectMetaBuilder :: new ( )
106- . namespace ( & cluster. namespace )
107- . name ( rolegroup. object_name ( ) )
101+ . name_and_namespace ( cluster)
102+ . name (
103+ cluster
104+ . resource_names ( role_group_name)
105+ . role_group_config_map ( )
106+ . to_string ( ) ,
107+ )
108108 . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
109- . with_recommended_labels ( recommended_labels)
110- . context ( MetadataBuildSnafu ) ?
109+ . with_labels ( cluster. recommended_labels ( role_group_name) )
111110 . build ( ) ,
112111 )
113112 . add_data (
@@ -119,7 +118,7 @@ pub fn build_rolegroup_config_map(
119118 ConfigFileName :: NifiProperties . to_string ( ) ,
120119 nifi_properties:: build ( cluster, rg, & proxy_hosts, & git_sync_resources) . with_context (
121120 |_| BuildNifiPropertiesSnafu {
122- rolegroup : rolegroup . clone ( ) ,
121+ rolegroup : role_group_name . clone ( ) ,
123122 } ,
124123 ) ?,
125124 )
@@ -139,21 +138,21 @@ pub fn build_rolegroup_config_map(
139138 . add_data (
140139 ConfigFileName :: SecurityProperties . to_string ( ) ,
141140 security_properties:: build ( rg) . with_context ( |_| JvmSecurityPropertiesSnafu {
142- rolegroup : rolegroup . role_group . clone ( ) ,
141+ rolegroup : role_group_name . clone ( ) ,
143142 } ) ?,
144143 ) ;
145144
146145 if let Some ( logback_config) = logging:: build_logback_config ( & rg. config . logging ) {
147146 cm_builder. add_data ( ConfigFileName :: Logback . to_string ( ) , logback_config) ;
148147 }
149148
150- if let Some ( vector_config) = logging :: build_vector_config ( rolegroup , & rg . config . logging ) {
149+ if let Some ( vector_config) = vector_config {
151150 cm_builder. add_data ( VECTOR_CONFIG_FILE , vector_config) ;
152151 }
153152
154153 cm_builder
155154 . build ( )
156155 . with_context ( |_| BuildRoleGroupConfigSnafu {
157- rolegroup : rolegroup . clone ( ) ,
156+ rolegroup : role_group_name . clone ( ) ,
158157 } )
159158}
0 commit comments