github.com/percona/percona-xtradb-cluster-operator@v1.14.0/pkg/pxc/app/volumes.go (about)

     1  package app
     2  
     3  import (
     4  	corev1 "k8s.io/api/core/v1"
     5  
     6  	api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1"
     7  )
     8  
     9  func GetConfigVolumes(cvName, cmName string) corev1.Volume {
    10  	vol1 := corev1.Volume{
    11  		Name: cvName,
    12  	}
    13  
    14  	vol1.ConfigMap = &corev1.ConfigMapVolumeSource{}
    15  	vol1.ConfigMap.Name = cmName
    16  	t := true
    17  	vol1.ConfigMap.Optional = &t
    18  	return vol1
    19  }
    20  
    21  func GetSecretVolumes(cvName, cmName string, optional bool) corev1.Volume {
    22  	vol1 := corev1.Volume{
    23  		Name: cvName,
    24  	}
    25  
    26  	vol1.Secret = &corev1.SecretVolumeSource{}
    27  	vol1.Secret.SecretName = cmName
    28  	vol1.Secret.Optional = &optional
    29  	return vol1
    30  }
    31  
    32  func GetTmpVolume(cvName string) corev1.Volume {
    33  	return corev1.Volume{
    34  		Name: cvName,
    35  		VolumeSource: corev1.VolumeSource{
    36  			EmptyDir: &corev1.EmptyDirVolumeSource{},
    37  		},
    38  	}
    39  }
    40  
    41  func Volumes(podSpec *api.PodSpec, dataVolumeName string) *api.Volume {
    42  	var volume api.Volume
    43  
    44  	if podSpec.VolumeSpec != nil && podSpec.VolumeSpec.PersistentVolumeClaim != nil {
    45  		pvcs := PVCs(dataVolumeName, podSpec.VolumeSpec)
    46  		volume.PVCs = pvcs
    47  		return &volume
    48  	}
    49  
    50  	if podSpec.VolumeSpec == nil {
    51  		volume.Volumes = []corev1.Volume{}
    52  		return &volume
    53  	}
    54  
    55  	volume.Volumes = append(volume.Volumes, corev1.Volume{
    56  		VolumeSource: corev1.VolumeSource{
    57  			HostPath: podSpec.VolumeSpec.HostPath,
    58  			EmptyDir: podSpec.VolumeSpec.EmptyDir,
    59  		},
    60  		Name: dataVolumeName,
    61  	})
    62  
    63  	return &volume
    64  }