mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
Improve Terraform (.tf) / HCL (.hcl) syntax highlighting (#3392)
* Add Terraform grammar, and change .tf and .hcl files from using Ruby to Terraform sublime syntax * Expand Terraform sample to demonstrate more language features * Revert terraform sample change * Add terraform sample - Dokku AWS deploy * Updated to latest Terraform * Update terraform string interpolation * Update terraform to latest
This commit is contained in:
committed by
Colin Seymour
parent
f7fe1fee66
commit
b66fcb2529
135
samples/HCL/main.tf
Normal file
135
samples/HCL/main.tf
Normal file
@@ -0,0 +1,135 @@
|
||||
resource "aws_security_group" "elb_sec_group" {
|
||||
description = "Allow traffic from the internet to ELB port 80"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
from_port = 80
|
||||
to_port = 80
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["${split(",", var.allowed_cidr_blocks)}"]
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_security_group" "dokku_allow_ssh_from_internal" {
|
||||
description = "Allow git access over ssh from the private subnet"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
from_port = 22
|
||||
to_port = 22
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["${var.private_subnet_cidr}"]
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_security_group" "allow_from_elb_to_instance" {
|
||||
description = "Allow traffic from the ELB to the private instance"
|
||||
vpc_id = "${var.vpc_id}"
|
||||
|
||||
ingress {
|
||||
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||
from_port = 80
|
||||
to_port = 80
|
||||
protocol = "tcp"
|
||||
}
|
||||
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_instance" "dokku" {
|
||||
ami = "ami-47a23a30"
|
||||
instance_type = "${var.instance_type}"
|
||||
associate_public_ip_address = false
|
||||
key_name = "${var.key_name}"
|
||||
subnet_id = "${var.private_subnet_id}"
|
||||
vpc_security_group_ids = [
|
||||
"${var.bastion_sec_group_id}",
|
||||
"${aws_security_group.allow_from_elb_to_instance.id}",
|
||||
"${aws_security_group.dokku_allow_ssh_from_internal.id}"
|
||||
]
|
||||
tags {
|
||||
Name = "${var.name}"
|
||||
}
|
||||
connection {
|
||||
user = "ubuntu"
|
||||
private_key = "${var.private_key}"
|
||||
bastion_host = "${var.bastion_host}"
|
||||
bastion_port = "${var.bastion_port}"
|
||||
bastion_user = "${var.bastion_user}"
|
||||
bastion_private_key = "${var.bastion_private_key}"
|
||||
}
|
||||
provisioner "file" {
|
||||
source = "${path.module}/../scripts/install-dokku.sh"
|
||||
destination = "/home/ubuntu/install-dokku.sh"
|
||||
}
|
||||
provisioner "remote-exec" {
|
||||
inline = [
|
||||
"chmod +x /home/ubuntu/install-dokku.sh",
|
||||
"HOSTNAME=${var.hostname} /home/ubuntu/install-dokku.sh"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_elb" "elb_dokku" {
|
||||
name = "elb-dokku-${var.name}"
|
||||
subnets = ["${var.public_subnet_id}"]
|
||||
security_groups = ["${aws_security_group.elb_sec_group.id}"]
|
||||
|
||||
listener {
|
||||
instance_port = 80
|
||||
instance_protocol = "http"
|
||||
lb_port = 80
|
||||
lb_protocol = "http"
|
||||
}
|
||||
|
||||
health_check {
|
||||
healthy_threshold = 2
|
||||
unhealthy_threshold = 2
|
||||
timeout = 3
|
||||
target = "HTTP:80/"
|
||||
interval = 30
|
||||
}
|
||||
|
||||
instances = ["${aws_instance.dokku.id}"]
|
||||
cross_zone_load_balancing = false
|
||||
idle_timeout = 400
|
||||
|
||||
tags {
|
||||
Name = "elb-dokku-${var.name}"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_route53_record" "dokku-deploy" {
|
||||
zone_id = "${var.zone_id}"
|
||||
name = "deploy.${var.hostname}"
|
||||
type = "A"
|
||||
ttl = "300"
|
||||
records = ["${aws_instance.dokku.private_ip}"]
|
||||
}
|
||||
|
||||
resource "aws_route53_record" "dokku-wildcard" {
|
||||
zone_id = "${var.zone_id}"
|
||||
name = "*.${var.hostname}"
|
||||
type = "CNAME"
|
||||
ttl = "300"
|
||||
records = ["${aws_elb.elb_dokku.dns_name}"]
|
||||
}
|
||||
Reference in New Issue
Block a user