Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated function #9514

Merged
merged 1 commit into from
Jul 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 0 additions & 17 deletions pkg/model/components/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,6 @@ func (c *OptionsContext) IsKubernetesLT(version string) bool {
return !c.IsKubernetesGTE(version)
}

// KubernetesVersion parses the semver version of kubernetes, from the cluster spec
// Deprecated: prefer using OptionsContext.KubernetesVersion
func KubernetesVersion(clusterSpec *kops.ClusterSpec) (*semver.Version, error) {
kubernetesVersion := clusterSpec.KubernetesVersion

if kubernetesVersion == "" {
return nil, fmt.Errorf("KubernetesVersion is required")
}

sv, err := util.ParseKubernetesVersion(kubernetesVersion)
if err != nil {
return nil, fmt.Errorf("unable to determine kubernetes version from %q", kubernetesVersion)
}

return sv, nil
}

// UsesKubenet returns true if our networking is derived from kubenet
func UsesKubenet(networking *kops.NetworkingSpec) bool {
if networking == nil {
Expand Down
15 changes: 5 additions & 10 deletions pkg/model/components/kubecontrollermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const (

// KubeControllerManagerOptionsBuilder adds options for the kubernetes controller manager to the model.
type KubeControllerManagerOptionsBuilder struct {
Context *OptionsContext
*OptionsContext
}

var _ loader.OptionsBuilder = &KubeControllerManagerOptionsBuilder{}
Expand All @@ -49,17 +49,12 @@ func (b *KubeControllerManagerOptionsBuilder) BuildOptions(o interface{}) error
}
kcm := clusterSpec.KubeControllerManager

kubernetesVersion, err := KubernetesVersion(clusterSpec)
if err != nil {
return fmt.Errorf("unable to parse kubernetesVersion %s", err)
}

// Tune the duration upon which the volume attach detach component is called.
// See https://github.com/kubernetes/kubernetes/pull/39551
// TLDR; set this too low, and have a few EBS Volumes, and you will spam AWS api

{
klog.V(4).Infof("Kubernetes version %q supports AttachDetachReconcileSyncPeriod; will configure", kubernetesVersion)
klog.V(4).Infof("Kubernetes version %q supports AttachDetachReconcileSyncPeriod; will configure", b.KubernetesVersion)
// If not set ... or set to 0s ... which is stupid
if kcm.AttachDetachReconcileSyncPeriod == nil ||
kcm.AttachDetachReconcileSyncPeriod.Duration.String() == "0s" {
Expand All @@ -80,14 +75,14 @@ func (b *KubeControllerManagerOptionsBuilder) BuildOptions(o interface{}) error
}
}

kcm.ClusterName = b.Context.ClusterName
kcm.ClusterName = b.ClusterName
switch kops.CloudProviderID(clusterSpec.CloudProvider) {
case kops.CloudProviderAWS:
kcm.CloudProvider = "aws"

case kops.CloudProviderGCE:
kcm.CloudProvider = "gce"
kcm.ClusterName = gce.SafeClusterName(b.Context.ClusterName)
kcm.ClusterName = gce.SafeClusterName(b.ClusterName)

case kops.CloudProviderDO:
kcm.CloudProvider = "external"
Expand All @@ -108,7 +103,7 @@ func (b *KubeControllerManagerOptionsBuilder) BuildOptions(o interface{}) error

kcm.LogLevel = 2

image, err := Image("kube-controller-manager", clusterSpec, b.Context.AssetBuilder)
image, err := Image("kube-controller-manager", clusterSpec, b.AssetBuilder)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/model/components/kubecontrollermanager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func Test_Build_KCM_Builder(t *testing.T) {
b := assets.NewAssetBuilder(c, "")

kcm := &KubeControllerManagerOptionsBuilder{
Context: &OptionsContext{
OptionsContext: &OptionsContext{
AssetBuilder: b,
},
}
Expand All @@ -68,7 +68,7 @@ func Test_Build_KCM_Builder_Change_Duration(t *testing.T) {
b := assets.NewAssetBuilder(c, "")

kcm := &KubeControllerManagerOptionsBuilder{
Context: &OptionsContext{
OptionsContext: &OptionsContext{
AssetBuilder: b,
},
}
Expand Down
18 changes: 7 additions & 11 deletions pkg/model/components/kubelet.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import (

// KubeletOptionsBuilder adds options for kubelets
type KubeletOptionsBuilder struct {
Context *OptionsContext
*OptionsContext
}

var _ loader.OptionsBuilder = &KubeletOptionsBuilder{}
Expand All @@ -38,11 +38,6 @@ var _ loader.OptionsBuilder = &KubeletOptionsBuilder{}
func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {
clusterSpec := o.(*kops.ClusterSpec)

kubernetesVersion, err := KubernetesVersion(clusterSpec)
if err != nil {
return err
}

if clusterSpec.Kubelet == nil {
clusterSpec.Kubelet = &kops.KubeletConfigSpec{}
}
Expand All @@ -67,7 +62,7 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {

// AllowPrivileged is deprecated and removed in v1.14.
// See https://github.com/kubernetes/kubernetes/pull/71835
if kubernetesVersion.Major == 1 && kubernetesVersion.Minor >= 14 {
if b.IsKubernetesGTE("1.14") {
if clusterSpec.Kubelet.AllowPrivileged != nil {
// If it is explicitly set to false, return an error, because this
// behavior is no longer supported in v1.14 (the default was true, prior).
Expand Down Expand Up @@ -110,7 +105,7 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {
// Disk based evictions are not detecting the correct disk capacity in Kubernetes 1.19 and are
// blocking scheduling by tainting worker nodes with "node.kubernetes.io/disk-pressure:NoSchedule"
// TODO: Re-enable once the Kubelet issue is fixed
if b.Context.IsKubernetesLT("1.19") {
if b.IsKubernetesLT("1.19") {
// Disk based eviction (evict old images)
// We don't need to specify both, but it seems harmless / safer
evictionHard = append(evictionHard, "nodefs.available<10%")
Expand Down Expand Up @@ -162,7 +157,7 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {
clusterSpec.CloudConfig = &kops.CloudConfiguration{}
}
clusterSpec.CloudConfig.Multizone = fi.Bool(true)
clusterSpec.CloudConfig.NodeTags = fi.String(GCETagForRole(b.Context.ClusterName, kops.InstanceGroupRoleNode))
clusterSpec.CloudConfig.NodeTags = fi.String(GCETagForRole(b.ClusterName, kops.InstanceGroupRoleNode))

// Use the hostname from the GCE metadata service
// if hostnameOverride is not set.
Expand Down Expand Up @@ -199,7 +194,8 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {

// Specify our pause image
image := "k8s.gcr.io/pause:3.2"
if image, err = b.Context.AssetBuilder.RemapImage(image); err != nil {
var err error
if image, err = b.AssetBuilder.RemapImage(image); err != nil {
return err
}
clusterSpec.Kubelet.PodInfraContainerImage = image
Expand All @@ -209,7 +205,7 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {
clusterSpec.Kubelet.FeatureGates = make(map[string]string)
}
if _, found := clusterSpec.Kubelet.FeatureGates["ExperimentalCriticalPodAnnotation"]; !found {
if b.Context.IsKubernetesLT("1.16") {
if b.IsKubernetesLT("1.16") {
clusterSpec.Kubelet.FeatureGates["ExperimentalCriticalPodAnnotation"] = "true"
}
}
Expand Down
5 changes: 3 additions & 2 deletions pkg/model/components/kubelet_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"testing"

"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/apis/kops/util"
"k8s.io/kops/pkg/assets"
)

Expand All @@ -37,13 +38,13 @@ func buildKubeletTestCluster() *kops.Cluster {
func buildOptions(cluster *kops.Cluster) error {
ab := assets.NewAssetBuilder(cluster, "")

ver, err := KubernetesVersion(&cluster.Spec)
ver, err := util.ParseKubernetesVersion(cluster.Spec.KubernetesVersion)
if err != nil {
return err
}

builder := KubeletOptionsBuilder{
Context: &OptionsContext{
OptionsContext: &OptionsContext{
AssetBuilder: ab,
KubernetesVersion: *ver,
},
Expand Down
4 changes: 2 additions & 2 deletions upup/pkg/fi/cloudup/populate_cluster_spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,8 @@ func (c *populateClusterSpec) run(clientset simple.Clientset) error {
codeModels = append(codeModels, &components.ContainerdOptionsBuilder{OptionsContext: optionsContext})
codeModels = append(codeModels, &components.NetworkingOptionsBuilder{Context: optionsContext})
codeModels = append(codeModels, &components.KubeDnsOptionsBuilder{Context: optionsContext})
codeModels = append(codeModels, &components.KubeletOptionsBuilder{Context: optionsContext})
codeModels = append(codeModels, &components.KubeControllerManagerOptionsBuilder{Context: optionsContext})
codeModels = append(codeModels, &components.KubeletOptionsBuilder{OptionsContext: optionsContext})
codeModels = append(codeModels, &components.KubeControllerManagerOptionsBuilder{OptionsContext: optionsContext})
codeModels = append(codeModels, &components.KubeSchedulerOptionsBuilder{OptionsContext: optionsContext})
codeModels = append(codeModels, &components.KubeProxyOptionsBuilder{Context: optionsContext})
codeModels = append(codeModels, &components.CiliumOptionsBuilder{Context: optionsContext})
Expand Down