@@ -19,6 +19,7 @@ package controllers
1919import (
2020 "context"
2121 "fmt"
22+ "slices"
2223 "strings"
2324 "time"
2425
@@ -317,14 +318,39 @@ func (r *BarbicanAPIReconciler) generateServiceConfigs(
317318 instance .Spec .DatabaseHostname ,
318319 barbican .DatabaseName ,
319320 ),
320- "KeystoneAuthURL" : keystoneInternalURL ,
321- "ServicePassword" : string (ospSecret .Data [instance .Spec .PasswordSelectors .Service ]),
322- "ServiceUser" : instance .Spec .ServiceUser ,
323- "ServiceURL" : "https://barbican.openstack.svc:9311" ,
324- "TransportURL" : string (transportURLSecret .Data ["transport_url" ]),
325- "LogFile" : fmt .Sprintf ("%s%s.log" , barbican .BarbicanLogPath , instance .Name ),
326- "SimpleCryptoKEK" : string (simpleCryptoSecret .Data [instance .Spec .PasswordSelectors .SimpleCryptoKEK ]),
327- "EnableSecureRBAC" : instance .Spec .EnableSecureRBAC ,
321+ "KeystoneAuthURL" : keystoneInternalURL ,
322+ "ServicePassword" : string (ospSecret .Data [instance .Spec .PasswordSelectors .Service ]),
323+ "ServiceUser" : instance .Spec .ServiceUser ,
324+ "ServiceURL" : "https://barbican.openstack.svc:9311" ,
325+ "TransportURL" : string (transportURLSecret .Data ["transport_url" ]),
326+ "LogFile" : fmt .Sprintf ("%s%s.log" , barbican .BarbicanLogPath , instance .Name ),
327+ "SimpleCryptoKEK" : string (simpleCryptoSecret .Data [instance .Spec .PasswordSelectors .SimpleCryptoKEK ]),
328+ "EnableSecureRBAC" : instance .Spec .EnableSecureRBAC ,
329+ "EnabledSecretStores" : strings .Join (instance .Spec .EnabledSecretStores , "," ),
330+ "GlobalDefaultSecretStore" : instance .Spec .GlobalDefaultSecretStore ,
331+ "SimpleCryptoEnabled" : slices .Contains (instance .Spec .EnabledSecretStores , "simple_crypto" ),
332+ "PKCS11CryptoEnabled" : slices .Contains (instance .Spec .EnabledSecretStores , "pkcs11_crypto" ),
333+ }
334+
335+ // Checking if there's an HSM.
336+ pkcs11 := instance .Spec .PKCS11
337+ if len (pkcs11 .HSMLibraryPath ) > 0 {
338+ hsmLoginSecret , _ , err := secret .GetSecret (ctx , h , pkcs11 .HSMLogin , instance .Namespace )
339+ if err != nil {
340+ return err
341+ }
342+ templateParameters ["HSMLibraryPath" ] = pkcs11 .HSMLibraryPath
343+ templateParameters ["HSMTokenSerialNumber" ] = pkcs11 .HSMTokenSerialNumber
344+ templateParameters ["HSMTokenLabel" ] = pkcs11 .HSMTokenLabel
345+ templateParameters ["HSMLogin" ] = string (hsmLoginSecret .Data ["hsmLogin" ])
346+ templateParameters ["HSMMKEKLabel" ] = pkcs11 .HSMMKEKLabel
347+ templateParameters ["HSMMKEKLength" ] = pkcs11 .HSMMKEKLength
348+ templateParameters ["HSMHMACLabel" ] = pkcs11 .HSMHMACLabel
349+ templateParameters ["HSMSlotId" ] = pkcs11 .HSMSlotId
350+ templateParameters ["HSMLoggingLevel" ] = pkcs11 .HSMLoggingLevel
351+ templateParameters ["HSMIPAddress" ] = pkcs11 .HSMIPAddress
352+ templateParameters ["HSMClientAddress" ] = pkcs11 .HSMClientAddress
353+ templateParameters ["HSMType" ] = pkcs11 .HSMType
328354 }
329355
330356 // Checking if there's an HSM.
0 commit comments