@@ -90,6 +90,24 @@ func TestEnforceVersionPolicies(t *testing.T) {
90
90
},
91
91
newK8sVersion : "v1.13.0" ,
92
92
expectedMandatoryErrs : 1 , // can't upgrade two minor versions
93
+ },
94
+ {
95
+ name : "upgrading with n-3 kubelet is supported" ,
96
+ vg : & fakeVersionGetter {
97
+ clusterVersion : "v1.14.3" ,
98
+ kubeletVersion : "v1.12.3" ,
99
+ kubeadmVersion : "v1.15.0" ,
100
+ },
101
+ newK8sVersion : "v1.15.0" ,
102
+ },
103
+ {
104
+ name : "upgrading with n-4 kubelet is not supported" ,
105
+ vg : & fakeVersionGetter {
106
+ clusterVersion : "v1.14.3" ,
107
+ kubeletVersion : "v1.11.3" ,
108
+ kubeadmVersion : "v1.15.0" ,
109
+ },
110
+ newK8sVersion : "v1.15.0" ,
93
111
expectedSkippableErrs : 1 , // kubelet <-> apiserver skew too large
94
112
},
95
113
{
@@ -123,13 +141,22 @@ func TestEnforceVersionPolicies(t *testing.T) {
123
141
expectedMandatoryErrs : 1 ,
124
142
},
125
143
{
126
- name : "the maximum skew between the cluster version and the kubelet versions should be one minor version. This may be forced through though." ,
144
+ name : "the maximum skew between the cluster version and the kubelet versions should be three minor version." ,
145
+ vg : & fakeVersionGetter {
146
+ clusterVersion : "v1.13.0" ,
147
+ kubeletVersion : "v1.10.8" ,
148
+ kubeadmVersion : "v1.13.0" ,
149
+ },
150
+ newK8sVersion : "v1.13.0" ,
151
+ },
152
+ {
153
+ name : "the maximum skew between the cluster version and the kubelet versions should be three minor version. This may be forced through though." ,
127
154
vg : & fakeVersionGetter {
128
- clusterVersion : "v1.12 .0" ,
155
+ clusterVersion : "v1.14 .0" ,
129
156
kubeletVersion : "v1.10.8" ,
130
- kubeadmVersion : "v1.12 .0" ,
157
+ kubeadmVersion : "v1.14 .0" ,
131
158
},
132
- newK8sVersion : "v1.12 .0" ,
159
+ newK8sVersion : "v1.14 .0" ,
133
160
expectedSkippableErrs : 1 ,
134
161
},
135
162
{
0 commit comments