@@ -128,6 +128,7 @@ func (r *Reconciler) getDeploymentObject(assetName string, esc *operatorv1alpha1
128128 case bitwardenDeploymentAssetName :
129129 deployment .Labels ["app.kubernetes.io/version" ] = os .Getenv (bitwardenImageVersionEnvVarName )
130130 updateBitwardenServerContainerSpec (deployment , bitwardenImage )
131+ updateBitwardenVolumeConfig (deployment , esc )
131132 }
132133
133134 if err := r .updateResourceRequirement (deployment , esc ); err != nil {
@@ -389,3 +390,36 @@ func updateBitwardenServerContainerSpec(deployment *appsv1.Deployment, image str
389390 }
390391 }
391392}
393+
394+ func updateBitwardenVolumeConfig (deployment * appsv1.Deployment , esc * operatorv1alpha1.ExternalSecretsConfig ) {
395+ if esc .Spec .Plugins .BitwardenSecretManagerProvider .SecretRef != nil &&
396+ esc .Spec .Plugins .BitwardenSecretManagerProvider .SecretRef .Name != "" {
397+ secretName := esc .Spec .Plugins .BitwardenSecretManagerProvider .SecretRef .Name
398+ updateSecretVolumeConfig (deployment , "bitwarden-tls-certs" , secretName )
399+ }
400+ }
401+
402+ func updateSecretVolumeConfig (deployment * appsv1.Deployment , volumeName , secretName string ) {
403+ volumeExists := false
404+ for i := range deployment .Spec .Template .Spec .Volumes {
405+ if deployment .Spec .Template .Spec .Volumes [i ].Name == volumeName {
406+ volumeExists = true
407+ }
408+ if deployment .Spec .Template .Spec .Volumes [i ].Secret == nil {
409+ deployment .Spec .Template .Spec .Volumes [i ].Secret = & corev1.SecretVolumeSource {}
410+ }
411+ deployment .Spec .Template .Spec .Volumes [i ].Secret .SecretName = secretName
412+ break
413+ }
414+
415+ if ! volumeExists {
416+ deployment .Spec .Template .Spec .Volumes = append (deployment .Spec .Template .Spec .Volumes , corev1.Volume {
417+ Name : volumeName ,
418+ VolumeSource : corev1.VolumeSource {
419+ Secret : & corev1.SecretVolumeSource {
420+ SecretName : secretName ,
421+ },
422+ },
423+ })
424+ }
425+ }
0 commit comments