From 9533de8546b47bcc8e98466e1025c3e3f91a8c0b Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Mon, 21 Jul 2025 19:01:35 +0300 Subject: [PATCH] protokube: Simplify CloudProvider initialization --- protokube/cmd/protokube/main.go | 81 +++++++++------------------------ 1 file changed, 22 insertions(+), 59 deletions(-) diff --git a/protokube/cmd/protokube/main.go b/protokube/cmd/protokube/main.go index 22e2eae1cd..b68c68ba9e 100644 --- a/protokube/cmd/protokube/main.go +++ b/protokube/cmd/protokube/main.go @@ -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)