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