django

girder/django/heroku

Terraform Module HCL HEROKU

A Terraform module to provision Kitware Resonant infrastructure on Heroku + AWS.

Install
module "django" {
source = "girder/django/heroku"
version = "3.1.1"
}
plain text: /constructs/tfmod-girder-django-heroku/install.txt
⭐ Source on GitHub 📦 Registry page
README

terraform-heroku-resonant A Terraform module to provision Kitware Resonant infrastructure on Heroku + AWS. This facilitates deployment of Django applications created from the Resonant cookiecutter. It creates a Heroku app with addons for PostgreSQL, CloudAMQP, and Papertrail. It also creates AWS S3 storage, outgoing SMTP credentials, and an optional AWS EC2 worker. See full usage documentation at Terraform Registry. Note on AWS Email Sending Every AWS account must explicitly apply to send real emails, once per Simple Email Service (SES) region. Approvals seem to be granted liberally and to take about 24 hours. Note on initial creation of Heroku apps When first creating an instance of this module, provisioning of the Heroku app (specifically the heroku_formation resources) will likely fail

Inputs (25)
NameTypeDescriptionDefault
subdomain_namestringThe DNS subdomain name where the server will be available. required
route53_zone_idstringThe Route 53 zone ID to create new DNS records within. required
django_settings_modulestringThe import path used to set DJANGO_SETTINGS_MODULE. required
project_slugstringA slugified name, used to label resources. required
heroku_team_namestringThe name of the Heroku team for the app. required
heroku_additional_buildpackslist(string)Additional buildpacks to use on Heroku.[]
django_cors_allowed_origin_regexeslist(string)Domain regular expressions which Django will allow to make CORS requests.[]
heroku_web_dyno_sizestringThe Heroku web server dyno size."basic"
heroku_web_dyno_quantitynumberThe Heroku web server dyno quantity.1
heroku_worker_dyno_sizestringThe Heroku worker dyno size."basic"
heroku_cloudamqp_planstringThe Heroku CloudAMQP add-on plan type, or null to disable."lemur"
ec2_worker_launch_ami_idstringThe AMI ID used to initially launch the EC2 workers. Changing this will not replnull
heroku_app_namestringThe name of the Heroku app.null
django_default_from_emailstringThe default email address which Django will send from.null
django_cors_allowed_originslist(string)Domains which Django will allow to make CORS requests.[]
heroku_worker_dyno_quantitynumberThe Heroku worker dyno quantity.1
heroku_papertrail_planstringThe Heroku Papertrail add-on plan type, or null to disable."choklad"
additional_django_varsmap(string)Additional Django environment variables.{}
ec2_worker_ssh_public_keystringAn SSH public key, to be installed on the EC2 workers. This must be set if ec2_wnull
ec2_worker_instance_typestringThe EC2 workers' instance size."t3.small"
ec2_worker_instance_quantitynumberThe quantity of EC2 worker instances.0
additional_sensitive_django_varsmap(string)Additional Django environment variables, which will not be printed.{}
storage_bucket_namestringThe globally unique S3 bucket name of the storage.null
heroku_postgresql_planstringThe Heroku Postgres add-on plan type, or null to disable."essential-0"
ec2_worker_volume_sizenumberThe size, in GB, of the root EBS volume for the EC2 workers.40
Outputs (7)
fqdn — The fully-qualified domain name of the Heroku app.
heroku_app_id — The ID of the Heroku app.
heroku_iam_user_id — The ID of the IAM user for Heroku.
all_django_vars — All Django environment variables, as they are effectively set.
storage_bucket_name — The storage S3 bucket name.
ec2_worker_hostnames — The public hostnames of the EC2 workers.
ec2_worker_iam_role_id — The ID of the instance profile IAM role for the EC2 workers.
Resources (6)
aws_iam_access_keyaws_iam_role_policyaws_iam_useraws_iam_user_policyaws_route53_recordrandom_password
Details
FrameworkTerraform Module
LanguageHCL
Version3.1.1
Cloud HEROKU
★ Stars6
Forks2
Total downloads3.3k
Inputs25
Outputs7
Resources6
Examples1
Submodules4
LicenseApache-2.0
Namespacegirder
Updated