Skip to content

Commit ab15772

Browse files
authored
Merge pull request #10141 from johngmyers/remove-old-k8s
Remove code for no-longer-supported k8s releases
2 parents 9885df8 + 8254be2 commit ab15772

File tree

49 files changed

+4087
-14656
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4087
-14656
lines changed

k8s/crds/kops.k8s.io_clusters.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ spec:
631631
description: Name is the name of the etcd cluster (main, events etc)
632632
type: string
633633
provider:
634-
description: 'Provider is the provider used to run etcd: standalone, manager. We default to manager for kubernetes 1.11 or if the manager is configured; otherwise standalone.'
634+
description: 'Provider is the provider used to run etcd: Manager, Legacy. Defaults to Manager.'
635635
type: string
636636
version:
637637
description: Version is the version of etcd to run i.e. 2.1.2, 3.0.17 etcd

nodeup/pkg/model/BUILD.bazel

-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ go_test(
112112
"//pkg/testutils:go_default_library",
113113
"//upup/pkg/fi:go_default_library",
114114
"//upup/pkg/fi/cloudup:go_default_library",
115-
"//upup/pkg/fi/nodeup/nodetasks:go_default_library",
116115
"//util/pkg/architectures:go_default_library",
117116
"//util/pkg/distributions:go_default_library",
118117
"//util/pkg/exec:go_default_library",

nodeup/pkg/model/kube_apiserver.go

+1-10
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ func (b *KubeAPIServerBuilder) Build(c *fi.ModelBuilderContext) error {
6464
if *b.Cluster.Spec.EncryptionConfig {
6565
encryptionConfigPath := fi.String(filepath.Join(b.PathSrvKubernetes(), "encryptionconfig.yaml"))
6666

67-
if b.IsKubernetesGTE("1.13") {
68-
b.Cluster.Spec.KubeAPIServer.EncryptionProviderConfig = encryptionConfigPath
69-
} else {
70-
b.Cluster.Spec.KubeAPIServer.ExperimentalEncryptionProviderConfig = encryptionConfigPath
71-
}
67+
b.Cluster.Spec.KubeAPIServer.EncryptionProviderConfig = encryptionConfigPath
7268

7369
key := "encryptionconfig"
7470
encryptioncfg, err := b.SecretStore.Secret(key)
@@ -375,11 +371,6 @@ func (b *KubeAPIServerBuilder) buildPod() (*v1.Pod, error) {
375371
}
376372
}
377373

378-
//remove elements from the spec that are not enabled yet
379-
if b.Cluster.Spec.KubeAPIServer.AuditDynamicConfiguration != nil && !b.IsKubernetesGTE("1.13") {
380-
b.Cluster.Spec.KubeAPIServer.AuditDynamicConfiguration = nil
381-
}
382-
383374
// build the kube-apiserver flags for the service
384375
flags, err := flagbuilder.BuildFlagsList(b.Cluster.Spec.KubeAPIServer)
385376
if err != nil {

nodeup/pkg/model/kube_apiserver_test.go

-40
Original file line numberDiff line numberDiff line change
@@ -17,54 +17,14 @@ limitations under the License.
1717
package model
1818

1919
import (
20-
"bytes"
21-
"strings"
2220
"testing"
2321

2422
"k8s.io/kops/pkg/apis/kops"
2523
"k8s.io/kops/pkg/flagbuilder"
2624
"k8s.io/kops/upup/pkg/fi"
27-
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
2825
"k8s.io/kops/util/pkg/architectures"
2926
)
3027

31-
func Test_KubeAPIServer_Builder(t *testing.T) {
32-
basedir := "tests/apiServer/auditDynamicConfiguration"
33-
34-
context := &fi.ModelBuilderContext{
35-
Tasks: make(map[string]fi.Task),
36-
}
37-
38-
nodeUpModelContext, err := BuildNodeupModelContext(basedir)
39-
if err != nil {
40-
t.Fatalf("error loading model %q: %v", basedir, err)
41-
return
42-
}
43-
keystore := &fakeCAStore{}
44-
keystore.T = t
45-
nodeUpModelContext.KeyStore = keystore
46-
47-
builder := KubeAPIServerBuilder{NodeupModelContext: nodeUpModelContext}
48-
49-
err = builder.Build(context)
50-
if err != nil {
51-
t.Fatalf("error from KubeAPIServerBuilder buildKubeletConfig: %v", err)
52-
return
53-
}
54-
if task, ok := context.Tasks["File//etc/kubernetes/manifests/kube-apiserver.manifest"]; !ok {
55-
t.Error("did not find the kubernetes API manifest after the build")
56-
} else {
57-
nodeTask, _ := task.(*nodetasks.File)
58-
reader, _ := nodeTask.Contents.Open()
59-
buf := new(bytes.Buffer)
60-
buf.ReadFrom(reader)
61-
s := buf.String()
62-
if strings.Contains(s, "--audit-dynamic-configuration") {
63-
t.Error("Older versions of k8s should not have --audit-dynamic-configuration flag")
64-
}
65-
}
66-
}
67-
6828
func Test_KubeAPIServer_BuildFlags(t *testing.T) {
6929
grid := []struct {
7030
config kops.KubeAPIServerConfig

nodeup/pkg/model/kube_scheduler.go

+5-10
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,8 @@ func (b *KubeSchedulerBuilder) Build(c *fi.ModelBuilderContext) error {
6666
if !b.IsMaster {
6767
return nil
6868
}
69-
useConfigFile := b.IsKubernetesGTE("1.12")
7069
{
71-
pod, err := b.buildPod(useConfigFile)
70+
pod, err := b.buildPod()
7271
if err != nil {
7372
return fmt.Errorf("error building kube-scheduler pod: %v", err)
7473
}
@@ -95,7 +94,7 @@ func (b *KubeSchedulerBuilder) Build(c *fi.ModelBuilderContext) error {
9594
Mode: s("0400"),
9695
})
9796
}
98-
if useConfigFile {
97+
{
9998
var config *SchedulerConfig
10099
if b.IsKubernetesGTE("1.19") {
101100
config = NewSchedulerConfig("kubescheduler.config.k8s.io/v1beta1")
@@ -142,19 +141,15 @@ func NewSchedulerConfig(apiVersion string) *SchedulerConfig {
142141
}
143142

144143
// buildPod is responsible for constructing the pod specification
145-
func (b *KubeSchedulerBuilder) buildPod(useConfigFile bool) (*v1.Pod, error) {
144+
func (b *KubeSchedulerBuilder) buildPod() (*v1.Pod, error) {
146145
c := b.Cluster.Spec.KubeScheduler
147146

148147
flags, err := flagbuilder.BuildFlagsList(c)
149148
if err != nil {
150149
return nil, fmt.Errorf("error building kube-scheduler flags: %v", err)
151150
}
152-
if useConfigFile {
153-
flags = append(flags, "--config="+"/var/lib/kube-scheduler/config.yaml")
154-
} else {
155-
// Add kubeconfig flag
156-
flags = append(flags, "--kubeconfig="+defaultKubeConfig)
157-
}
151+
152+
flags = append(flags, "--config="+"/var/lib/kube-scheduler/config.yaml")
158153

159154
if c.UsePolicyConfigMap != nil {
160155
flags = append(flags, "--policy-configmap=scheduler-policy", "--policy-configmap-namespace=kube-system")

nodeup/pkg/model/networking/calico.go

-21
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ limitations under the License.
1717
package networking
1818

1919
import (
20-
"path/filepath"
21-
2220
"k8s.io/kops/nodeup/pkg/model"
2321
"k8s.io/kops/upup/pkg/fi"
2422
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
@@ -43,24 +41,5 @@ func (b *CalicoBuilder) Build(c *fi.ModelBuilderContext) error {
4341
c.AddTask(&nodetasks.Package{Name: "wireguard"})
4442
}
4543

46-
// @check if tls is enabled and if so, we need to download the client certificates
47-
if b.IsKubernetesLT("1.12") && !b.UseEtcdManager() && b.UseEtcdTLS() {
48-
name := "calico-client"
49-
dirname := "calico"
50-
ca := filepath.Join(dirname, "ca.pem")
51-
certificate := filepath.Join(dirname, name+".pem")
52-
key := filepath.Join(dirname, name+"-key.pem")
53-
54-
if err := b.BuildCertificateTask(c, name, certificate, nil); err != nil {
55-
return err
56-
}
57-
if err := b.BuildPrivateKeyTask(c, name, key, nil); err != nil {
58-
return err
59-
}
60-
if err := b.BuildCertificateTask(c, fi.CertificateIDCA, ca, nil); err != nil {
61-
return err
62-
}
63-
}
64-
6544
return nil
6645
}

nodeup/pkg/model/tests/apiServer/auditDynamicConfiguration/cluster.yaml

-63
This file was deleted.

pkg/apis/kops/cluster.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -453,8 +453,8 @@ var SupportedEtcdProviderTypes = []string{
453453
type EtcdClusterSpec struct {
454454
// Name is the name of the etcd cluster (main, events etc)
455455
Name string `json:"name,omitempty"`
456-
// Provider is the provider used to run etcd: standalone, manager.
457-
// We default to manager for kubernetes 1.11 or if the manager is configured; otherwise standalone.
456+
// Provider is the provider used to run etcd: Manager, Legacy.
457+
// Defaults to Manager.
458458
Provider EtcdProviderType `json:"provider,omitempty"`
459459
// Members stores the configurations for each member of the cluster (including the data volume)
460460
Members []EtcdMemberSpec `json:"etcdMembers,omitempty"`

pkg/apis/kops/v1alpha2/cluster.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -450,8 +450,8 @@ const (
450450
type EtcdClusterSpec struct {
451451
// Name is the name of the etcd cluster (main, events etc)
452452
Name string `json:"name,omitempty"`
453-
// Provider is the provider used to run etcd: standalone, manager.
454-
// We default to manager for kubernetes 1.11 or if the manager is configured; otherwise standalone.
453+
// Provider is the provider used to run etcd: Manager, Legacy.
454+
// Defaults to Manager.
455455
Provider EtcdProviderType `json:"provider,omitempty"`
456456
// Members stores the configurations for each member of the cluster (including the data volume)
457457
Members []EtcdMemberSpec `json:"etcdMembers,omitempty"`

pkg/apis/kops/validation/openstack.go

-3
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,5 @@ func openstackValidateCluster(c *kops.Cluster) (errList field.ErrorList) {
3434
errList = append(errList, field.Forbidden(field.NewPath("spec", "topology", "masters"), "Public topology requires an external network"))
3535
}
3636
}
37-
if c.Spec.ExternalCloudControllerManager != nil && !c.IsKubernetesGTE("1.13") {
38-
errList = append(errList, field.Forbidden(field.NewPath("spec", "cloudControllerManager"), "External cloud controller manager for OpenStack is only supported as of kubernetes 1.13"))
39-
}
4037
return errList
4138
}

pkg/apis/kops/validation/validation.go

+8-15
Original file line numberDiff line numberDiff line change
@@ -702,15 +702,12 @@ func validateNetworkingCilium(cluster *kops.Cluster, v *kops.CiliumNetworkingSpe
702702
allErrs = append(allErrs, field.Invalid(versionFld, v.Version, "Only versions 1.6 through 1.8 are supported"))
703703
}
704704

705-
if version.Minor == 6 && (!cluster.IsKubernetesGTE("1.11") || cluster.IsKubernetesGTE("1.16")) {
706-
allErrs = append(allErrs, field.Forbidden(versionFld, "Version 1.6 requires kubernetesVersion between 1.11 and 1.16"))
705+
if version.Minor == 6 && cluster.IsKubernetesGTE("1.16") {
706+
allErrs = append(allErrs, field.Forbidden(versionFld, "Version 1.6 requires kubernetesVersion before 1.16"))
707707
}
708708

709-
if version.Minor == 7 && (!cluster.IsKubernetesGTE("1.12") || cluster.IsKubernetesGTE("1.17")) {
710-
allErrs = append(allErrs, field.Forbidden(versionFld, "Version 1.7 requires kubernetesVersion between 1.12 and 1.17"))
711-
}
712-
if version.Minor == 8 && !cluster.IsKubernetesGTE("1.12") {
713-
allErrs = append(allErrs, field.Forbidden(versionFld, "Version 1.8 requires kubernetesVersion 1.12 or newer"))
709+
if version.Minor == 7 && cluster.IsKubernetesGTE("1.17") {
710+
allErrs = append(allErrs, field.Forbidden(versionFld, "Version 1.7 requires kubernetesVersion before 1.17"))
714711
}
715712

716713
if v.Hubble != nil && fi.BoolValue(v.Hubble.Enabled) {
@@ -894,23 +891,23 @@ func validateEtcdVersion(spec kops.EtcdClusterSpec, fieldPath *field.Path, minim
894891

895892
version := spec.Version
896893
if spec.Version == "" {
897-
version = components.DefaultEtcd2Version
894+
version = components.DefaultEtcd3Version_1_13
898895
}
899896

900897
sem, err := semver.Parse(strings.TrimPrefix(version, "v"))
901898
if err != nil {
902899
return field.ErrorList{field.Invalid(fieldPath.Child("version"), version, "the storage version is invalid")}
903900
}
904901

905-
// we only support v3 and v2 for now
906-
if sem.Major == 3 || sem.Major == 2 {
902+
// we only support v3 for now
903+
if sem.Major == 3 {
907904
if sem.LT(*minimalVersion) {
908905
return field.ErrorList{field.Invalid(fieldPath.Child("version"), version, fmt.Sprintf("minimum version required is %s", minimalVersion.String()))}
909906
}
910907
return nil
911908
}
912909

913-
return field.ErrorList{field.Invalid(fieldPath.Child("version"), version, "unsupported storage version, we only support major versions 2 and 3")}
910+
return field.ErrorList{field.Invalid(fieldPath.Child("version"), version, "unsupported storage version, we only support major version 3")}
914911
}
915912

916913
// validateEtcdMemberSpec is responsible for validate the cluster member
@@ -1172,10 +1169,6 @@ func validateNodeLocalDNS(spec *kops.ClusterSpec, fldpath *field.Path) field.Err
11721169
}
11731170

11741171
func validateClusterAutoscaler(cluster *kops.Cluster, spec *kops.ClusterAutoscalerConfig, fldPath *field.Path) (allErrs field.ErrorList) {
1175-
if !cluster.IsKubernetesGTE("1.12") {
1176-
allErrs = append(allErrs, field.Forbidden(fldPath, "Cluster autoscaler requires kubernetesVersion 1.12 or higher"))
1177-
}
1178-
11791172
allErrs = append(allErrs, IsValidValue(fldPath.Child("expander"), spec.Expander, []string{"least-waste", "random", "most-pods"})...)
11801173

11811174
if kops.CloudProviderID(cluster.Spec.CloudProvider) == kops.CloudProviderOpenstack {

pkg/apis/kops/validation/validation_test.go

+2-20
Original file line numberDiff line numberDiff line change
@@ -618,28 +618,10 @@ func Test_Validate_Cilium(t *testing.T) {
618618
Version: "v1.0.0",
619619
},
620620
Spec: kops.ClusterSpec{
621-
KubernetesVersion: "1.11.0",
621+
KubernetesVersion: "1.18.0",
622622
},
623623
ExpectedErrors: []string{"Invalid value::cilium.version"},
624624
},
625-
{
626-
Cilium: kops.CiliumNetworkingSpec{
627-
Version: "v1.7.0",
628-
},
629-
Spec: kops.ClusterSpec{
630-
KubernetesVersion: "1.11.0",
631-
},
632-
ExpectedErrors: []string{"Forbidden::cilium.version"},
633-
},
634-
{
635-
Cilium: kops.CiliumNetworkingSpec{
636-
Version: "v1.7.0-rc1",
637-
},
638-
Spec: kops.ClusterSpec{
639-
KubernetesVersion: "1.11.0",
640-
},
641-
ExpectedErrors: []string{"Forbidden::cilium.version"},
642-
},
643625
{
644626
Cilium: kops.CiliumNetworkingSpec{
645627
Version: "v1.7.0",
@@ -683,7 +665,7 @@ func Test_Validate_Cilium(t *testing.T) {
683665
Cilium: &g.Cilium,
684666
}
685667
if g.Spec.KubernetesVersion == "" {
686-
g.Spec.KubernetesVersion = "1.12.0"
668+
g.Spec.KubernetesVersion = "1.15.0"
687669
}
688670
cluster := &kops.Cluster{
689671
Spec: g.Spec,

pkg/model/components/apiserver.go

+1-19
Original file line numberDiff line numberDiff line change
@@ -171,25 +171,7 @@ func (b *KubeAPIServerOptionsBuilder) BuildOptions(o interface{}) error {
171171
// TODO: We can probably rewrite these more clearly in descending order
172172
// Based on recommendations from:
173173
// https://kubernetes.io/docs/admin/admission-controllers/#is-there-a-recommended-set-of-admission-controllers-to-use
174-
if b.IsKubernetesLT("1.12") {
175-
c.EnableAdmissionPlugins = []string{
176-
"Initializers",
177-
"NamespaceLifecycle",
178-
"LimitRanger",
179-
"ServiceAccount",
180-
"PersistentVolumeLabel",
181-
"DefaultStorageClass",
182-
"DefaultTolerationSeconds",
183-
"MutatingAdmissionWebhook",
184-
"ValidatingAdmissionWebhook",
185-
"NodeRestriction",
186-
"ResourceQuota",
187-
}
188-
c.EnableAdmissionPlugins = append(c.EnableAdmissionPlugins, c.AppendAdmissionPlugins...)
189-
}
190-
// Based on recommendations from:
191-
// https://kubernetes.io/docs/admin/admission-controllers/#is-there-a-recommended-set-of-admission-controllers-to-use
192-
if b.IsKubernetesGTE("1.12") {
174+
{
193175
c.EnableAdmissionPlugins = []string{
194176
"NamespaceLifecycle",
195177
"LimitRanger",

0 commit comments

Comments
 (0)