Skip to content

Commit 150bf34

Browse files
authored
Merge pull request kubernetes#1866 from frobware/clusterapi-cloudprovider
Add cluster-api based cloudprovider
2 parents 350e4a9 + 3955223 commit 150bf34

32 files changed

+5748
-39
lines changed

cluster-autoscaler/cloudprovider/builder/builder_all.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean
1+
// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean,!clusterapi
22

33
/*
44
Copyright 2018 The Kubernetes Authors.
@@ -24,6 +24,7 @@ import (
2424
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/aws"
2525
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/azure"
2626
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/baiducloud"
27+
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/clusterapi"
2728
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/digitalocean"
2829
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce"
2930
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/magnum"
@@ -40,6 +41,7 @@ var AvailableCloudProviders = []string{
4041
cloudprovider.BaiducloudProviderName,
4142
cloudprovider.MagnumProviderName,
4243
cloudprovider.DigitalOceanProviderName,
44+
clusterapi.ProviderName,
4345
}
4446

4547
// DefaultCloudProvider is GCE.
@@ -63,6 +65,8 @@ func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGro
6365
return magnum.BuildMagnum(opts, do, rl)
6466
case packet.ProviderName:
6567
return packet.BuildPacket(opts, do, rl)
68+
case clusterapi.ProviderName:
69+
return clusterapi.BuildClusterAPI(opts, do, rl)
6670
}
6771
return nil
6872
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// +build clusterapi
2+
3+
/*
4+
Copyright 2019 The Kubernetes Authors.
5+
6+
Licensed under the Apache License, Version 2.0 (the "License");
7+
you may not use this file except in compliance with the License.
8+
You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
*/
18+
19+
package builder
20+
21+
import (
22+
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
23+
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider/clusterapi"
24+
"k8s.io/autoscaler/cluster-autoscaler/config"
25+
)
26+
27+
// AvailableCloudProviders supported by the cloud provider builder.
28+
var AvailableCloudProviders = []string{
29+
clusterapi.ProviderName,
30+
}
31+
32+
// DefaultCloudProvider for machineapi-only build.
33+
const DefaultCloudProvider = clusterapi.ProviderName
34+
35+
func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider {
36+
switch opts.CloudProviderName {
37+
case clusterapi.ProviderName:
38+
return clusterapi.BuildClusterAPI(opts, do, rl)
39+
}
40+
41+
return nil
42+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
approvers:
2+
- frobware
3+
- enxebre
4+
- elmiko
5+
- hardikdr
6+
- detiber
7+
- ncdc
8+
reviewers:
9+
- frobware
10+
- enxebre
11+
- elmiko
12+
- hardikdr
13+
- detiber
14+
- ncdc

0 commit comments

Comments
 (0)