@@ -6,9 +6,13 @@ use stackable_operator::{
66 client:: Client ,
77 k8s_openapi:: api:: core:: v1:: { EnvVar , EnvVarSource , Secret , SecretKeySelector } ,
88 kube:: ResourceExt ,
9+ v2:: builder:: meta:: ownerreference_from_resource,
910} ;
1011
11- use crate :: crd:: { COOKIE_PASSPHRASE_ENV , security:: INTERNAL_INITIAL_CLIENT_PASSWORD_ENV , v1alpha1} ;
12+ use crate :: {
13+ controller:: validate:: ValidatedCluster ,
14+ crd:: { COOKIE_PASSPHRASE_ENV , security:: INTERNAL_INITIAL_CLIENT_PASSWORD_ENV } ,
15+ } ;
1216
1317#[ derive( Snafu , Debug ) ]
1418#[ allow( clippy:: enum_variant_names) ]
@@ -30,19 +34,14 @@ pub enum Error {
3034
3135 #[ snafu( display( "object defines no namespace" ) ) ]
3236 ObjectHasNoNamespace ,
33-
34- #[ snafu( display( "object is missing metadata to build owner reference" ) ) ]
35- ObjectMissingMetadataForOwnerRef {
36- source : stackable_operator:: builder:: meta:: Error ,
37- } ,
3837}
3938
4039pub async fn create_shared_internal_secret (
41- druid : & v1alpha1 :: DruidCluster ,
40+ cluster : & ValidatedCluster ,
4241 client : & Client ,
4342 controller_name : & str ,
4443) -> Result < ( ) , Error > {
45- let secret = build_shared_internal_secret ( druid ) ? ;
44+ let secret = build_shared_internal_secret ( cluster ) ;
4645 let existing_secret = client
4746 . get_opt :: < Secret > (
4847 & secret. name_any ( ) ,
@@ -55,7 +54,7 @@ pub async fn create_shared_internal_secret(
5554 . context ( FailedToRetrieveInternalSecretSnafu ) ?;
5655 let existing_immutable_secret = client
5756 . get_opt :: < Secret > (
58- & build_immutable_shared_internal_secret_name ( druid ) ,
57+ & build_immutable_shared_internal_secret_name ( cluster ) ,
5958 secret
6059 . namespace ( )
6160 . as_deref ( )
@@ -142,28 +141,27 @@ pub async fn create_shared_internal_secret(
142141 Ok ( ( ) )
143142}
144143
145- fn build_shared_internal_secret ( druid : & v1alpha1 :: DruidCluster ) -> Result < Secret , Error > {
144+ fn build_shared_internal_secret ( cluster : & ValidatedCluster ) -> Secret {
146145 let mut internal_secret = BTreeMap :: new ( ) ;
147146 internal_secret. insert (
148147 INTERNAL_INITIAL_CLIENT_PASSWORD_ENV . to_string ( ) ,
149148 get_random_base64 ( ) ,
150149 ) ;
151150 internal_secret. insert ( COOKIE_PASSPHRASE_ENV . to_string ( ) , get_random_base64 ( ) ) ;
152151
153- Ok ( Secret {
152+ Secret {
154153 metadata : ObjectMetaBuilder :: new ( )
155- . name ( build_shared_internal_secret_name ( druid) )
156- . namespace_opt ( druid. namespace ( ) )
157- . ownerreference_from_resource ( druid, None , Some ( true ) )
158- . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
154+ . name ( build_shared_internal_secret_name ( cluster) )
155+ . namespace_opt ( cluster. namespace ( ) )
156+ . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
159157 . build ( ) ,
160158 string_data : Some ( internal_secret) ,
161159 ..Secret :: default ( )
162- } )
160+ }
163161}
164162
165- fn build_immutable_shared_internal_secret_name ( druid : & v1alpha1 :: DruidCluster ) -> String {
166- format ! ( "{}-internal-secret" , druid . name_any( ) )
163+ fn build_immutable_shared_internal_secret_name ( cluster : & ValidatedCluster ) -> String {
164+ format ! ( "{}-internal-secret" , cluster . name_any( ) )
167165}
168166
169167pub fn build_shared_internal_secret_name < T : ResourceExt > ( owner : & T ) -> String {
0 commit comments