Skip to content

Commit 9853f57

Browse files
committed
added: cdk-nag, changed @type source, removed package-lock, using SingleNodeConstruct, added a cloudwatch dashboard, tests for CloudWatch added
1 parent 8415f6b commit 9853f57

File tree

5 files changed

+741
-125
lines changed

5 files changed

+741
-125
lines changed

lib/allora/lib/allora-stack.ts

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ import * as path from 'path';
99
import * as nag from "cdk-nag";
1010
import * as iam from "aws-cdk-lib/aws-iam";
1111
import * as configTypes from "../../constructs/config.interface";
12+
import * as nodeCwDashboard from "./assets/node-cw-dashboard"
13+
import * as cw from 'aws-cdk-lib/aws-cloudwatch';
1214

15+
interface AlloraStackEnvironment extends cdk.Environment {
16+
account: string;
17+
region: string;
18+
}
1319

1420
export interface AlloraStackProps extends cdk.StackProps {
1521
amiId: string;
@@ -19,19 +25,18 @@ export interface AlloraStackProps extends cdk.StackProps {
1925
vpcSubnetCidrMask: number;
2026
resourceNamePrefix: string;
2127
dataVolume: configTypes.DataVolumeConfig;
28+
env: AlloraStackEnvironment
2229
}
2330

2431

2532
export class AlloraStack extends cdk.Stack {
26-
constructor(scope: Construct, id: string, props?: AlloraStackProps) {
33+
constructor(scope: Construct, id: string, props: AlloraStackProps) {
2734
super(scope, id, props);
2835

29-
// Parameters
30-
const region = props?.env?.region || 'us-east-1';
31-
const amiId = props?.amiId || 'ami-04b70fa74e45c3917';
32-
const instanceType = props?.instanceType || 't2.medium';
33-
const resourceNamePrefix = props?.resourceNamePrefix || 'AlloraWorkerx';
34-
const dataVolume = props?.dataVolume;
36+
const {
37+
env, amiId, instanceType, resourceNamePrefix, dataVolume
38+
} = props;
39+
const { region } = env;
3540

3641

3742

@@ -107,7 +112,18 @@ export class AlloraStack extends cdk.Stack {
107112

108113
const instance = singleNode.instance;
109114

110-
instance.addUserData(ec2UserData)
115+
instance.addUserData(ec2UserData.render())
116+
117+
const dashboardString = cdk.Fn.sub(JSON.stringify(nodeCwDashboard.SyncNodeCWDashboardJSON()), {
118+
INSTANCE_ID: singleNode.instanceId,
119+
INSTANCE_NAME: `${resourceNamePrefix}Instance`,
120+
REGION: region,
121+
})
122+
123+
new cw.CfnDashboard(this, 'single-cw-dashboard', {
124+
dashboardName: `AlloraStack-${singleNode.instanceId}`,
125+
dashboardBody: dashboardString,
126+
});
111127

112128
// Elastic IP
113129
const eip = new ec2.CfnEIP(this, `${resourceNamePrefix}EIP`);

0 commit comments

Comments
 (0)