diff --git a/cluster-autoscaler/Makefile b/cluster-autoscaler/Makefile index 672945a9b54d7698e2f82e546fa411472c95416c..8e77a3a0fc3beb7752ae391d893489a33ce04f6e 100644 --- a/cluster-autoscaler/Makefile +++ b/cluster-autoscaler/Makefile @@ -9,6 +9,7 @@ GOOS?=linux GOARCH?=$(shell go env GOARCH) REGISTRY?=staging-k8s.gcr.io DOCKER_NETWORK?=default +SUPPORTED_BUILD_TAGS=$(shell ls cloudprovider/builder/ | grep -e '^builder_.*\.go' | sed 's/builder_\(.*\)\.go/\1/') ifdef BUILD_TAGS TAGS_FLAG=--tags ${BUILD_TAGS} PROVIDER=-${BUILD_TAGS} @@ -42,6 +43,16 @@ build: build-arch-%: clean-arch-% $(ENVVAR) GOOS=$(GOOS) GOARCH=$* go build -o cluster-autoscaler-$* ${LDFLAGS_FLAG} ${TAGS_FLAG} +test-build-tags: + @if [ -z "$(SUPPORTED_BUILD_TAGS)" ]; then \ + echo "No supported build tags found"; \ + exit 1; \ + fi + @for tag in $(SUPPORTED_BUILD_TAGS); do \ + echo "Testing build with tag $$tag"; \ + BUILD_TAGS=$$tag $(MAKE) build || exit 1; \ + done + test-unit: clean build go test --test.short -race ./... ${TAGS_FLAG} diff --git a/cluster-autoscaler/cloudprovider/builder/builder_all.go b/cluster-autoscaler/cloudprovider/builder/builder_all.go index 83db9b2f24f0df0867859769ddc02f886ec0c321..91252196a99f7b25839eb6589a09b9a4cb06fc97 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_all.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_all.go @@ -1,5 +1,5 @@ -//go:build !gce && !aws && !azure && !kubemark && !alicloud && !magnum && !digitalocean && !clusterapi && !huaweicloud && !ionoscloud && !linode && !hetzner && !bizflycloud && !brightbox && !equinixmetal && !oci && !vultr && !tencentcloud && !scaleway && !externalgrpc && !civo && !rancher && !volcengine && !baiducloud && !cherry && !cloudstack && !exoscale && !kamatera && !ovhcloud -// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean,!clusterapi,!huaweicloud,!ionoscloud,!linode,!hetzner,!bizflycloud,!brightbox,!equinixmetal,!oci,!vultr,!tencentcloud,!scaleway,!externalgrpc,!civo,!rancher,!volcengine,!baiducloud,!cherry,!cloudstack,!exoscale,!kamatera,!ovhcloud +//go:build !gce && !aws && !azure && !kubemark && !alicloud && !magnum && !digitalocean && !clusterapi && !huaweicloud && !ionoscloud && !linode && !hetzner && !bizflycloud && !brightbox && !equinixmetal && !oci && !vultr && !tencentcloud && !scaleway && !externalgrpc && !civo && !rancher && !volcengine && !baiducloud && !cherry && !cloudstack && !exoscale && !kamatera && !ovhcloud && !kwok +// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean,!clusterapi,!huaweicloud,!ionoscloud,!linode,!hetzner,!bizflycloud,!brightbox,!equinixmetal,!oci,!vultr,!tencentcloud,!scaleway,!externalgrpc,!civo,!rancher,!volcengine,!baiducloud,!cherry,!cloudstack,!exoscale,!kamatera,!ovhcloud,!kwok /* Copyright 2018 The Kubernetes Authors. diff --git a/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go b/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go index 35797f766ad32f1ce880c1ce6aca9602c01b1378..b8388ba7e4de7c2ba3c2434fe8767be6c4ee3282 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_bizflycloud.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.BizflyCloudProviderName, } -// DefaultCloudProvider build is Bizflycloud.. +// DefaultCloudProvider for Bizflycloud-only build is Bizflycloud. const DefaultCloudProvider = cloudprovider.BizflyCloudProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go b/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go index ba1936d9f45423e123959a125b38f16fa09619a9..4b321a252ad4296d8bbab3dffaf685fd62de10df 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_brightbox.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.BrightboxProviderName, } -// DefaultCloudProvider is Brightbox +// DefaultCloudProvider for Brightbox-only build is Brightbox. const DefaultCloudProvider = cloudprovider.BrightboxProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_cherry.go b/cluster-autoscaler/cloudprovider/builder/builder_cherry.go index 7b5de93f3d082ab3916fa9c47282cd52e5901b87..455be264c5184a3935ceec1dbe911f6f739fa9c0 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_cherry.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_cherry.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cherry.ProviderName, } -// DefaultCloudProvider for Cherry-only build is Cherry +// DefaultCloudProvider for Cherry-only build is Cherry. const DefaultCloudProvider = cherry.ProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_civo.go b/cluster-autoscaler/cloudprovider/builder/builder_civo.go index e51e86f63b833562c0cad307910919bb7ddf0f58..f63ddb99404004c924621eeef16a98be9ffea265 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_civo.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_civo.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.CivoProviderName, } -// DefaultCloudProvider for civo-only build is Civo. +// DefaultCloudProvider for Civo-only build is Civo. const DefaultCloudProvider = cloudprovider.CivoProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go b/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go index 5151b9954c3b4a8724185122eb20397392675a5e..eb32c4c83d7ca7bc3f7b7482da42497141fc2629 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_cloudstack.go @@ -34,7 +34,7 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for cloudstack-only build is cloudstack. const DefaultCloudProvider = cloudprovider.CloudStackProviderName -func BuildCloudStack(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { +func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.CloudStackProviderName: return cloudstack.BuildCloudStack(opts, do, rl) diff --git a/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go b/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go index 7c3d615e6841aede933f8993ab59131c04d45dc6..ca3b1947cd5d57739135509317907fd0d5890422 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_clusterapi.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.ClusterAPIProviderName, } -// DefaultCloudProvider for machineapi-only build. +// DefaultCloudProvider for Cluster API-only build is Cluster API. const DefaultCloudProvider = cloudprovider.ClusterAPIProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go b/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go index 46988780349cef19ec3c6aee023dc3907d293af2..c7d9ba5a61f9ccba3fe93c2d5905b93b537ff01d 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_digitalocean.go @@ -26,12 +26,12 @@ import ( "k8s.io/client-go/informers" ) -// AvailableCloudProviders supported by the digtalocean cloud provider builder. +// AvailableCloudProviders supported by the DigitalOcean cloud provider builder. var AvailableCloudProviders = []string{ cloudprovider.DigitalOceanProviderName, } -// DefaultCloudProvider for do-only build is DigitalOcean. +// DefaultCloudProvider for DigitalOcean-only build is DigitalOcean. const DefaultCloudProvider = cloudprovider.DigitalOceanProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_packet.go b/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go similarity index 94% rename from cluster-autoscaler/cloudprovider/builder/builder_packet.go rename to cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go index 5fc36299e8c572f397393ca5f2160aa32f11c0cf..e0c9b633e947be901cb97f1975f2b821f331c4c3 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_packet.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_equinixmetal.go @@ -32,7 +32,7 @@ var AvailableCloudProviders = []string{ cloudprovider.EquinixMetalProviderName, } -// DefaultCloudProvider for Packet-only build is Packet. +// DefaultCloudProvider for Packet or Equinix Metal-only build is Equinix Metal. const DefaultCloudProvider = cloudprovider.EquinixMetalProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go b/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go index f6b078f8f49aecccfa3bf1cf11e59c53616eae56..f2b22090691c40f215ca659417659b157df912cd 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_exoscale.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.ExoscaleProviderName, } -// DefaultCloudProvider is Exoscale. +// DefaultCloudProvider for Exoscale-only build is Exoscale. const DefaultCloudProvider = cloudprovider.ExoscaleProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_gce.go b/cluster-autoscaler/cloudprovider/builder/builder_gce.go index 504eb3e8cf4c232bb304cc8d637ddc0419e05c61..fc9dea05dde913616d72afcbc2b669bdf83e1dc9 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_gce.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_gce.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.GceProviderName, } -// DefaultCloudProvider is GCE. +// DefaultCloudProvider for GCE-only build is GCE. const DefaultCloudProvider = cloudprovider.GceProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go b/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go index 28c5931cf631acac80d412333177fb855a1ebb0a..9ffdd85ae328b5ff0de0b0187855aca29153990c 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_hetzner.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.HetznerProviderName, } -// DefaultCloudProvider is Hetzner. +// DefaultCloudProvider for Hetzner-only build is Hetzner. const DefaultCloudProvider = cloudprovider.HetznerProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go b/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go index a75817d2016e8636be23356e21b3542d7e22d78b..4fc73d53f34188a1e1c874df4b25bb6b71aa71b5 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_ionoscloud.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.IonoscloudProviderName, } -// DefaultCloudProvider for IonosCloud-only build is ionoscloud. +// DefaultCloudProvider for IonosCloud-only build is IonosCloud. const DefaultCloudProvider = cloudprovider.IonoscloudProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go b/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go index ca0f2ae92c722b8cb962eec818be693f2d8c08d2..34e85c417fac3818d8381c9a662aa77625927c4e 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_kamatera.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.KamateraProviderName, } -// DefaultCloudProvider is Kamatera. +// DefaultCloudProvider for Kamatera-only build is Kamatera. const DefaultCloudProvider = cloudprovider.KamateraProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_magnum.go b/cluster-autoscaler/cloudprovider/builder/builder_magnum.go index a79aaa19bdd23658bb6efcdd5c073346b352fd31..ea14fd9803f8dd1faa96cfdcb0679fe34865c817 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_magnum.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_magnum.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.MagnumProviderName, } -// DefaultCloudProvider for OpenStack-only build is OpenStack. +// DefaultCloudProvider for Magnum-only build is Magnum. const DefaultCloudProvider = cloudprovider.MagnumProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go b/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go index 8198a32881622fd3a82c5ca7901c2b3d7b136df8..6e081209b68d6694f68cba2a82437b87bb875dad 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_ovhcloud.go @@ -21,6 +21,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/ovhcloud" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/client-go/informers" ) @@ -30,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.OVHcloudProviderName, } -// DefaultCloudProvider is OVHcloud. +// DefaultCloudProvider for OVHcloud-only build is OVHcloud. const DefaultCloudProvider = cloudprovider.OVHcloudProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go b/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go index e52f78ccbf2e37bcc5d993e6c5ef2c04010f59b2..36ca6b314973e6e579971dc44cfa16babd8ef915 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_scaleway.go @@ -31,7 +31,7 @@ var AvailableCloudProviders = []string{ cloudprovider.ScalewayProviderName, } -// DefaultCloudProvider for do-only build is Scaleway. +// DefaultCloudProvider for Scaleway-only build is Scaleway. const DefaultCloudProvider = cloudprovider.ScalewayProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go b/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go index 3d190e270e6082d30bbf58ef45a6d3efc412e518..6b1e96684890f79b63564d15f629b81d783f2108 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_tencentcloud.go @@ -31,8 +31,8 @@ var AvailableCloudProviders = []string{ cloudprovider.TencentcloudProviderName, } -// DefaultCloudProvider is TKE. -const DefaultCloudProvider = cloudprovider.TkeProviderName +// DefaultCloudProvider for Tencent-only build is Tencent. +const DefaultCloudProvider = cloudprovider.TencentcloudProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { diff --git a/cluster-autoscaler/cloudprovider/builder/builder_vultr.go b/cluster-autoscaler/cloudprovider/builder/builder_vultr.go index da98eb363c0e30912d4a08a569f202126f65e7e8..ca3f89fc2e4d9e5b175d5797fc88dd56682488b8 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_vultr.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_vultr.go @@ -21,6 +21,7 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/vultr" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/client-go/informers" ) @@ -30,13 +31,13 @@ var AvailableCloudProviders = []string{ cloudprovider.VultrProviderName, } -// DefaultCloudProvider for linode-only build is linode. +// DefaultCloudProvider for vultr-only build is vultr. const DefaultCloudProvider = cloudprovider.VultrProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.VultrProviderName: - return vultr.BuildLinode(opts, do, rl) + return vultr.BuildVultr(opts, do, rl) } return nil