From de9a5f43bc66a8cf695e69bdd436acde4078a665 Mon Sep 17 00:00:00 2001 From: CJ Cullen Date: Fri, 29 May 2015 14:29:17 -0700 Subject: [PATCH] Specify sshUser, sshKeyfile in kube-apiserver manifest. Trim space on ssh key so GCE doesn't treat it as 2 lines. A couple other minor fixes. --- .../saltbase/salt/kube-apiserver/kube-apiserver.manifest | 2 +- pkg/cloudprovider/gce/gce.go | 2 ++ pkg/master/master.go | 6 +++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest b/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest index 479c6a10b4c..fe7ffb2c3d7 100644 --- a/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest +++ b/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest @@ -81,7 +81,7 @@ {% endif -%} {% set params = address + " " + etcd_servers + " " + cloud_provider + " " + cloud_config + " " + runtime_config + " " + admission_control + " " + service_cluster_ip_range + " " + client_ca_file + " " + basic_auth_file + " " + min_request_timeout -%} -{% set params = params + " " + cluster_name + " " + cert_file + " " + key_file + " --secure_port=" + secure_port + " " + token_auth_file + " " + bind_address + " " + pillar['log_level'] + " " + advertise_address -%} +{% set params = params + " " + cluster_name + " " + cert_file + " " + key_file + " --secure_port=" + secure_port + " " + token_auth_file + " " + bind_address + " " + pillar['log_level'] + " " + advertise_address + " --ssh-user=root --ssh-keyfile=/.sshkeyfile"-%} { "apiVersion": "v1beta3", diff --git a/pkg/cloudprovider/gce/gce.go b/pkg/cloudprovider/gce/gce.go index 7e9ae02f24e..4f951406402 100644 --- a/pkg/cloudprovider/gce/gce.go +++ b/pkg/cloudprovider/gce/gce.go @@ -17,6 +17,7 @@ limitations under the License. package gce_cloud import ( + "bytes" "fmt" "io" "io/ioutil" @@ -484,6 +485,7 @@ func (gce *GCECloud) AddSSHKeyToAllInstances(user string, keyData []byte) error if err != nil { return err } + keyData = bytes.TrimSpace(keyData) found := false for _, item := range project.CommonInstanceMetadata.Items { if item.Key == "sshKeys" { diff --git a/pkg/master/master.go b/pkg/master/master.go index a36b620634a..9619255defa 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -340,6 +340,8 @@ func New(c *Config) *Master { serviceReadWriteIP: serviceReadWriteIP, // TODO: serviceReadWritePort should be passed in as an argument, it may not always be 443 serviceReadWritePort: 443, + + installSSHKey: c.InstallSSHKey, } var handlerContainer *restful.Container @@ -827,7 +829,9 @@ func (m *Master) generateSSHKey(user, keyfile string) error { if err != nil { return err } - ioutil.WriteFile(keyfile, util.EncodePrivateKey(private), 0600) + if err := ioutil.WriteFile(keyfile, util.EncodePrivateKey(private), 0600); err != nil { + return err + } data, err := util.EncodeSSHKey(public) if err != nil { return err