func RepoVolumeSourceAndMount()

in controllers/util/solr_backup_repo_util.go [68:108]


func RepoVolumeSourceAndMount(repo *solrv1beta1.SolrBackupRepository, solrCloudName string) (source *corev1.VolumeSource, mount *corev1.VolumeMount) {
	f := false
	if repo.Volume != nil {
		source = &repo.Volume.Source
		mount = &corev1.VolumeMount{
			MountPath: VolumeRepoVolumeMountPath(repo),
			SubPath:   BackupRestoreSubPathForCloud(repo.Volume.Directory, solrCloudName),
			ReadOnly:  false,
		}
	} else if repo.GCS != nil && repo.GCS.GcsCredentialSecret != nil {
		source = &corev1.VolumeSource{
			Secret: &corev1.SecretVolumeSource{
				SecretName:  repo.GCS.GcsCredentialSecret.Name,
				Items:       []corev1.KeyToPath{{Key: repo.GCS.GcsCredentialSecret.Key, Path: GCSCredentialSecretKey}},
				DefaultMode: &SecretReadOnlyPermissions,
				Optional:    &f,
			},
		}
		mount = &corev1.VolumeMount{
			MountPath: GcsRepoSecretMountPath(repo),
			ReadOnly:  true,
		}
	} else if repo.S3 != nil && repo.S3.Credentials != nil && repo.S3.Credentials.CredentialsFileSecret != nil {
		source = &corev1.VolumeSource{
			Secret: &corev1.SecretVolumeSource{
				SecretName:  repo.S3.Credentials.CredentialsFileSecret.Name,
				Items:       []corev1.KeyToPath{{Key: repo.S3.Credentials.CredentialsFileSecret.Key, Path: S3CredentialFileName}},
				DefaultMode: &SecretReadOnlyPermissions,
				Optional:    &f,
			},
		}
		mount = &corev1.VolumeMount{
			MountPath: S3RepoSecretMountPath(repo),
			ReadOnly:  true,
		}
	}
	if mount != nil {
		mount.Name = RepoVolumeName(repo)
	}
	return
}