@@ -152,6 +152,93 @@ describe('KubeConfig', () => {
152152 } ) ;
153153 } ) ;
154154
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+
155242 describe ( 'clusterConstructor' , ( ) => {
156243 it ( 'should load from options' , ( ) => {
157244 const cluster = {
0 commit comments