From 98756203884763cdbedbecc7fb1cd4e943c6f037 Mon Sep 17 00:00:00 2001 From: wlan0 Date: Wed, 1 Mar 2017 09:43:46 -0800 Subject: [PATCH] add external cloudprovider to clerly denote the offloading off cloudprovider tasks --- cmd/kubelet/app/server.go | 2 +- pkg/cloudprovider/plugins.go | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 2d4a0c73123..15451e96c4f 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -420,7 +420,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.KubeletDeps) (err error) { var externalKubeClient clientgoclientset.Interface var cloud cloudprovider.Interface - if s.CloudProvider != componentconfigv1alpha1.AutoDetectCloudProvider { + if !cloudprovider.IsExternal(s.CloudProvider) && s.CloudProvider != componentconfigv1alpha1.AutoDetectCloudProvider { cloud, err = cloudprovider.InitCloudProvider(s.CloudProvider, s.CloudConfigFile) if err != nil { return err diff --git a/pkg/cloudprovider/plugins.go b/pkg/cloudprovider/plugins.go index c6083e0a859..0fc41f5eaf8 100644 --- a/pkg/cloudprovider/plugins.go +++ b/pkg/cloudprovider/plugins.go @@ -37,6 +37,8 @@ var ( providers = make(map[string]Factory) ) +const externalCloudProvider = "external" + // RegisterCloudProvider registers a cloudprovider.Factory by name. This // is expected to happen during app startup. func RegisterCloudProvider(name string, cloud Factory) { @@ -85,6 +87,11 @@ func GetCloudProvider(name string, config io.Reader) (Interface, error) { return f(config) } +// Detects if the string is an external cloud provider +func IsExternal(name string) bool { + return name == externalCloudProvider +} + // InitCloudProvider creates an instance of the named cloud provider. func InitCloudProvider(name string, configFilePath string) (Interface, error) { var cloud Interface @@ -95,6 +102,11 @@ func InitCloudProvider(name string, configFilePath string) (Interface, error) { return nil, nil } + if IsExternal(name) { + glog.Info("External cloud provider specified") + return nil, nil + } + if configFilePath != "" { var config *os.File config, err = os.Open(configFilePath)