@@ -28,8 +28,8 @@ router.get('/metadata', function(req, res, next) {
2828
2929function getCloudMetadata ( callback ) {
3030 console . log ( 'getCloudMetadata' ) ;
31- // Try Openstack first
32- getOpenStackCloudMetadata ( function ( err , c , z ) {
31+ // Query k8s node api
32+ getK8sCloudMetadata ( function ( err , c , z ) {
3333 if ( err ) {
3434 // Try AWS next
3535 getAWSCloudMetadata ( function ( err , c , z ) {
@@ -40,10 +40,10 @@ function getCloudMetadata(callback) {
4040 // Try GCP next
4141 getGCPCloudMetadata ( function ( err , c , z ) {
4242 if ( err ) {
43- // Query k8s node api
44- getK8sCloudMetadata ( function ( err , c , z ) {
43+ // Try Openstack next
44+ getOpenStackCloudMetadata ( function ( err , c , z ) {
4545 // Return result regardless of error
46- callback ( c , z ) ; // Running against k8s api or unknown
46+ callback ( c , z ) ; // Running in OpenStack or unknown
4747 } ) ;
4848 } else {
4949 callback ( c , z ) ; // Running in GCP
@@ -58,7 +58,7 @@ function getCloudMetadata(callback) {
5858 }
5959 } ) ;
6060 } else {
61- callback ( c , z ) ; // Running in OpenStack
61+ callback ( c , z ) ; // Running against k8s api
6262 }
6363 } ) ;
6464}
@@ -345,6 +345,7 @@ function getK8sCloudMetadata(callback) {
345345
346346 try {
347347 var sa_token = fs . readFileSync ( '/var/run/secrets/kubernetes.io/serviceaccount/token' ) ;
348+ var ca_file = fs . readFileSync ( '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt' ) ;
348349 } catch ( err ) {
349350 console . log ( err )
350351 }
@@ -358,7 +359,7 @@ function getK8sCloudMetadata(callback) {
358359 port : 443 ,
359360 path : `/api/v1/nodes/${ node_name } ` ,
360361 timeout : 10000 ,
361- ca : fs . readFileSync ( '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt' ) ,
362+ ca : ca_file ,
362363 headers : headers ,
363364 } ;
364365
@@ -395,23 +396,27 @@ function getK8sCloudMetadata(callback) {
395396 console . log ( `RESULT: ${ metaData } ` ) ;
396397 console . log ( 'No more data in response.' ) ;
397398
398- if ( metaData . spec . providerID ) {
399- var provider = metaData . spec . providerID ;
400- cloudName = String ( provider . split ( ":" , 1 ) ) ; // Split on providerID if request was successful
401- }
402-
399+ if ( metaData . spec . providerID ) {
400+ var provider = metaData . spec . providerID ;
401+ cloudName = String ( provider . split ( ":" , 1 ) ) ; // Split on providerID if request was successful
402+ }
403403
404404 // use the annotation to identify the zone if available
405405 if ( metaData . metadata . labels [ 'failure-domain.beta.kubernetes.io/zone' ] ) {
406406 zone = metaData . metadata . labels [ 'failure-domain.beta.kubernetes.io/zone' ] . toLowerCase ( ) ;
407407
408408 }
409-
410- console . log ( `CLOUD: ${ cloudName } ` ) ;
411- console . log ( `ZONE: ${ zone } ` ) ;
412-
413409 // return CLOUD and ZONE data
414- callback ( null , cloudName , zone ) ;
410+ if ( cloudName == "unknown" ) {
411+ error = new Error ( `CloudName not found on node Spec` ) ;
412+ console . log ( error ) ;
413+ callback ( error , cloudName , zone ) ;
414+ }
415+ else {
416+ console . log ( `CLOUD: ${ cloudName } ` ) ;
417+ console . log ( `ZONE: ${ zone } ` ) ;
418+ callback ( null , cloudName , zone ) ;
419+ }
415420 } ) ;
416421
417422 } ) ;
0 commit comments