in pkg/controllers/job/plugins/ssh/ssh.go [131:187]
func (sp *sshPlugin) mountRsaKey(pod *v1.Pod, job *batch.Job) {
secretName := sp.secretName(job)
sshVolume := v1.Volume{
Name: secretName,
}
var mode int32 = 0600
sshVolume.Secret = &v1.SecretVolumeSource{
SecretName: secretName,
Items: []v1.KeyToPath{
{
Key: SSHPrivateKey,
Path: SSHRelativePath + "/" + SSHPrivateKey,
},
{
Key: SSHPublicKey,
Path: SSHRelativePath + "/" + SSHPublicKey,
},
{
Key: SSHAuthorizedKeys,
Path: SSHRelativePath + "/" + SSHAuthorizedKeys,
},
{
Key: SSHConfig,
Path: SSHRelativePath + "/" + SSHConfig,
},
},
DefaultMode: &mode,
}
if sp.sshKeyFilePath != SSHAbsolutePath {
var noRootMode int32 = 0644
sshVolume.Secret.DefaultMode = &noRootMode
}
pod.Spec.Volumes = append(pod.Spec.Volumes, sshVolume)
for i, c := range pod.Spec.Containers {
vm := v1.VolumeMount{
MountPath: sp.sshKeyFilePath,
SubPath: SSHRelativePath,
Name: secretName,
}
pod.Spec.Containers[i].VolumeMounts = append(c.VolumeMounts, vm)
}
for i, c := range pod.Spec.InitContainers {
vm := v1.VolumeMount{
MountPath: sp.sshKeyFilePath,
SubPath: SSHRelativePath,
Name: secretName,
}
pod.Spec.InitContainers[i].VolumeMounts = append(c.VolumeMounts, vm)
}
}