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