Skip to content

Commit 1fa7b70

Browse files
authored
Merge pull request #17482 from hakman/fis-cloud-provider
Fix `--cloud-provider` flag for K8s 1.31+
2 parents af44040 + 97c631b commit 1fa7b70

File tree

2 files changed

+53
-50
lines changed

2 files changed

+53
-50
lines changed

pkg/model/components/apiserver.go

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -98,28 +98,32 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(cluster *kops.Cluster) error
9898
c.Image = image
9999

100100
if b.controlPlaneKubernetesVersion.IsLT("1.33") {
101-
switch cluster.GetCloudProvider() {
102-
case kops.CloudProviderAWS:
103-
c.CloudProvider = "aws"
104-
case kops.CloudProviderGCE:
105-
c.CloudProvider = "gce"
106-
case kops.CloudProviderDO:
107-
c.CloudProvider = "external"
108-
case kops.CloudProviderHetzner:
109-
c.CloudProvider = "external"
110-
case kops.CloudProviderOpenstack:
111-
c.CloudProvider = "openstack"
112-
case kops.CloudProviderAzure:
113-
c.CloudProvider = "azure"
114-
case kops.CloudProviderScaleway:
115-
c.CloudProvider = "external"
116-
case kops.CloudProviderMetal:
117-
c.CloudProvider = "external"
118-
default:
119-
return fmt.Errorf("unknown cloudprovider %q", cluster.GetCloudProvider())
120-
}
121-
122-
if clusterSpec.ExternalCloudControllerManager != nil {
101+
if b.controlPlaneKubernetesVersion.IsLT("1.31") {
102+
switch cluster.GetCloudProvider() {
103+
case kops.CloudProviderAWS:
104+
c.CloudProvider = "aws"
105+
case kops.CloudProviderGCE:
106+
c.CloudProvider = "gce"
107+
case kops.CloudProviderDO:
108+
c.CloudProvider = "external"
109+
case kops.CloudProviderHetzner:
110+
c.CloudProvider = "external"
111+
case kops.CloudProviderOpenstack:
112+
c.CloudProvider = "openstack"
113+
case kops.CloudProviderAzure:
114+
c.CloudProvider = "azure"
115+
case kops.CloudProviderScaleway:
116+
c.CloudProvider = "external"
117+
case kops.CloudProviderMetal:
118+
c.CloudProvider = "external"
119+
default:
120+
return fmt.Errorf("unknown cloudprovider %q", cluster.GetCloudProvider())
121+
}
122+
123+
if clusterSpec.ExternalCloudControllerManager != nil {
124+
c.CloudProvider = "external"
125+
}
126+
} else {
123127
c.CloudProvider = "external"
124128
}
125129
}

pkg/model/components/kubelet.go

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -120,21 +120,40 @@ func (b *KubeletOptionsBuilder) configureKubelet(cluster *kops.Cluster, kubelet
120120
const kubeconfigPath = "/var/lib/kubelet/kubeconfig"
121121
kubelet.KubeconfigPath = kubeconfigPath
122122

123-
cloudProvider := cluster.GetCloudProvider()
124-
125123
kubelet.CgroupRoot = "/"
126124

125+
cloudProvider := cluster.GetCloudProvider()
127126
klog.V(1).Infof("Cloud Provider: %s", cloudProvider)
128-
if cloudProvider == kops.CloudProviderAWS {
129-
kubelet.CloudProvider = "aws"
130-
}
127+
if cloudProvider != kops.CloudProviderMetal {
128+
if b.controlPlaneKubernetesVersion.IsLT("1.31") {
129+
switch cloudProvider {
130+
case kops.CloudProviderAWS:
131+
kubelet.CloudProvider = "aws"
132+
case kops.CloudProviderGCE:
133+
kubelet.CloudProvider = "gce"
134+
case kops.CloudProviderDO:
135+
kubelet.CloudProvider = "external"
136+
case kops.CloudProviderHetzner:
137+
kubelet.CloudProvider = "external"
138+
case kops.CloudProviderOpenstack:
139+
kubelet.CloudProvider = "openstack"
140+
case kops.CloudProviderAzure:
141+
kubelet.CloudProvider = "azure"
142+
case kops.CloudProviderScaleway:
143+
kubelet.CloudProvider = "external"
144+
default:
145+
kubelet.CloudProvider = "external"
146+
}
131147

132-
if cloudProvider == kops.CloudProviderDO {
133-
kubelet.CloudProvider = "external"
148+
if cluster.Spec.ExternalCloudControllerManager != nil {
149+
kubelet.CloudProvider = "external"
150+
}
151+
} else {
152+
kubelet.CloudProvider = "external"
153+
}
134154
}
135155

136156
if cloudProvider == kops.CloudProviderGCE {
137-
kubelet.CloudProvider = "gce"
138157
kubelet.HairpinMode = "promiscuous-bridge"
139158

140159
if cluster.Spec.CloudConfig == nil {
@@ -144,26 +163,6 @@ func (b *KubeletOptionsBuilder) configureKubelet(cluster *kops.Cluster, kubelet
144163
cluster.Spec.CloudProvider.GCE.NodeTags = fi.PtrTo(gce.TagForRole(b.ClusterName, kops.InstanceGroupRoleNode))
145164
}
146165

147-
if cloudProvider == kops.CloudProviderHetzner {
148-
kubelet.CloudProvider = "external"
149-
}
150-
151-
if cloudProvider == kops.CloudProviderOpenstack {
152-
kubelet.CloudProvider = "openstack"
153-
}
154-
155-
if cloudProvider == kops.CloudProviderAzure {
156-
kubelet.CloudProvider = "azure"
157-
}
158-
159-
if cloudProvider == kops.CloudProviderScaleway {
160-
kubelet.CloudProvider = "external"
161-
}
162-
163-
if cluster.Spec.ExternalCloudControllerManager != nil {
164-
kubelet.CloudProvider = "external"
165-
}
166-
167166
// Prevent image GC from pruning the pause image
168167
// https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2040-kubelet-cri#pinned-images
169168
image := "registry.k8s.io/pause:3.9"

0 commit comments

Comments
 (0)