infra/google/kubernetes/index.js
function (options, cb) {
		//call google api and get the machines
		let cluster = options.infra.stack;
		
		//Ref: https://cloud.google.com/compute/docs/reference/latest/instances/list
		let request = getConnector(options.infra.api);
		request.clusterId = cluster.id;
		request.filter = "name eq gke-" + cluster.id.substring(0, 19) + "-" + cluster.options.nodePoolId + "-.*";
		let response = {
			"env": options.soajs.registry.code,
			"stackId": cluster.id,
			"stackName": cluster.id,
			"templateProperties": {
				"region": cluster.options.zone
				//"keyPair": "keyPair" //todo: what is this for ????
			},
			"machines": [],
		};
		driver.checkZoneRegion(options, cluster.options.zone, true, (err, zones) => {
			if (err) {
				return cb(err)
			}
			//loop over all the zone ang get the ip of each location found in the zone
			//if zonal we only have to loop once
			async.each(zones, function (oneZone, callback) {
				request.zone = oneZone;
				v1Compute().instances.list(request, (error, instances) => {
					if (error) {
						return callback(error);
					}
					if (instances && instances.items) {
						//extract name and ip from response
						instances.items.forEach((oneInstance) => {
							let machineIP;
							
							oneInstance.networkInterfaces.forEach((oneNetInterface) => {
								if (oneNetInterface.accessConfigs) {
									oneNetInterface.accessConfigs.forEach((oneAC) => {
										if (oneAC.name === 'external-nat') {
											machineIP = oneAC.natIP;
										}
									});
								}
							});
							
							if (machineIP) {
								response.machines.push({
									"name": oneInstance.name,
									"ip": machineIP,
									"zone": oneZone
								});
							}
						});
					}
					callback();
				});
			}, function (err) {
				if (err) {
					return cb(err)
				} else {
					return cb(null, response);
				}
			});
		});
	}
function (options, cb) {
		//call google api and get the machines
		let cluster = options.infra.stack;
		
		//Ref: https://cloud.google.com/compute/docs/reference/latest/instances/list
		let request = getConnector(options.infra.api);
		request.clusterId = cluster.id;
		request.filter = "name eq gke-" + cluster.id.substring(0, 19) + "-" + cluster.options.nodePoolId + "-.*";
		let response = {
			"env": options.soajs.registry.code,
			"stackId": cluster.id,
			"stackName": cluster.id,
			"templateProperties": {
				"region": cluster.options.zone
				//"keyPair": "keyPair" //todo: what is this for ????
			},
			"machines": [],
		};
		driver.checkZoneRegion(options, cluster.options.zone, true, (err, zones) => {
			if (err) {
				return cb(err)
			}
			//loop over all the zone ang get the ip of each location found in the zone
			//if zonal we only have to loop once
			async.each(zones, function (oneZone, callback) {
				request.zone = oneZone;
				v1Compute().instances.list(request, (error, instances) => {
					if (error) {
						return callback(error);
					}
					if (instances && instances.items) {
						//extract name and ip from response
						instances.items.forEach((oneInstance) => {
							let machineIP;
							
							oneInstance.networkInterfaces.forEach((oneNetInterface) => {
								if (oneNetInterface.accessConfigs) {
									oneNetInterface.accessConfigs.forEach((oneAC) => {
										if (oneAC.name === 'external-nat') {
											machineIP = oneAC.natIP;
										}
									});
								}
							});
							
							if (machineIP) {
								response.machines.push({
									"name": oneInstance.name,
									"ip": machineIP,
									"zone": oneZone
								});
							}
						});
					}
					callback();
				});
			}, function (err) {
				if (err) {
					return cb(err)
				} else {
					return cb(null, response);
				}
			});
		});
	}
function ( options , cb ) { //call google api and get the machines let cluster = options . infra . stack ; //Ref: https://cloud.google.com/compute/docs/reference/latest/instances/list let request = getConnector ( options . infra . api ) ; request . clusterId = cluster . id ; request . filter = "name eq gke-" + cluster . id . substring ( 0 , 19 ) + "-" + cluster . options . nodePoolId + "-.*" ; let response = { "env" : options . soajs . registry . code , "stackId" : cluster . id , "stackName" : cluster . id , "templateProperties" : { "region" : cluster . options . zone //"keyPair": "keyPair" //todo: what is this for ???? } , "machines" : [ ] , } ; driver . checkZoneRegion ( options , cluster . options . zone , true , ( err , zones ) => { if ( err ) { return cb ( err ) } //loop over all the zone ang get the ip of each location found in the zone //if zonal we only have to loop once async . each ( zones , function ( oneZone , callback ) { request . zone = oneZone ; v1Compute ( ) . instances . list ( request , ( error , instances ) => { if ( error ) { return callback ( error ) ; } if ( instances && instances . items ) { //extract name and ip from response instances . items . forEach ( ( oneInstance ) => { let machineIP ; oneInstance . networkInterfaces . forEach ( ( oneNetInterface ) => { if ( oneNetInterface . accessConfigs ) { oneNetInterface . accessConfigs . forEach ( ( oneAC ) => { if ( oneAC . name === 'external-nat' ) { machineIP = oneAC . natIP ; } } ) ; } } ) ; if ( machineIP ) { response . machines . push ( { "name" : oneInstance . name , "ip" : machineIP , "zone" : oneZone } ) ; } } ) ; } callback ( ) ; } ) ; } , function ( err ) { if ( err ) { return cb ( err ) } else { return cb ( null , response ) ; } } ) ; } ) ; }
This method returns the project cluster id and zone that was used to create a deployment at the google.

@param options
@param cb
This method returns the project cluster id and zone that was used to create a deployment at the google .