@@ -13,11 +13,9 @@ import (
1313 corev1 "k8s.io/api/core/v1"
1414 "k8s.io/apimachinery/pkg/api/resource"
1515 "k8s.io/apimachinery/pkg/util/rand"
16- "k8s.io/apimachinery/pkg/util/sets"
1716
1817 "github.com/crunchydata/postgres-operator/internal/initialize"
1918 "github.com/crunchydata/postgres-operator/internal/naming"
20- "github.com/crunchydata/postgres-operator/pkg/apis/postgres-operator.crunchydata.com/v1beta1"
2119)
2220
2321var tmpDirSizeLimit = resource .MustParse ("16Mi" )
@@ -287,81 +285,3 @@ func safeHash32(content func(w io.Writer) error) (string, error) {
287285 }
288286 return rand .SafeEncodeString (fmt .Sprint (hash .Sum32 ())), nil
289287}
290-
291- // AdditionalVolumeMount returns the name and mount path of the additional volume.
292- func AdditionalVolumeMount (name string , readOnly bool ) corev1.VolumeMount {
293- return corev1.VolumeMount {
294- Name : fmt .Sprintf ("volumes-%s" , name ),
295- MountPath : "/volumes/" + name ,
296- ReadOnly : readOnly ,
297- }
298- }
299-
300- // AddAdditionalVolumesToSpecifiedContainers adds additional volumes to the specified
301- // containers in the specified pod
302- // AddAdditionalVolumesToSpecifiedContainers adds the volumes to the pod
303- // as `volumes-<additionalVolumeRequest.Name>`
304- // and adds the directory to the path `/volumes/<additionalVolumeRequest.Name>`
305- func AddAdditionalVolumesToSpecifiedContainers (template * corev1.PodTemplateSpec ,
306- additionalVolumes []v1beta1.AdditionalVolume ) []string {
307-
308- missingContainers := []string {}
309- for _ , additionalVolumeRequest := range additionalVolumes {
310-
311- additionalVolumeMount := AdditionalVolumeMount (
312- additionalVolumeRequest .Name ,
313- additionalVolumeRequest .ReadOnly ,
314- )
315-
316- additionalVolume := corev1.Volume {
317- Name : additionalVolumeMount .Name ,
318- VolumeSource : corev1.VolumeSource {
319- PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
320- ClaimName : additionalVolumeRequest .ClaimName ,
321- ReadOnly : additionalVolumeMount .ReadOnly ,
322- },
323- },
324- }
325-
326- // Create a set of all the requested containers,
327- // then in the loops below when we attach the volume to a container,
328- // we can safely remove that container name from the set.
329- // This gives us a way to track the containers that are requested but not found.
330- // This relies on `containers` and `initContainers` together being unique.
331- // - https://github.com/kubernetes/api/blob/b40c1cacbb902b21a7e0c7bf0967321860c1a632/core/v1/types.go#L3895C27-L3896C33
332- names := sets .New (additionalVolumeRequest .Containers ... )
333- allContainers := false
334- // If the containers list is omitted, we add the volume to all containers
335- if additionalVolumeRequest .Containers == nil {
336- allContainers = true
337- }
338-
339- for i := range template .Spec .Containers {
340- if allContainers || names .Has (template .Spec .Containers [i ].Name ) {
341- template .Spec .Containers [i ].VolumeMounts = append (
342- template .Spec .Containers [i ].VolumeMounts ,
343- additionalVolumeMount )
344-
345- names .Delete (template .Spec .Containers [i ].Name )
346- }
347- }
348-
349- for i := range template .Spec .InitContainers {
350- if allContainers || names .Has (template .Spec .InitContainers [i ].Name ) {
351- template .Spec .InitContainers [i ].VolumeMounts = append (
352- template .Spec .InitContainers [i ].VolumeMounts ,
353- additionalVolumeMount )
354-
355- names .Delete (template .Spec .InitContainers [i ].Name )
356-
357- }
358- }
359-
360- missingContainers = append (missingContainers , names .UnsortedList ()... )
361-
362- template .Spec .Volumes = append (
363- template .Spec .Volumes ,
364- additionalVolume )
365- }
366- return missingContainers
367- }
0 commit comments