limgen
Version:
Infrastructure as Code generator
39 lines (33 loc) • 1.67 kB
text/troff
import * as pulumi from "@pulumi/pulumi";
import { VpcPublic } from "../../components/vpc-public";
import { LoadBalancerAlbPublic } from "../../components/lb-alb-public";
import { AppFargate } from "../../components/app-fargate";
import { CdnCloudFront } from "../../components/cdn-cloudfront";<% if (includeDb) { %>
import { PostgresRdsCluster } from "../../components/db-postgres-rds";<% } %><% if (includeStorage) { %>
import { StorageS3 } from "../../components/storage-s3";<% } %>
const publicVpc = new VpcPublic;
const lb = new LoadBalancerAlbPublic('LoadBalancer', {
vpc: publicVpc.vpc,
});
<% if (includeStorage) { %>
const storage = new StorageS3;<% } %><% if (includeDb) { %>
const db = new PostgresRdsCluster('Database', { vpc: publicVpc.vpc });<% } %>
const cdn = new CdnCloudFront('CDN', {
lb: lb.lb,<% if (includeStorage) { %>
storage: storage.bucket,<% } %>
});
const app = new AppFargate('App', {
vpc: publicVpc.vpc,
loadBalancer: lb.lb,
cdnHostname: cdn.distribution.domainName,<% if (includeDb) { %>
connectionStringSecret: db.connectionStringSecret, <% } %><% if (includeStorage) { %>
storage: storage.bucket,<% } %>
});
export const vpcId = publicVpc.vpc.vpcId;
export const publicSubnetIds = publicVpc.vpc.publicSubnetIds;
export const cluster = app.cluster.arn;
export const service = app.service.service.name;
export const cdnHostname = pulumi.interpolate`https://${cdn.distribution.domainName}`;<% if (includeStorage) { %>
export const objectStorageBucket = storage.bucket.bucket;<% } %><% if (includeDb) { %>
export const dbCluster = db.dbCluster.clusterIdentifier;
export const dbSecret = db.connectionStringSecret.arn;<% } %>