@@ -18,11 +18,8 @@ package constants
18
18
19
19
import (
20
20
"path/filepath"
21
- "strings"
22
21
"testing"
23
22
24
- "github.com/pkg/errors"
25
-
26
23
"k8s.io/apimachinery/pkg/util/version"
27
24
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
28
25
)
@@ -149,50 +146,62 @@ func TestAddSelfHostedPrefix(t *testing.T) {
149
146
}
150
147
151
148
func TestEtcdSupportedVersion (t * testing.T ) {
149
+ var supportedEtcdVersion = map [uint8 ]string {
150
+ 13 : "3.2.24" ,
151
+ 14 : "3.3.10" ,
152
+ 15 : "3.3.10" ,
153
+ 16 : "3.3.17-0" ,
154
+ 17 : "3.4.3-0" ,
155
+ 18 : "3.4.3-0" ,
156
+ }
152
157
var tests = []struct {
153
158
kubernetesVersion string
154
159
expectedVersion * version.Version
155
- expectedError error
160
+ expectedWarning bool
161
+ expectedError bool
156
162
}{
157
163
{
158
- kubernetesVersion : "1.99.0 " ,
164
+ kubernetesVersion : "1.x.1 " ,
159
165
expectedVersion : nil ,
160
- expectedError : errors .New ("unsupported or unknown Kubernetes version(1.99.0)" ),
166
+ expectedWarning : false ,
167
+ expectedError : true ,
161
168
},
162
169
{
163
- kubernetesVersion : MinimumControlPlaneVersion .WithPatch (1 ).String (),
164
- expectedVersion : version .MustParseSemantic (SupportedEtcdVersion [uint8 (MinimumControlPlaneVersion .Minor ())]),
165
- expectedError : nil ,
170
+ kubernetesVersion : "1.10.1" ,
171
+ expectedVersion : version .MustParseSemantic ("3.2.24" ),
172
+ expectedWarning : true ,
173
+ expectedError : false ,
166
174
},
167
175
{
168
- kubernetesVersion : CurrentKubernetesVersion .String (),
169
- expectedVersion : version .MustParseSemantic (SupportedEtcdVersion [uint8 (CurrentKubernetesVersion .Minor ())]),
170
- expectedError : nil ,
176
+ kubernetesVersion : "1.99.0" ,
177
+ expectedVersion : version .MustParseSemantic ("3.4.3-0" ),
178
+ expectedWarning : true ,
179
+ expectedError : false ,
180
+ },
181
+ {
182
+ kubernetesVersion : "v1.16.0" ,
183
+ expectedVersion : version .MustParseSemantic ("3.3.17-0" ),
184
+ expectedWarning : false ,
185
+ expectedError : false ,
186
+ },
187
+ {
188
+ kubernetesVersion : "1.17.2" ,
189
+ expectedVersion : version .MustParseSemantic ("3.4.3-0" ),
190
+ expectedWarning : false ,
191
+ expectedError : false ,
171
192
},
172
193
}
173
194
for _ , rt := range tests {
174
195
t .Run (rt .kubernetesVersion , func (t * testing.T ) {
175
- actualVersion , actualError := EtcdSupportedVersion (rt .kubernetesVersion )
176
- if actualError != nil {
177
- if rt .expectedError == nil {
178
- t .Errorf ("failed EtcdSupportedVersion:\n \t expected no error, but got: %v" , actualError )
179
- } else if actualError .Error () != rt .expectedError .Error () {
180
- t .Errorf (
181
- "failed EtcdSupportedVersion:\n \t expected error: %v\n \t actual error: %v" ,
182
- rt .expectedError ,
183
- actualError ,
184
- )
185
- }
186
- } else {
187
- if rt .expectedError != nil {
188
- t .Errorf ("failed EtcdSupportedVersion:\n \t expected error: %v, but got no error" , rt .expectedError )
189
- } else if strings .Compare (actualVersion .String (), rt .expectedVersion .String ()) != 0 {
190
- t .Errorf (
191
- "failed EtcdSupportedVersion:\n \t expected version: %s\n \t actual version: %s" ,
192
- rt .expectedVersion .String (),
193
- actualVersion .String (),
194
- )
195
- }
196
+ actualVersion , actualWarning , actualError := EtcdSupportedVersion (supportedEtcdVersion , rt .kubernetesVersion )
197
+ if (actualError != nil ) != rt .expectedError {
198
+ t .Fatalf ("expected error %v, got %v" , rt .expectedError , actualError != nil )
199
+ }
200
+ if (actualWarning != nil ) != rt .expectedWarning {
201
+ t .Fatalf ("expected warning %v, got %v" , rt .expectedWarning , actualWarning != nil )
202
+ }
203
+ if actualError == nil && actualVersion .String () != rt .expectedVersion .String () {
204
+ t .Errorf ("expected version %s, got %s" , rt .expectedVersion .String (), actualVersion .String ())
196
205
}
197
206
})
198
207
}
0 commit comments