mirror of
https://github.com/Sea-Haven-Industries/open-swe.git
synced 2026-10-02 06:13:16 +00:00
36 lines
1 KiB
TypeScript
36 lines
1 KiB
TypeScript
|
|
#!/usr/bin/env node
|
||
|
|
import "source-map-support/register";
|
||
|
|
import * as cdk from "aws-cdk-lib";
|
||
|
|
import { ACCOUNT, REGION } from "../lib/config";
|
||
|
|
import { OpenSweIamStack } from "../lib/open-swe-iam-stack";
|
||
|
|
import { OpenSweStack } from "../lib/open-swe-stack";
|
||
|
|
import { KebabNamingAspect } from "../lib/aspects/kebab-naming-aspect";
|
||
|
|
|
||
|
|
const app = new cdk.App();
|
||
|
|
const env = { account: ACCOUNT, region: REGION };
|
||
|
|
|
||
|
|
// Account-level shared OIDC deploy roles (singletons). Deployed FIRST.
|
||
|
|
new OpenSweIamStack(app, "OpenSweIamStack", {
|
||
|
|
stackName: "open-swe-iam",
|
||
|
|
env,
|
||
|
|
});
|
||
|
|
|
||
|
|
// The two env stacks — explicit kebab-case stackName (never let CDK default to
|
||
|
|
// PascalCase), env-parameterised so resources are `open-swe-<env>-*`.
|
||
|
|
new OpenSweStack(app, "OpenSweDevStack", {
|
||
|
|
stackName: "open-swe-dev",
|
||
|
|
env,
|
||
|
|
envName: "dev",
|
||
|
|
});
|
||
|
|
|
||
|
|
new OpenSweStack(app, "OpenSweProdStack", {
|
||
|
|
stackName: "open-swe-prod",
|
||
|
|
env,
|
||
|
|
envName: "prod",
|
||
|
|
});
|
||
|
|
|
||
|
|
// Fail synth on any non-kebab-case explicit resource/stack name.
|
||
|
|
cdk.Aspects.of(app).add(new KebabNamingAspect());
|
||
|
|
|
||
|
|
app.synth();
|