kubeadm: added HTTPS discovery.

Fixes kubernetes/kubeadm#94
This commit is contained in:
Paulo Pires 2017-01-06 12:08:34 +00:00
parent 18370ba0c1
commit a519335303
No known key found for this signature in database
GPG Key ID: F3F6ED5C522EAA71
2 changed files with 21 additions and 0 deletions

View File

@ -20,6 +20,7 @@ go_library(
"//cmd/kubeadm/app/discovery/file:go_default_library",
"//cmd/kubeadm/app/discovery/https:go_default_library",
"//cmd/kubeadm/app/discovery/token:go_default_library",
"//pkg/client/unversioned/clientcmd:go_default_library",
"//pkg/client/unversioned/clientcmd/api:go_default_library",
"//vendor:github.com/spf13/pflag",
],

View File

@ -18,8 +18,11 @@ package discovery
import (
"fmt"
"io/ioutil"
"net/http"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
)
@ -28,6 +31,8 @@ func For(d kubeadmapi.Discovery) (*clientcmdapi.Config, error) {
switch {
case d.File != nil:
return runFileDiscovery(d.File)
case d.HTTPS != nil:
return runHTTPSDiscovery(d.HTTPS)
default:
return nil, fmt.Errorf("Couldn't find a valid discovery configuration. Please provide one.")
}
@ -37,5 +42,20 @@ func For(d kubeadmapi.Discovery) (*clientcmdapi.Config, error) {
func runFileDiscovery(fd *kubeadmapi.FileDiscovery) (*clientcmdapi.Config, error) {
return clientcmd.LoadFromFile(fd.Path)
}
// runHTTPSDiscovery executes HTTPS-based discovery.
func runHTTPSDiscovery(hd *kubeadmapi.HTTPSDiscovery) (*clientcmdapi.Config, error) {
response, err := http.Get(hd.URL)
if err != nil {
return nil, err
}
defer response.Body.Close()
kubeconfig, err := ioutil.ReadAll(response.Body)
if err != nil {
return nil, err
}
return clientcmd.Load(kubeconfig)
}
}