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
}