Merge pull request #17482 from hakman/fis-cloud-provider

Fix `--cloud-provider` flag for K8s 1.31+
This commit is contained in:
Kubernetes Prow Robot 2025-07-10 04:23:29 -07:00 committed by GitHub
commit 1fa7b705f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 52 additions and 49 deletions

View File

@ -98,28 +98,32 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(cluster *kops.Cluster) error
c.Image = image c.Image = image
if b.controlPlaneKubernetesVersion.IsLT("1.33") { if b.controlPlaneKubernetesVersion.IsLT("1.33") {
switch cluster.GetCloudProvider() { if b.controlPlaneKubernetesVersion.IsLT("1.31") {
case kops.CloudProviderAWS: switch cluster.GetCloudProvider() {
c.CloudProvider = "aws" case kops.CloudProviderAWS:
case kops.CloudProviderGCE: c.CloudProvider = "aws"
c.CloudProvider = "gce" case kops.CloudProviderGCE:
case kops.CloudProviderDO: c.CloudProvider = "gce"
c.CloudProvider = "external" case kops.CloudProviderDO:
case kops.CloudProviderHetzner: c.CloudProvider = "external"
c.CloudProvider = "external" case kops.CloudProviderHetzner:
case kops.CloudProviderOpenstack: c.CloudProvider = "external"
c.CloudProvider = "openstack" case kops.CloudProviderOpenstack:
case kops.CloudProviderAzure: c.CloudProvider = "openstack"
c.CloudProvider = "azure" case kops.CloudProviderAzure:
case kops.CloudProviderScaleway: c.CloudProvider = "azure"
c.CloudProvider = "external" case kops.CloudProviderScaleway:
case kops.CloudProviderMetal: c.CloudProvider = "external"
c.CloudProvider = "external" case kops.CloudProviderMetal:
default: c.CloudProvider = "external"
return fmt.Errorf("unknown cloudprovider %q", cluster.GetCloudProvider()) default:
} return fmt.Errorf("unknown cloudprovider %q", cluster.GetCloudProvider())
}
if clusterSpec.ExternalCloudControllerManager != nil { if clusterSpec.ExternalCloudControllerManager != nil {
c.CloudProvider = "external"
}
} else {
c.CloudProvider = "external" c.CloudProvider = "external"
} }
} }

View File

@ -120,21 +120,40 @@ func (b *KubeletOptionsBuilder) configureKubelet(cluster *kops.Cluster, kubelet
const kubeconfigPath = "/var/lib/kubelet/kubeconfig" const kubeconfigPath = "/var/lib/kubelet/kubeconfig"
kubelet.KubeconfigPath = kubeconfigPath kubelet.KubeconfigPath = kubeconfigPath
cloudProvider := cluster.GetCloudProvider()
kubelet.CgroupRoot = "/" kubelet.CgroupRoot = "/"
cloudProvider := cluster.GetCloudProvider()
klog.V(1).Infof("Cloud Provider: %s", cloudProvider) klog.V(1).Infof("Cloud Provider: %s", cloudProvider)
if cloudProvider == kops.CloudProviderAWS { if cloudProvider != kops.CloudProviderMetal {
kubelet.CloudProvider = "aws" if b.controlPlaneKubernetesVersion.IsLT("1.31") {
} switch cloudProvider {
case kops.CloudProviderAWS:
kubelet.CloudProvider = "aws"
case kops.CloudProviderGCE:
kubelet.CloudProvider = "gce"
case kops.CloudProviderDO:
kubelet.CloudProvider = "external"
case kops.CloudProviderHetzner:
kubelet.CloudProvider = "external"
case kops.CloudProviderOpenstack:
kubelet.CloudProvider = "openstack"
case kops.CloudProviderAzure:
kubelet.CloudProvider = "azure"
case kops.CloudProviderScaleway:
kubelet.CloudProvider = "external"
default:
kubelet.CloudProvider = "external"
}
if cloudProvider == kops.CloudProviderDO { if cluster.Spec.ExternalCloudControllerManager != nil {
kubelet.CloudProvider = "external" kubelet.CloudProvider = "external"
}
} else {
kubelet.CloudProvider = "external"
}
} }
if cloudProvider == kops.CloudProviderGCE { if cloudProvider == kops.CloudProviderGCE {
kubelet.CloudProvider = "gce"
kubelet.HairpinMode = "promiscuous-bridge" kubelet.HairpinMode = "promiscuous-bridge"
if cluster.Spec.CloudConfig == nil { if cluster.Spec.CloudConfig == nil {
@ -144,26 +163,6 @@ func (b *KubeletOptionsBuilder) configureKubelet(cluster *kops.Cluster, kubelet
cluster.Spec.CloudProvider.GCE.NodeTags = fi.PtrTo(gce.TagForRole(b.ClusterName, kops.InstanceGroupRoleNode)) cluster.Spec.CloudProvider.GCE.NodeTags = fi.PtrTo(gce.TagForRole(b.ClusterName, kops.InstanceGroupRoleNode))
} }
if cloudProvider == kops.CloudProviderHetzner {
kubelet.CloudProvider = "external"
}
if cloudProvider == kops.CloudProviderOpenstack {
kubelet.CloudProvider = "openstack"
}
if cloudProvider == kops.CloudProviderAzure {
kubelet.CloudProvider = "azure"
}
if cloudProvider == kops.CloudProviderScaleway {
kubelet.CloudProvider = "external"
}
if cluster.Spec.ExternalCloudControllerManager != nil {
kubelet.CloudProvider = "external"
}
// Prevent image GC from pruning the pause image // Prevent image GC from pruning the pause image
// https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2040-kubelet-cri#pinned-images // https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2040-kubelet-cri#pinned-images
image := "registry.k8s.io/pause:3.9" image := "registry.k8s.io/pause:3.9"