@@ -150,6 +150,96 @@ describe('KubeConfig', () => {
150
150
const userOut = kc . getCurrentUser ( ) ;
151
151
expect ( userOut ) . to . equal ( user ) ;
152
152
} ) ;
153
+
154
+ } ) ;
155
+
156
+ describe ( 'loadFromCluster' , ( ) => {
157
+ let originalTokenPath : string | undefined ;
158
+ let originalCaFilePath : string | undefined ;
159
+
160
+ before ( ( ) => {
161
+ originalTokenPath = process . env [ 'TOKEN_FILE_PATH' ] ;
162
+ originalCaFilePath = process . env [ 'KUBERNETES_CA_FILE_PATH' ]
163
+
164
+ delete process . env [ 'TOKEN_FILE_PATH' ]
165
+ delete process . env [ 'KUBERNETES_CA_FILE_PATH' ]
166
+ } )
167
+
168
+ after ( ( ) => {
169
+
170
+ delete process . env [ 'TOKEN_FILE_PATH' ]
171
+ delete process . env [ 'KUBERNETES_CA_FILE_PATH' ]
172
+
173
+ if ( originalTokenPath ) {
174
+ process . env [ 'TOKEN_FILE_PATH' ] = originalTokenPath
175
+ }
176
+
177
+ if ( originalCaFilePath ) {
178
+ process . env [ 'KUBERNETES_CA_FILE_PATH' ] = originalCaFilePath
179
+ }
180
+ } )
181
+
182
+ it ( 'should load from default env vars' , ( ) => {
183
+ const kc = new KubeConfig ( ) ;
184
+ const cluster = {
185
+ name : 'inCluster' ,
186
+ server : 'https://undefined:undefined' ,
187
+ skipTLSVerify : false ,
188
+ caFile : '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'
189
+ } as Cluster ;
190
+
191
+ const user = {
192
+ authProvider : {
193
+ name : 'tokenFile' ,
194
+ config : {
195
+ tokenFile : '/var/run/secrets/kubernetes.io/serviceaccount/token'
196
+ }
197
+ } ,
198
+ name : 'inClusterUser'
199
+ } as User ;
200
+
201
+ kc . loadFromCluster ( ) ;
202
+
203
+ const clusterOut = kc . getCurrentCluster ( ) ;
204
+
205
+ expect ( cluster ) . to . deep . equals ( clusterOut )
206
+
207
+ const userOut = kc . getCurrentUser ( ) ;
208
+ expect ( userOut ) . to . deep . equals ( user ) ;
209
+ } ) ;
210
+
211
+ it ( 'should support custom token file path' , ( ) => {
212
+ const kc = new KubeConfig ( ) ;
213
+ process . env [ 'TOKEN_FILE_PATH' ] = '/etc/tokenFile'
214
+ process . env [ 'KUBERNETES_CA_FILE_PATH' ] = '/etc/ca.crt'
215
+
216
+ const cluster = {
217
+ name : 'inCluster' ,
218
+ server : 'https://undefined:undefined' ,
219
+ skipTLSVerify : false ,
220
+ caFile : '/etc/ca.crt'
221
+ } as Cluster ;
222
+
223
+ const user = {
224
+ authProvider : {
225
+ name : 'tokenFile' ,
226
+ config : {
227
+ tokenFile : '/etc/tokenFile'
228
+ }
229
+ } ,
230
+ name : 'inClusterUser'
231
+ } as User ;
232
+
233
+ kc . loadFromCluster ( ) ;
234
+
235
+ const clusterOut = kc . getCurrentCluster ( ) ;
236
+
237
+ expect ( cluster ) . to . deep . equals ( clusterOut )
238
+
239
+ const userOut = kc . getCurrentUser ( ) ;
240
+ expect ( userOut ) . to . deep . equals ( user ) ;
241
+ } ) ;
242
+
153
243
} ) ;
154
244
155
245
describe ( 'clusterConstructor' , ( ) => {
@@ -490,6 +580,7 @@ describe('KubeConfig', () => {
490
580
originalEnvVars . USERPROFILE = process . env . USERPROFILE ;
491
581
originalEnvVars . HOMEDRIVE = process . env . HOMEDRIVE ;
492
582
originalEnvVars . HOMEPATH = process . env . HOMEPATH ;
583
+
493
584
494
585
delete process . env . HOME ;
495
586
delete process . env . USERPROFILE ;
0 commit comments