UNPKG

@storm-software/pulumi-tools

Version:

Tools for managing Pulumi infrastructure within a Nx workspace.

121 lines (110 loc) 3.76 kB
"use strict";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;