Skip to content

Instantly share code, notes, and snippets.

@ahmad2x4
ahmad2x4 / pulumi-infra-index-10.ts
Created May 18, 2020 00:23
Pulumi sample infra source code part 10
const tfenvtest = new aws.elasticbeanstalk.Environment("webapp-env", {
application: app,
version: defaultApplicationVersion,
solutionStackName: "64bit Amazon Linux 2018.03 v4.13.1 running Node.js",
settings: [
{
name: "VPCId",
namespace: "aws:ec2:vpc",
value: vpc.id,
},
@ahmad2x4
ahmad2x4 / pulumi-infra-index-09.ts
Created May 18, 2020 00:22
Pulumi sample infra source code part 9
// SQL CONNECTION STRING
export const connectionString = pulumi
.all([rds.address, rds.port])
.apply(
([serverName, port]) =>
`Server=${serverName},${port};uid=admin;pwd=${dbPassword};`
);
@ahmad2x4
ahmad2x4 / pulumi-infra-index-08.ts
Created May 18, 2020 00:22
Pulumi sample infra source code part 8
const defaultApplicationVersion = new aws.elasticbeanstalk.ApplicationVersion(
"default",
{
application: app,
bucket: ebAppDeployBucket.id,
description: "Version 0.1",
key: ebAppDeployObject.id,
}
);
@ahmad2x4
ahmad2x4 / pulumi-infra-index-07.ts
Created May 18, 2020 00:21
Pulumi sample infra source code part 7
// CREATE BEANSTALK APPLICATION
const app = new aws.elasticbeanstalk.Application(`webapp`, {
name: `webapp`,
});
@ahmad2x4
ahmad2x4 / pulumi-infra-index-06.ts
Created May 18, 2020 00:21
Pulumi sample infra source code part 6
const instanceProfile = new aws.iam.InstanceProfile("eb-ec2-instance-profile", {
role: instanceProfileRole.name,
});
@ahmad2x4
ahmad2x4 / pulumi-infra-index-05.ts
Created May 18, 2020 00:20
Pulumi sample infra source code part 5
const instanceProfileRole = new aws.iam.Role("eb-ec2-role", {
name: "eb-ec2-role",
description: "Role for EC2 managed by EB",
assumeRolePolicy: pulumi.interpolate`{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "ec2.amazonaws.com"
@ahmad2x4
ahmad2x4 / pulumi-infra-index-04.ts
Created May 18, 2020 00:19
Pulumi sample infra source code part 4
const ebAppDeployBucket = new aws.s3.Bucket("eb-app-deploy", {});
const ebAppDeployObject = new aws.s3.BucketObject("default", {
bucket: ebAppDeployBucket.id,
key: "deployment.zip",
source: new pulumi.asset.FileAsset("../deployment.zip"),
});
@ahmad2x4
ahmad2x4 / pulumi-infra-index-03.ts
Created May 18, 2020 00:19
Pulumi sample infra source code part 3
const rds = new aws.rds.Instance(`database-dev`, {
engine: "sqlserver-ex",
username: "admin",
password: dbPassword,
instanceClass: "db.t2.micro",
allocatedStorage: 20,
skipFinalSnapshot: true,
publiclyAccessible: false,
// For a VPC cluster, you will also need the following:
dbSubnetGroupName: dbSubnets.id,
@ahmad2x4
ahmad2x4 / pulumi-infra-index-02.ts
Created May 18, 2020 00:18
Pulumi sample infra source code part 2
const rdsSecurityGroup = new aws.ec2.SecurityGroup(`dbsecgrp`, {
vpcId: vpc.id,
ingress: [
{
protocol: "tcp",
fromPort: 1433,
toPort: 1433,
cidrBlocks: [vpc.vpc.cidrBlock],
},
],
@ahmad2x4
ahmad2x4 / pulumi-infra-index-01.ts
Created May 18, 2020 00:15
Pulumi sample infra source code part 1
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";
const config = new pulumi.Config();
const dbPassword = config.require("dbPassword");
// Allocate a new VPC with the default settings:
const vpc = new awsx.ec2.Vpc("custom");