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 { if gossip {
var cloudProvider protokube.CloudProvider var cloudProvider protokube.CloudProvider
if cloud == "aws" { var err error
awsCloudProvider, err := protokube.NewAWSCloudProvider() switch cloud {
if err != nil { case "aws":
klog.Errorf("Error initializing AWS: %q", err) cloudProvider, err = protokube.NewAWSCloudProvider()
os.Exit(1) case "digitalocean":
} cloudProvider, err = protokube.NewDOCloudProvider()
cloudProvider = awsCloudProvider case "hetzner":
cloudProvider, err = protokube.NewHetznerCloudProvider()
} else if cloud == "digitalocean" { case "gce":
doCloudProvider, err := protokube.NewDOCloudProvider() cloudProvider, err = protokube.NewGCECloudProvider()
if err != nil { case "openstack":
klog.Errorf("Error initializing DigitalOcean: %q", err) cloudProvider, err = protokube.NewOpenStackCloudProvider()
os.Exit(1) case "azure":
} cloudProvider, err = protokube.NewAzureCloudProvider()
cloudProvider = doCloudProvider case "scaleway":
cloudProvider, err = protokube.NewScwCloudProvider()
} else if cloud == "hetzner" { case "metal":
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" {
cloudProvider = nil cloudProvider = nil
} else { default:
klog.Errorf("Unknown cloud %q", cloud) klog.Errorf("Unknown cloud %q", cloud)
os.Exit(1) os.Exit(1)
} }
if err != nil {
klog.Errorf("Error initializing cloud %q: %s", cloud, err)
os.Exit(1)
}
if cloudProvider == nil { if cloudProvider == nil {
return fmt.Errorf("gossip not supported with cloudprovider %q", cloud) return fmt.Errorf("gossip not supported with cloudprovider %q", cloud)