@@ -150,6 +150,96 @@ describe('KubeConfig', () => {
150150 const userOut = kc . getCurrentUser ( ) ;
151151 expect ( userOut ) . to . equal ( user ) ;
152152 } ) ;
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+
153243 } ) ;
154244
155245 describe ( 'clusterConstructor' , ( ) => {
@@ -490,6 +580,7 @@ describe('KubeConfig', () => {
490580 originalEnvVars . USERPROFILE = process . env . USERPROFILE ;
491581 originalEnvVars . HOMEDRIVE = process . env . HOMEDRIVE ;
492582 originalEnvVars . HOMEPATH = process . env . HOMEPATH ;
583+
493584
494585 delete process . env . HOME ;
495586 delete process . env . USERPROFILE ;
0 commit comments