gMaestro add-on for Amazon EKS Blueprints¶
This add-on deploys the gMaestro Agent on Amazon EKS using the eks-blueprints CDK construct.
gMaestro is a Kubernetes cost optimization solution that helps companies reduce spending on un-utilized resources by up to 60%. With gMaestro, you gain full visibility into K8s clusters, seamlessly interact with HPA scaling policies, and achieve your cost-performance goals by applying custom rightsizing recommendations based on actual usage in production.
This add-on will deploy gMaestro agent on a namespace of your choice and create it if it doesn't exist.
Prerequisites¶
Before using gMaestro, you need to: 1. Sign up to the gMaestro platform 2. Download a config YAML file - After signing up to gMaestro, navigate to the Deploy on the left-hand menu, fill in the required fields and click on "Generate Config File" as shown bellow:
- Create a secret (as a plaintext, not key/value) in AWS Secrets Manager:
export MAESTRO_CLIENT_ID="<MAESTRO_CLIENT_ID value from the deployment section in the downloaded config file>"
export MAESTRO_SECRET_NAME="<MAESTRO_SECRET_NAME your preferred secret name>"
aws secretsmanager create-secret --name <MAESTRO_SECRET_NAME> --region $AWS_REGION \
--description "Encrypted client ID for Granulate gMaestro" \
--secret-string "<MAESTRO_CLIENT_ID>"
Installation¶
Using npm:
$ npm i @granulate/gmaestro-eks-blueprints-addon
Usage¶
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import * as blueprints from '@aws-quickstart/eks-blueprints';
import {GmaestroAddOn} from '@granulate/gmaestro-eks-blueprints-addon';
const app = new cdk.App();
const addOn = new GmaestroAddOn({ // please see further section for parameter details
clientIdSecretName: "<MAESTRO_SECRET_NAME>",
clusterName: "<MAESTRO_SERVICE_NAME>",
createNamespace: <true/false>,
namespace: "<namespace>"
});
const blueprint = blueprints.EksBlueprint.builder()
.addOns(addOn)
.build(app, '<my-stack-name>');
Add-on Options¶
Option | Description | Default |
---|---|---|
clientIdSecretName |
Please assign the MAESTRO_SECRET_NAME value from section Prerequisites, step 3 above. |
|
clusterName |
Navigate to Deployment section in the downloaded config file and use the value of MAESTRO_SERVICE_NAME environment variable |
|
createNamespace |
Set to true if you want the CDK to create the namespace for you |
false |
namespace |
The namespace where gMaestro will be deployed | "default" |
Support¶
If you have questions about gMaestro, catch us on Slack!