Skip to content

Commit

Permalink
Merge pull request #18 from prudhvigodithi/main
Browse files Browse the repository at this point in the history
Add a new cloud watch trigger rule
  • Loading branch information
bshien authored Apr 3, 2024
2 parents 22b889f + 6b2f9dc commit 5ced6c6
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 20 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ dependencies {
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.3'
implementation 'org.opensearch.client:opensearch-rest-high-level-client:2.11.0'
implementation 'org.apache.httpcomponents.client5:httpclient5:5.2.1'
implementation 'software.amazon.awssdk:sts:2.21.33'
implementation 'software.amazon.awssdk:sts:2.25.21'
implementation 'io.github.acm19:aws-request-signing-apache-interceptor:2.3.1'

implementation 'com.amazonaws:aws-lambda-java-core:1.2.3'
Expand Down
8 changes: 7 additions & 1 deletion infrastructure/lib/stacks/metricsWorkflow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,16 @@ export class OpenSearchMetricsWorkflowStack extends Stack {
stateMachineName: 'OpenSearchMetricsWorkflow'
})

new Rule(this, 'MetricsWorkflow', {
new Rule(this, 'MetricsWorkflow-11AM-PDT', {
schedule: Schedule.expression('cron(0 18 * * ? *)'),
targets: [new SfnStateMachine(opensearchMetricsWorkflow)],
});

// This rule is to ensure OpenSearch Dashboards does not show 0 values in visualizations when used now/d-now-1/d
new Rule(this, 'MetricsWorkflow-12AM-PDT', {
schedule: Schedule.expression('cron(0 7 * * ? *)'),
targets: [new SfnStateMachine(opensearchMetricsWorkflow)],
});
}

private createMetricsTask(scope: Construct, opensearchDomainStack: OpenSearchDomainStack,
Expand Down
3 changes: 2 additions & 1 deletion infrastructure/lib/stacks/opensearchNginxProxyReadonly.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {Aspects, Duration, Stack, Tag, Tags} from 'aws-cdk-lib';
import { Construct } from 'constructs';
import {
ApplicationLoadBalancer, ApplicationProtocol,
ListenerCertificate,
ListenerCertificate, SslPolicy,
} from "aws-cdk-lib/aws-elasticloadbalancingv2";
import Project from "../enums/project";
import {Effect, ManagedPolicy, PolicyStatement, Role, ServicePrincipal} from "aws-cdk-lib/aws-iam";
Expand Down Expand Up @@ -101,6 +101,7 @@ export class OpenSearchMetricsNginxReadonly extends Stack {
const listener = openSearchApplicationLoadBalancer.addListener(`OpenSearchMetricsReadonly-NginxProxyAlbListener`, {
port: 443,
protocol: ApplicationProtocol.HTTPS,
sslPolicy: SslPolicy.RECOMMENDED_TLS,
certificates: [listenerCertificate]
});

Expand Down
17 changes: 0 additions & 17 deletions infrastructure/test/infrastructure.test.ts

This file was deleted.

30 changes: 30 additions & 0 deletions infrastructure/test/opensearch-stack.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// import * as cdk from 'aws-cdk-lib';
// import { Template } from 'aws-cdk-lib/assertions';
// import * as Infrastructure from '../lib/infrastructure-stack';

// example test. To run these tests, uncomment this file along with the
// example resource in lib/infrastructure-stack.ts
import {App} from "aws-cdk-lib";
import {Template} from "aws-cdk-lib/assertions";
import {OpenSearchDomainStack} from "../lib/stacks/opensearch";
import {ArnPrincipal} from "aws-cdk-lib/aws-iam";
import Project from "../lib/enums/project";
import {VpcStack} from "../lib/stacks/vpc";

test('OpenSearchDomain Stack Test', () => {
const app = new App();
const openSearchDomainStack = new OpenSearchDomainStack(app, 'Test-OpenSearchHealth-OpenSearch', {
region: "us-east-1",
account: "test-account",
vpcStack: new VpcStack(app, 'Test-OpenSearchHealth-VPC', {}),
enableNginxCognito: true,
jenkinsAccess: {
jenkinsAccountRoles: [
new ArnPrincipal(Project.JENKINS_MASTER_ROLE),
new ArnPrincipal(Project.JENKINS_AGENT_ROLE)
]
}
});
const openSearchDomainStackTemplate = Template.fromStack(openSearchDomainStack);
openSearchDomainStackTemplate.resourceCountIs('AWS::IAM::Role', 8);
});
17 changes: 17 additions & 0 deletions infrastructure/test/vpc-stack.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// import * as cdk from 'aws-cdk-lib';
// import { Template } from 'aws-cdk-lib/assertions';
// import * as Infrastructure from '../lib/infrastructure-stack';

// example test. To run these tests, uncomment this file along with the
// example resource in lib/infrastructure-stack.ts
import {App} from "aws-cdk-lib";
import {Template} from "aws-cdk-lib/assertions";
import {VpcStack} from "../lib/stacks/vpc";

test('VPC Stack Test', () => {
const app = new App();
const vpcStack = new VpcStack(app, 'Test-OpenSearchHealth-VPC', {});
const vpcStackTemplate = Template.fromStack(vpcStack);
vpcStackTemplate.resourceCountIs('AWS::EC2::VPC', 1);
vpcStackTemplate.resourceCountIs('AWS::EC2::Subnet', 4);
});

0 comments on commit 5ced6c6

Please sign in to comment.