@@ -27,6 +27,7 @@ import (
27
27
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2022-07-01/network"
28
28
"github.com/Azure/azure-sdk-for-go/storage"
29
29
"github.com/golang/mock/gomock"
30
+ "k8s.io/client-go/kubernetes"
30
31
31
32
"github.com/Azure/go-autorest/autorest/azure"
32
33
"github.com/stretchr/testify/assert"
@@ -61,12 +62,7 @@ kind: Config
61
62
users:
62
63
- name: foo-user
63
64
user:
64
- exec:
65
- apiVersion: client.authentication.k8s.io/v1alpha1
66
- args:
67
- - arg-1
68
- - arg-2
69
- command: foo-command
65
+ token: 2fef7f7c64127579b48d61434c44ad46d87793169ee6a4199af3ce16a3cf5be3371
70
66
`
71
67
72
68
err := createTestFile (emptyKubeConfig )
@@ -87,55 +83,41 @@ users:
87
83
nodeID string
88
84
userAgent string
89
85
allowEmptyCloudConfig bool
90
- expectedErr error
86
+ expectedErrorMessage string
87
+ expectError bool
91
88
}{
92
89
{
93
- desc : "out of cluster, no kubeconfig, no credential file" ,
94
- kubeconfig : "" ,
90
+ desc : "[success] out of cluster, no kubeconfig, no credential file" ,
95
91
nodeID : "" ,
96
92
allowEmptyCloudConfig : true ,
97
- expectedErr : nil ,
93
+ expectError : false ,
98
94
},
99
95
{
100
- desc : "[failure][disallowEmptyCloudConfig] out of cluster, no kubeconfig, no credential file" ,
101
- kubeconfig : "" ,
96
+ desc : "[failure][disallowEmptyCloudConfig] out of cluster, no kubeconfig, no credential file" ,
102
97
nodeID : "" ,
103
98
allowEmptyCloudConfig : false ,
104
- expectedErr : nil ,
99
+ expectError : true ,
100
+ expectedErrorMessage : "no cloud config provided, error: open /etc/kubernetes/azure.json: no such file or directory" ,
105
101
},
106
102
{
107
- desc : "[failure] out of cluster & in cluster, specify a non-exist kubeconfig, no credential file" ,
108
- kubeconfig : "/tmp/non-exist.json" ,
109
- nodeID : "" ,
110
- allowEmptyCloudConfig : true ,
111
- expectedErr : nil ,
112
- },
113
- {
114
- desc : "[failure] out of cluster & in cluster, specify a empty kubeconfig, no credential file" ,
115
- kubeconfig : emptyKubeConfig ,
116
- nodeID : "" ,
117
- allowEmptyCloudConfig : true ,
118
- expectedErr : fmt .Errorf ("invalid configuration: no configuration has been provided, try setting KUBERNETES_MASTER environment variable" ),
119
- },
120
- {
121
- desc : "[failure] out of cluster & in cluster, specify a fake kubeconfig, no credential file" ,
103
+ desc : "[success] out of cluster & in cluster, specify a fake kubeconfig, no credential file" ,
122
104
createFakeKubeConfig : true ,
123
105
kubeconfig : fakeKubeConfig ,
124
106
nodeID : "" ,
125
107
allowEmptyCloudConfig : true ,
126
- expectedErr : nil ,
108
+ expectError : false ,
127
109
},
128
110
{
129
111
desc : "[success] out of cluster & in cluster, no kubeconfig, a fake credential file" ,
130
112
createFakeCredFile : true ,
131
- kubeconfig : "" ,
132
113
nodeID : "" ,
133
114
userAgent : "useragent" ,
134
115
allowEmptyCloudConfig : true ,
135
- expectedErr : nil ,
116
+ expectError : false ,
136
117
},
137
118
}
138
119
120
+ var kubeClient kubernetes.Interface
139
121
for _ , test := range tests {
140
122
if test .createFakeKubeConfig {
141
123
if err := createTestFile (fakeKubeConfig ); err != nil {
@@ -150,6 +132,13 @@ users:
150
132
if err := os .WriteFile (fakeKubeConfig , []byte (fakeContent ), 0666 ); err != nil {
151
133
t .Error (err )
152
134
}
135
+
136
+ kubeClient , err = util .GetKubeClient (test .kubeconfig , 25.0 , 50 , "" )
137
+ if err != nil {
138
+ t .Error (err )
139
+ }
140
+ } else {
141
+ kubeClient = nil
153
142
}
154
143
if test .createFakeCredFile {
155
144
if err := createTestFile (fakeCredFile ); err != nil {
@@ -169,17 +158,13 @@ users:
169
158
}
170
159
os .Setenv (DefaultAzureCredentialFileEnv , fakeCredFile )
171
160
}
172
- kubeClient , err := util .GetKubeClient (test .kubeconfig , 25.0 , 50 , "" )
173
- if err != nil {
174
- if ! reflect .DeepEqual (err , test .expectedErr ) && test .expectedErr != nil && ! strings .Contains (err .Error (), test .expectedErr .Error ()) {
175
- t .Errorf ("desc: %s,\n input: %q, GetCloudProvider err: %v, expectedErr: %v" , test .desc , test .kubeconfig , err , test .expectedErr )
176
- }
177
- continue
178
- }
161
+
179
162
cloud , err := GetCloudProvider (context .Background (), kubeClient , test .nodeID , "" , "" , test .userAgent , test .allowEmptyCloudConfig )
180
- if ! reflect .DeepEqual (err , test .expectedErr ) && test .expectedErr != nil && ! strings .Contains (err .Error (), test .expectedErr .Error ()) {
181
- t .Errorf ("desc: %s,\n input: %q, GetCloudProvider err: %v, expectedErr: %v" , test .desc , test .kubeconfig , err , test .expectedErr )
163
+ assert .Equal (t , test .expectError , err != nil )
164
+ if test .expectError {
165
+ assert .Equal (t , test .expectedErrorMessage , err .Error ())
182
166
}
167
+
183
168
if cloud == nil {
184
169
t .Errorf ("return value of getCloudProvider should not be nil even there is error" )
185
170
} else {
0 commit comments