mr-krabs

1.1.0 • Public • Published

mr-krabs

mr-krabs

🦀 💰 A package to lower your AWS costs

Installation

  1. Make sure you have your AWS credentials correctly setup

  2. Install the module:

npm install --save mr-krabs

Usage

There are basically 2 ways of setting up the intended cluster and service name patterns:

1 - By providing a file called krabs.json at the root of your project:

{
  "clusterName": "demoClusterName",
  "sericeName": "demoServiceName"
}

2 - By providing the config at the function calls as the demo above

const mrKrabs = require('mr-krabs')
 
// DETAILS
function getDetailsOfDemoServices () {
  return mrKrabs.listClusters({ clusterName: 'demoCluster' })
    .then(([clusterName]) =>
      mrKrabs.listServices({ clusterName, serviceName: 'demoServiceName' })
        .then(servicesNames => mrKrabs.getServicesDetails(servicesNames, clusterName))
    )
}
 
// UPSCALE
function upscaleDemoServices () {
  return mrKrabs.listClusters({ clusterName: 'demoCluster' })
  .then(clusters =>
    Promise.all(
      clusters.map(clusterName =>
        mrKrabs.upScaleAllStoppedServices({ clusterName, serviceName: 'demoServiceName' })
      )
    )
  )
}
 
 
// DOWNSCALE
function downscaleDemoServices () {
  return mrKrabs.listClusters({ clusterName: 'demoCluster' })
    .then(clusters =>
      Promise.all(
        clusters.map(clusterName =>
          mrKrabs.downScaleAllRuningServices({ clusterName, serviceName: 'demoServiceName' })
        )
      )
    )
}
 
// Full flow of upscale and downscale all services of the defined clusters/services
getDetailsOfDemoServices()
  .then(before => {
    console.log('--- BEFORE ---')
    console.log(before)
    return upscaleDemoServices()
  })
  .then(getDetailsOfDemoServices)
  .then(middle => {
    console.log('--- MIDDLE ---')
    console.log(middle)
    return downscaleDemoServices()
  })
  .then(getDetailsOfDemoServices)
  .then(after => {
    console.log('--- AFTER ---')
    console.log(after)
  })

You can also mix settings by adding either the config file and supplying the config params, just keep in mind that the precendence order respectively function param and krabs.json.

## License

mr-krabs is MIT licensed.

Package Sidebar

Install

npm i mr-krabs

Weekly Downloads

2

Version

1.1.0

License

MIT

Unpacked Size

8.6 kB

Total Files

8

Last publish

Collaborators

  • pagarme-opensource
  • matheusvellone
  • lucianopf
  • marquinhoalm
  • zignd
  • andre.lsilva
  • bruno.mduarte
  • nathaliacrelier
  • jonasnt17
  • danielponde
  • joaovjs-pagarme
  • rpsantos1987
  • prifight
  • carolinaaguelera
  • gabrielpagarme
  • magnomoreira
  • otaviopace