mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #68753 from johnSchnake/68687-consistentSSHKeyHandling
Make SSH path handling consistent across providers during e2e
This commit is contained in:
commit
82cefcd99b
@ -3601,44 +3601,43 @@ func DeletePodOrFail(c clientset.Interface, ns, name string) {
|
|||||||
// GetSigner returns an ssh.Signer for the provider ("gce", etc.) that can be
|
// GetSigner returns an ssh.Signer for the provider ("gce", etc.) that can be
|
||||||
// used to SSH to their nodes.
|
// used to SSH to their nodes.
|
||||||
func GetSigner(provider string) (ssh.Signer, error) {
|
func GetSigner(provider string) (ssh.Signer, error) {
|
||||||
// Get the directory in which SSH keys are located.
|
|
||||||
keydir := filepath.Join(os.Getenv("HOME"), ".ssh")
|
|
||||||
|
|
||||||
// Select the key itself to use. When implementing more providers here,
|
// Select the key itself to use. When implementing more providers here,
|
||||||
// please also add them to any SSH tests that are disabled because of signer
|
// please also add them to any SSH tests that are disabled because of signer
|
||||||
// support.
|
// support.
|
||||||
keyfile := ""
|
keyfile := ""
|
||||||
key := ""
|
|
||||||
switch provider {
|
switch provider {
|
||||||
case "gce", "gke", "kubemark":
|
case "gce", "gke", "kubemark":
|
||||||
keyfile = "google_compute_engine"
|
keyfile = os.Getenv("GCE_SSH_KEY")
|
||||||
case "aws":
|
if keyfile == "" {
|
||||||
// If there is an env. variable override, use that.
|
keyfile = "google_compute_engine"
|
||||||
aws_keyfile := os.Getenv("AWS_SSH_KEY")
|
}
|
||||||
if len(aws_keyfile) != 0 {
|
case "aws":
|
||||||
return sshutil.MakePrivateKeySignerFromFile(aws_keyfile)
|
keyfile = os.Getenv("AWS_SSH_KEY")
|
||||||
|
if keyfile == "" {
|
||||||
|
keyfile = "kube_aws_rsa"
|
||||||
}
|
}
|
||||||
// Otherwise revert to home dir
|
|
||||||
keyfile = "kube_aws_rsa"
|
|
||||||
case "local", "vsphere":
|
case "local", "vsphere":
|
||||||
keyfile = os.Getenv("LOCAL_SSH_KEY") // maybe?
|
keyfile = os.Getenv("LOCAL_SSH_KEY")
|
||||||
if len(keyfile) == 0 {
|
if keyfile == "" {
|
||||||
keyfile = "id_rsa"
|
keyfile = "id_rsa"
|
||||||
}
|
}
|
||||||
case "skeleton":
|
case "skeleton":
|
||||||
keyfile = os.Getenv("KUBE_SSH_KEY")
|
keyfile = os.Getenv("KUBE_SSH_KEY")
|
||||||
if len(keyfile) == 0 {
|
if keyfile == "" {
|
||||||
keyfile = "id_rsa"
|
keyfile = "id_rsa"
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("GetSigner(...) not implemented for %s", provider)
|
return nil, fmt.Errorf("GetSigner(...) not implemented for %s", provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(key) == 0 {
|
// Respect absolute paths for keys given by user, fallback to assuming
|
||||||
key = filepath.Join(keydir, keyfile)
|
// relative paths are in ~/.ssh
|
||||||
|
if !filepath.IsAbs(keyfile) {
|
||||||
|
keydir := filepath.Join(os.Getenv("HOME"), ".ssh")
|
||||||
|
keyfile = filepath.Join(keydir, keyfile)
|
||||||
}
|
}
|
||||||
|
|
||||||
return sshutil.MakePrivateKeySignerFromFile(key)
|
return sshutil.MakePrivateKeySignerFromFile(keyfile)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckPodsRunningReady returns whether all pods whose names are listed in
|
// CheckPodsRunningReady returns whether all pods whose names are listed in
|
||||||
|
Loading…
Reference in New Issue
Block a user