Move building GCE inside gce module

This commit is contained in:
Aleksandra Malinowska 2018-10-15 15:49:59 +02:00
parent 4d74314c24
commit 439a3f3a80
2 changed files with 29 additions and 24 deletions

View File

@ -61,7 +61,7 @@ func NewCloudProvider(opts config.AutoscalingOptions) cloudprovider.CloudProvide
switch opts.CloudProviderName {
case gce.ProviderNameGCE:
return buildGCE(opts, do, rl)
return gce.BuildGCE(opts, do, rl)
case gke.ProviderNameGKE:
return gke.BuildGKE(opts, do, rl)
case aws.ProviderName:
@ -81,29 +81,6 @@ func NewCloudProvider(opts config.AutoscalingOptions) cloudprovider.CloudProvide
return nil // This will never happen because the Fatalf will os.Exit
}
func buildGCE(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
var config io.ReadCloser
if opts.CloudConfig != "" {
var err error
config, err = os.Open(opts.CloudConfig)
if err != nil {
glog.Fatalf("Couldn't open cloud provider configuration %s: %#v", opts.CloudConfig, err)
}
defer config.Close()
}
manager, err := gce.CreateGceManager(config, do, opts.Regional)
if err != nil {
glog.Fatalf("Failed to create GCE Manager: %v", err)
}
provider, err := gce.BuildGceCloudProvider(manager, rl)
if err != nil {
glog.Fatalf("Failed to create GCE cloud provider: %v", err)
}
return provider
}
func buildAWS(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
var config io.ReadCloser
if opts.CloudConfig != "" {

View File

@ -18,11 +18,15 @@ package gce
import (
"fmt"
"io"
"os"
"strings"
"github.com/golang/glog"
apiv1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
"k8s.io/autoscaler/cluster-autoscaler/config"
"k8s.io/autoscaler/cluster-autoscaler/utils/errors"
schedulercache "k8s.io/kubernetes/pkg/scheduler/cache"
)
@ -303,3 +307,27 @@ func (mig *gceMig) TemplateNodeInfo() (*schedulercache.NodeInfo, error) {
nodeInfo.SetNode(node)
return nodeInfo, nil
}
// BuildGCE builds GCE cloud provider, manager etc.
func BuildGCE(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
var config io.ReadCloser
if opts.CloudConfig != "" {
var err error
config, err = os.Open(opts.CloudConfig)
if err != nil {
glog.Fatalf("Couldn't open cloud provider configuration %s: %#v", opts.CloudConfig, err)
}
defer config.Close()
}
manager, err := CreateGceManager(config, do, opts.Regional)
if err != nil {
glog.Fatalf("Failed to create GCE Manager: %v", err)
}
provider, err := BuildGceCloudProvider(manager, rl)
if err != nil {
glog.Fatalf("Failed to create GCE cloud provider: %v", err)
}
return provider
}