Skip to content

Commit 9533de8

Browse files
committed
protokube: Simplify CloudProvider initialization
1 parent ae52927 commit 9533de8

File tree

1 file changed

+22
-59
lines changed

1 file changed

+22
-59
lines changed

protokube/cmd/protokube/main.go

Lines changed: 22 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -112,69 +112,32 @@ func run() error {
112112

113113
if gossip {
114114
var cloudProvider protokube.CloudProvider
115-
if cloud == "aws" {
116-
awsCloudProvider, err := protokube.NewAWSCloudProvider()
117-
if err != nil {
118-
klog.Errorf("Error initializing AWS: %q", err)
119-
os.Exit(1)
120-
}
121-
cloudProvider = awsCloudProvider
122-
123-
} else if cloud == "digitalocean" {
124-
doCloudProvider, err := protokube.NewDOCloudProvider()
125-
if err != nil {
126-
klog.Errorf("Error initializing DigitalOcean: %q", err)
127-
os.Exit(1)
128-
}
129-
cloudProvider = doCloudProvider
130-
131-
} else if cloud == "hetzner" {
132-
hetznerCloudProvider, err := protokube.NewHetznerCloudProvider()
133-
if err != nil {
134-
klog.Errorf("error initializing Hetzner Cloud: %q", err)
135-
os.Exit(1)
136-
}
137-
cloudProvider = hetznerCloudProvider
138-
139-
} else if cloud == "gce" {
140-
gceCloudProvider, err := protokube.NewGCECloudProvider()
141-
if err != nil {
142-
klog.Errorf("Error initializing GCE: %q", err)
143-
os.Exit(1)
144-
}
145-
146-
cloudProvider = gceCloudProvider
147-
148-
} else if cloud == "openstack" {
149-
osCloudProvider, err := protokube.NewOpenStackCloudProvider()
150-
if err != nil {
151-
klog.Errorf("Error initializing OpenStack: %q", err)
152-
os.Exit(1)
153-
}
154-
cloudProvider = osCloudProvider
155-
156-
} else if cloud == "azure" {
157-
azureVolumes, err := protokube.NewAzureCloudProvider()
158-
if err != nil {
159-
klog.Errorf("Error initializing Azure: %q", err)
160-
os.Exit(1)
161-
}
162-
cloudProvider = azureVolumes
163-
164-
} else if cloud == "scaleway" {
165-
scwCloudProvider, err := protokube.NewScwCloudProvider()
166-
if err != nil {
167-
klog.Errorf("Error initializing Scaleway: %q", err)
168-
os.Exit(1)
169-
}
170-
cloudProvider = scwCloudProvider
171-
172-
} else if cloud == "metal" {
115+
var err error
116+
switch cloud {
117+
case "aws":
118+
cloudProvider, err = protokube.NewAWSCloudProvider()
119+
case "digitalocean":
120+
cloudProvider, err = protokube.NewDOCloudProvider()
121+
case "hetzner":
122+
cloudProvider, err = protokube.NewHetznerCloudProvider()
123+
case "gce":
124+
cloudProvider, err = protokube.NewGCECloudProvider()
125+
case "openstack":
126+
cloudProvider, err = protokube.NewOpenStackCloudProvider()
127+
case "azure":
128+
cloudProvider, err = protokube.NewAzureCloudProvider()
129+
case "scaleway":
130+
cloudProvider, err = protokube.NewScwCloudProvider()
131+
case "metal":
173132
cloudProvider = nil
174-
} else {
133+
default:
175134
klog.Errorf("Unknown cloud %q", cloud)
176135
os.Exit(1)
177136
}
137+
if err != nil {
138+
klog.Errorf("Error initializing cloud %q: %s", cloud, err)
139+
os.Exit(1)
140+
}
178141

179142
if cloudProvider == nil {
180143
return fmt.Errorf("gossip not supported with cloudprovider %q", cloud)

0 commit comments

Comments
 (0)