kubeadm: added HTTPS discovery.

Fixes kubernetes/kubeadm#94
parent 18370ba0
...@@ -20,6 +20,7 @@ go_library( ...@@ -20,6 +20,7 @@ go_library(
"//cmd/kubeadm/app/discovery/file:go_default_library", "//cmd/kubeadm/app/discovery/file:go_default_library",
"//cmd/kubeadm/app/discovery/https:go_default_library", "//cmd/kubeadm/app/discovery/https:go_default_library",
"//cmd/kubeadm/app/discovery/token: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", "//pkg/client/unversioned/clientcmd/api:go_default_library",
"//vendor:github.com/spf13/pflag", "//vendor:github.com/spf13/pflag",
], ],
......
...@@ -18,8 +18,11 @@ package discovery ...@@ -18,8 +18,11 @@ package discovery
import ( import (
"fmt" "fmt"
"io/ioutil"
"net/http"
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" 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" clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
) )
...@@ -28,6 +31,8 @@ func For(d kubeadmapi.Discovery) (*clientcmdapi.Config, error) { ...@@ -28,6 +31,8 @@ func For(d kubeadmapi.Discovery) (*clientcmdapi.Config, error) {
switch { switch {
case d.File != nil: case d.File != nil:
return runFileDiscovery(d.File) return runFileDiscovery(d.File)
case d.HTTPS != nil:
return runHTTPSDiscovery(d.HTTPS)
default: default:
return nil, fmt.Errorf("Couldn't find a valid discovery configuration. Please provide one.") 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) { ...@@ -37,5 +42,20 @@ func For(d kubeadmapi.Discovery) (*clientcmdapi.Config, error) {
func runFileDiscovery(fd *kubeadmapi.FileDiscovery) (*clientcmdapi.Config, error) { func runFileDiscovery(fd *kubeadmapi.FileDiscovery) (*clientcmdapi.Config, error) {
return clientcmd.LoadFromFile(fd.Path) 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)
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment