UNPKG

@microbs.io/plugin-gke

Version:
47 lines (41 loc) 1.4 kB
// Third-party packages const quote = require('shell-quote').quote // Main packages const { config, logger, utils } = require('@microbs.io/core') // Regular expressions const RE_STATUS = new RegExp(/^status: (.*)/g, 'm') const describe = async () => { if (!config.get('deployment.name') || !config.get('plugins.gke.project_name') || !config.get('plugins.gke.region_name')) return null const projectName = config.get('plugins.gke.project_name') const regionName = config.get('plugins.gke.region_name') const deploymentName = config.get('deployment.name') const command = ` gcloud container clusters describe "microbs-${utils.sanitize(deploymentName)}" \\ --project "${utils.sanitize(projectName)}" \\ --region "${utils.sanitize(regionName)}" ` return utils.exec(command, true) } module.exports.describe = describe module.exports.status = async () => { const result = await describe() if (result.code > 0) { logger.error('Error from GKE:') logger.error('') logger.error(result.stderr || result.stdout) process.exit(1) } if (result.stderr) { // Return NOT_FOUND if (result.stderr.includes('Not found:')) return 'NOT_FOUND' } else { // Return RUNNING const status = result.stdout.match(RE_STATUS) if (status && status[1] == 'RUNNING') return 'RUNNING' } // Return unexpected result return result; }