Skip to content

Instantly share code, notes, and snippets.

@hmarcelodn
Created December 22, 2021 22:04
Show Gist options
  • Select an option

  • Save hmarcelodn/76582d9fa2ebd6b419470fb9cc294044 to your computer and use it in GitHub Desktop.

Select an option

Save hmarcelodn/76582d9fa2ebd6b419470fb9cc294044 to your computer and use it in GitHub Desktop.
#-------------------------------
# AWS Provider
#-------------------------------
provider "aws" {
profile = "default"
region = "us-east-2"
}
#-------------------------------
# Elastic Beanstalk Application
#-------------------------------
resource "aws_elastic_beanstalk_application" "mudbay-application" {
name = "mudbay-storeops-application"
description = "mudbay-storeops-application"
tags = {
Name = "mudbay-storeops-application"
}
}
#-------------------------------
# Elastic Beanstalk Environment
#-------------------------------
resource "aws_elastic_beanstalk_environment" "mudbay-environment" {
name = "development"
application = aws_elastic_beanstalk_application.mudbay-application.name
solution_stack_name = "64bit Amazon Linux 2 v5.3.1 running Node.js 14"
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "aws-elasticbeanstalk-ec2-role"
}
setting {
namespace = "aws:elb:listener:443"
name = "ListenerProtocol"
value = "HTTPS"
}
setting {
namespace = "aws:elb:listener:443"
name = "InstancePort"
value = 80
}
setting {
namespace = "aws:elb:listener:443"
name = "InstanceProtocol"
value = "HTTP"
}
setting {
namespace = "aws:elb:listener:443"
name = "SSLCertificateId"
value = ""
}
setting {
namespace = "aws:elb:listener:443"
name = "ListenerEnabled"
value = true
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_ID"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_SECRET"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_USERINFO_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_TOKEN_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_WELLKNOWN_URL"
value = "n"
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CALLBACK_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_DSN"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_ENVIRONMENT_TAG"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_CONSUMER_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_USERNAME"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_LOGIN_AUDIENCE"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_ENDPOINT"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "ENCRYPTION_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "CORS_DOMAIN"
value = ""
}
}
resource "aws_elastic_beanstalk_environment" "mudbay-environment-uat" {
name = "stage"
application = aws_elastic_beanstalk_application.mudbay-application.name
solution_stack_name = "64bit Amazon Linux 2 v5.3.1 running Node.js 14"
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "aws-elasticbeanstalk-ec2-role"
}
setting {
namespace = "aws:elb:listener:443"
name = "ListenerProtocol"
value = "HTTPS"
}
setting {
namespace = "aws:elb:listener:443"
name = "InstancePort"
value = 80
}
setting {
namespace = "aws:elb:listener:443"
name = "InstanceProtocol"
value = "HTTP"
}
setting {
namespace = "aws:elb:listener:443"
name = "SSLCertificateId"
value = ""
}
setting {
namespace = "aws:elb:listener:443"
name = "ListenerEnabled"
value = true
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_ID"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_SECRET"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_USERINFO_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_TOKEN_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_WELLKNOWN_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CALLBACK_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_DSN"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_ENVIRONMENT_TAG"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_CONSUMER_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_USERNAME"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_LOGIN_AUDIENCE"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_ENDPOINT"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "ENCRYPTION_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "CORS_DOMAIN"
value = ""
}
}
resource "aws_elastic_beanstalk_environment" "mudbay-environment-prod" {
name = "prod"
application = aws_elastic_beanstalk_application.mudbay-application.name
solution_stack_name = "64bit Amazon Linux 2 v5.3.1 running Node.js 14"
setting {
namespace = "aws:autoscaling:launchconfiguration"
name = "IamInstanceProfile"
value = "aws-elasticbeanstalk-ec2-role"
}
setting {
namespace = "aws:elasticbeanstalk:command"
name = "DeploymentPolicy"
value = "Rolling"
}
setting {
namespace = "aws:autoscaling:asg"
name = "MinSize"
value = "2"
}
setting {
namespace = "aws:autoscaling:asg"
name = "MaxSize"
value = "4"
}
setting {
namespace = "aws:autoscaling:updatepolicy:rollingupdate"
name = "RollingUpdateType"
value = "Health"
}
setting {
namespace = "aws:elasticbeanstalk:command"
name = "BatchSizeType"
value = "Fixed"
}
setting {
namespace = "aws:elasticbeanstalk:command"
name = "BatchSize"
value = "1"
}
setting {
namespace = "aws:elb:loadbalancer"
name = "CrossZone"
value = "true"
}
setting {
namespace = "aws:elb:policies"
name = "ConnectionDrainingEnabled"
value = "true"
}
// Env Variables + HTTPs certificate + Cognito
setting {
namespace = "aws:elb:listener:443"
name = "ListenerProtocol"
value = "HTTPS"
}
setting {
namespace = "aws:elb:listener:443"
name = "InstancePort"
value = 80
}
setting {
namespace = "aws:elb:listener:443"
name = "InstanceProtocol"
value = "HTTP"
}
setting {
namespace = "aws:elb:listener:443"
name = "SSLCertificateId"
value = ""
}
setting {
namespace = "aws:elb:listener:443"
name = "ListenerEnabled"
value = true
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_ID"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CLIENT_SECRET"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_USERINFO_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_TOKEN_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_WELLKNOWN_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "COGNITO_CALLBACK_URL"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_DSN"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SENTRY_ENVIRONMENT_TAG"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_CONSUMER_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_USERNAME"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_LOGIN_AUDIENCE"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "SALESFORCE_SOM_ENDPOINT"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "ENCRYPTION_KEY"
value = ""
}
setting {
namespace = "aws:elasticbeanstalk:application:environment"
name = "CORS_DOMAIN"
value = ""
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment