protokube: Simplify CloudProvider initialization

This commit is contained in:
Ciprian Hacman 2025-07-21 19:01:35 +03:00
parent ae52927a36
commit 9533de8546
1 changed files with 22 additions and 59 deletions

View File

@ -112,69 +112,32 @@ func run() error {
if gossip {
var cloudProvider protokube.CloudProvider
if cloud == "aws" {
awsCloudProvider, err := protokube.NewAWSCloudProvider()
if err != nil {
klog.Errorf("Error initializing AWS: %q", err)
os.Exit(1)
}
cloudProvider = awsCloudProvider
} else if cloud == "digitalocean" {
doCloudProvider, err := protokube.NewDOCloudProvider()
if err != nil {
klog.Errorf("Error initializing DigitalOcean: %q", err)
os.Exit(1)
}
cloudProvider = doCloudProvider
} else if cloud == "hetzner" {
hetznerCloudProvider, err := protokube.NewHetznerCloudProvider()
if err != nil {
klog.Errorf("error initializing Hetzner Cloud: %q", err)
os.Exit(1)
}
cloudProvider = hetznerCloudProvider
} else if cloud == "gce" {
gceCloudProvider, err := protokube.NewGCECloudProvider()
if err != nil {
klog.Errorf("Error initializing GCE: %q", err)
os.Exit(1)
}
cloudProvider = gceCloudProvider
} else if cloud == "openstack" {
osCloudProvider, err := protokube.NewOpenStackCloudProvider()
if err != nil {
klog.Errorf("Error initializing OpenStack: %q", err)
os.Exit(1)
}
cloudProvider = osCloudProvider
} else if cloud == "azure" {
azureVolumes, err := protokube.NewAzureCloudProvider()
if err != nil {
klog.Errorf("Error initializing Azure: %q", err)
os.Exit(1)
}
cloudProvider = azureVolumes
} else if cloud == "scaleway" {
scwCloudProvider, err := protokube.NewScwCloudProvider()
if err != nil {
klog.Errorf("Error initializing Scaleway: %q", err)
os.Exit(1)
}
cloudProvider = scwCloudProvider
} else if cloud == "metal" {
var err error
switch cloud {
case "aws":
cloudProvider, err = protokube.NewAWSCloudProvider()
case "digitalocean":
cloudProvider, err = protokube.NewDOCloudProvider()
case "hetzner":
cloudProvider, err = protokube.NewHetznerCloudProvider()
case "gce":
cloudProvider, err = protokube.NewGCECloudProvider()
case "openstack":
cloudProvider, err = protokube.NewOpenStackCloudProvider()
case "azure":
cloudProvider, err = protokube.NewAzureCloudProvider()
case "scaleway":
cloudProvider, err = protokube.NewScwCloudProvider()
case "metal":
cloudProvider = nil
} else {
default:
klog.Errorf("Unknown cloud %q", cloud)
os.Exit(1)
}
if err != nil {
klog.Errorf("Error initializing cloud %q: %s", cloud, err)
os.Exit(1)
}
if cloudProvider == nil {
return fmt.Errorf("gossip not supported with cloudprovider %q", cloud)