Skip to content

Commit

Permalink
Fixup StackReference Architecture example (pulumi#547)
Browse files Browse the repository at this point in the history
Fixes: pulumi#544
  • Loading branch information
stack72 committed Feb 11, 2020
1 parent d571608 commit 1e37d9c
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 67 deletions.
4 changes: 2 additions & 2 deletions aws-stackreference-architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,13 @@ between the system:
e.g. `myUsername/multicloud/dev`:

```bash
pulumi config set networkingStack stack72/networking-stack/dev
pulumi config set networkingStack stack72/networking-layer/dev
```

If you wish to specify an initial database name in the RDS Instance, then you can do so by setting the following:

```bash
pulumi config set dbName myDatabseName
pulumi config set dbName myDatbaseName
```

1. Deploy the database stack
Expand Down
124 changes: 59 additions & 65 deletions aws-stackreference-architecture/networking/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,69 +2,63 @@ import { Config, getStack } from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import {Vpc} from "./vpc";

async function main() {
const config = new Config();

const azCount = config.getNumber("azCount") || 2;

const baseTags = {
ManagedBy: "Pulumi",
PulumiStack: getStack(),
};
const availabilityZones = aws.getAvailabilityZones({
state: "available",
}, { async: true });

const appVpc = new Vpc("app-vpc", {
description: `${baseTags.ManagedBy} App VPC`,
baseTags: baseTags,

baseCidr: "172.28.0.0/16",
availabilityZoneNames: availabilityZones.names.slice(0, azCount),
enableFlowLogs: true,

endpoints: {
s3: true,
dynamodb: true,
},
});

const dataVpc = new Vpc("data-vpc", {
description: `${baseTags.ManagedBy} Data VPC`,
baseTags: baseTags,

baseCidr: "172.18.0.0/16",
availabilityZoneNames: availabilityZones.names.slice(0, azCount),
enableFlowLogs: true,

endpoints: {
s3: true,
dynamodb: true,
},
});

appVpc.configurePeering({
peerVpc: dataVpc,
nameTag: `${baseTags.ManagedBy} Peer App to Data`,
routeSubnets: "private",
});

const peeredSg = dataVpc.createPeeredSecurityGroup({
peeredVpc: appVpc,
});

return {
appVpcId: appVpc.vpcId(),
appVpcPrivateSubnetIds: appVpc.privateSubnetIds(),
appVpcPublicSubnetIds: appVpc.publicSubnetIds(),

dataVpcId: dataVpc.vpcId(),
dataVpcPrivateSubnetIds: dataVpc.privateSubnetIds(),
dataVpcPublicSubnetIds: dataVpc.publicSubnetIds(),

peeredSecurityGroupId: peeredSg,
};
}

module.exports = main();
const config = new Config();

const azCount = config.getNumber("azCount") || 2;

const baseTags = {
ManagedBy: "Pulumi",
PulumiStack: getStack(),
};
const availabilityZones = aws.getAvailabilityZones({
state: "available",
});

const appVpc = new Vpc("app-vpc", {
description: `${baseTags.ManagedBy} App VPC`,
baseTags: baseTags,

baseCidr: "172.28.0.0/16",
availabilityZoneNames: availabilityZones.names.slice(0, azCount),
enableFlowLogs: true,

endpoints: {
s3: true,
dynamodb: true,
},
});

const dataVpc = new Vpc("data-vpc", {
description: `${baseTags.ManagedBy} Data VPC`,
baseTags: baseTags,

baseCidr: "172.18.0.0/16",
availabilityZoneNames: availabilityZones.names.slice(0, azCount),
enableFlowLogs: true,

endpoints: {
s3: true,
dynamodb: true,
},
});

appVpc.configurePeering({
peerVpc: dataVpc,
nameTag: `${baseTags.ManagedBy} Peer App to Data`,
routeSubnets: "private",
});

const peeredSg = dataVpc.createPeeredSecurityGroup({
peeredVpc: appVpc,
});

export const appVpcId = appVpc.vpcId();
export const appVpcPrivateSubnetIds = appVpc.privateSubnetIds();
export const appVpcPublicSubnetIds = appVpc.publicSubnetIds();

export const dataVpcId = dataVpc.vpcId();
export const dataVpcPrivateSubnetIds = dataVpc.privateSubnetIds();
export const dataVpcPublicSubnetIds = dataVpc.publicSubnetIds();

export const peeredSecurityGroupId = peeredSg;

0 comments on commit 1e37d9c

Please sign in to comment.