@@ -31,11 +31,9 @@ const (
3131 tlsKeyPath = "tls.key"
3232)
3333
34- var certVolumeMounts = map [string ]corev1.VolumeMount {
35- "webhook-cert" : {
36- Name : "webhook-cert" ,
37- MountPath : "/tmp/k8s-webhook-server/serving-certs" ,
38- },
34+ // volume mount name -> mount path
35+ var certVolumeMounts = map [string ]string {
36+ "webhook-cert" : "/tmp/k8s-webhook-server/serving-certs" ,
3937}
4038
4139// BundleCSVDeploymentGenerator generates all deployments defined in rv1's cluster service version (CSV). The generated
@@ -481,11 +479,20 @@ func getWebhookServicePort(wh v1alpha1.WebhookDescription) corev1.ServicePort {
481479}
482480
483481func addCertVolumesToDeployment (dep * appsv1.Deployment , certSecretInfo render.CertSecretInfo ) {
482+ volumeMountsToReplace := sets .New (slices .Collect (maps .Keys (certVolumeMounts ))... )
483+ certVolumeMountPaths := sets .New (slices .Collect (maps .Values (certVolumeMounts ))... )
484+ for _ , c := range dep .Spec .Template .Spec .Containers {
485+ for _ , containerVolumeMount := range c .VolumeMounts {
486+ if certVolumeMountPaths .Has (containerVolumeMount .MountPath ) {
487+ volumeMountsToReplace .Insert (containerVolumeMount .Name )
488+ }
489+ }
490+ }
491+
484492 // update pod volumes
485493 dep .Spec .Template .Spec .Volumes = slices .Concat (
486494 slices .DeleteFunc (dep .Spec .Template .Spec .Volumes , func (v corev1.Volume ) bool {
487- _ , ok := certVolumeMounts [v .Name ]
488- return ok
495+ return volumeMountsToReplace .Has (v .Name )
489496 }),
490497 []corev1.Volume {
491498 {
@@ -513,15 +520,18 @@ func addCertVolumesToDeployment(dep *appsv1.Deployment, certSecretInfo render.Ce
513520 for i := range dep .Spec .Template .Spec .Containers {
514521 dep .Spec .Template .Spec .Containers [i ].VolumeMounts = slices .Concat (
515522 slices .DeleteFunc (dep .Spec .Template .Spec .Containers [i ].VolumeMounts , func (v corev1.VolumeMount ) bool {
516- _ , ok := certVolumeMounts [v .Name ]
517- return ok
523+ return volumeMountsToReplace .Has (v .Name )
518524 }),
519- slices .SortedFunc (
520- maps .Values (certVolumeMounts ),
521- func (a corev1.VolumeMount , b corev1.VolumeMount ) int {
522- return cmp .Compare (a .Name , b .Name )
523- },
524- ),
525+ func () []corev1.VolumeMount {
526+ volumeMounts := make ([]corev1.VolumeMount , 0 , len (certVolumeMounts ))
527+ for _ , name := range slices .Sorted (maps .Keys (certVolumeMounts )) {
528+ volumeMounts = append (volumeMounts , corev1.VolumeMount {
529+ Name : name ,
530+ MountPath : certVolumeMounts [name ],
531+ })
532+ }
533+ return volumeMounts
534+ }(),
525535 )
526536 }
527537}
0 commit comments