@storm-software/pulumi-tools
Version:
Tools for managing Pulumi infrastructure within a Nx workspace.
121 lines (110 loc) • 3.76 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _chunkQDPXTR73js = require('./chunk-QDPXTR73.js');
// src/lib/aws/providers.ts
var _aws = require('@pulumi/aws'); var aws = _interopRequireWildcard(_aws);
var _pulumi = require('@pulumi/pulumi'); var pulumi = _interopRequireWildcard(_pulumi);
var _defu = require('defu'); var _defu2 = _interopRequireDefault(_defu);
function getAWSTemplateName() {
return _chunkQDPXTR73js.getCloudTemplateName.call(void 0, "aws" /* AWS */);
}
function getProviderOpts(scope = "storm-cloud") {
const config = new pulumi.Config("aws");
const providerOpts = {
provider: new aws.Provider(getAWSTemplateName(), {
region: config.require("aws_region")
}),
scope,
zone: config.get("aws_zone") || "us-east-1a"
};
return providerOpts;
}
var size = aws.ec2.InstanceType.T2_Micro;
function vpc(opts = getProviderOpts(), appId = "default", override = {}) {
return new aws.ec2.DefaultVpc(
`${opts.scope}-${appId}-${opts.zone}-vpc`,
_defu2.default.call(void 0,
{
tags: {
Scope: opts.scope,
Name: `${opts.scope}-${appId}-vpc`,
AppId: appId
}
},
override
),
opts
);
}
function subnet(opts = getProviderOpts(), appId = "default", override = {}) {
return new aws.ec2.DefaultSubnet(
`${opts.scope}-${appId}-${opts.zone}-subnet`,
_defu2.default.call(void 0,
{
availabilityZone: opts.zone,
tags: {
Scope: opts.scope,
Name: `${opts.scope}-${appId}-${opts.zone}-subnet`,
AppId: appId
}
},
override
),
opts
);
}
function securityGroup(vpc2, opts = getProviderOpts(), appId = "default", override = {}) {
return new aws.ec2.SecurityGroup(
`${opts.scope}-${appId}-${opts.zone}-sg`,
_defu2.default.call(void 0,
{
vpcId: vpc2.id,
description: `Enable HTTP access for ${appId === "default" ? opts.scope : appId !== opts.scope ? `${opts.scope}-${appId}` : opts.scope}`,
ingress: [
{
protocol: aws.ec2.TCPProtocol,
fromPort: 80,
toPort: 80,
cidrBlocks: ["0.0.0.0/0"]
}
],
tags: {
Scope: opts.scope,
Name: `${opts.scope}-${appId}-sg`,
AppId: appId
}
},
override
),
opts
);
}
function ec2Instance(vpc2, subnet2, securityGroup2, opts = getProviderOpts(), appId = "default", override = {}) {
return new aws.ec2.Instance(
`${opts.scope}-${appId}-${opts.zone}-ec2`,
_defu2.default.call(void 0,
{
instanceType: size,
ami: aws.ec2.getAmi({
mostRecent: true,
owners: ["amazon"],
filters: [
{
name: "name",
values: ["amzn2-ami-hvm-*-x86_64-gp2"]
}
]
}).then((ami) => ami.id),
subnetId: subnet2.id,
vpcSecurityGroupIds: [securityGroup2.id],
tags: {
Scope: opts.scope,
Name: `${opts.scope}-${appId}-ec2`,
AppId: appId
}
},
override
),
opts
);
}
exports.getAWSTemplateName = getAWSTemplateName; exports.getProviderOpts = getProviderOpts; exports.vpc = vpc; exports.subnet = subnet; exports.securityGroup = securityGroup; exports.ec2Instance = ec2Instance;