This repository has been archived by the owner on Jun 29, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresources.tf
77 lines (67 loc) · 1.73 KB
/
resources.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
## Digital Ocean Kubernetes Cluster
resource "digitalocean_kubernetes_cluster" "k8s" {
name = var.do_cluster_name
region = "sfo2"
auto_upgrade = false
version = "1.18.10-do.2"
node_pool {
name = "worker-pool"
size = "s-1vcpu-2gb"
node_count = 3
}
}
## Nginx Ingress/Load Balancer
resource "helm_release" "ingress" {
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
name = "ingress"
set {
name = "controller.service.annotations.service\\.beta\\.kubernetes\\.io/do-loadbalancer-enable-proxy-protocol"
value = "true"
}
set {
name = "controller.config.use-proxy-protocol"
value = "true"
type = "string"
}
depends_on = [digitalocean_kubernetes_cluster.k8s]
}
data "kubernetes_service" "nginx-ingress-controller" {
metadata {
name = "ingress-ingress-nginx-controller"
}
depends_on = [helm_release.ingress]
}
## Cloudflare DNS Record
resource "cloudflare_record" "demo" {
zone_id = var.cloudflare_zone_id
name = "demo"
proxied = true
value = data.kubernetes_service.nginx-ingress-controller.load_balancer_ingress.0.ip
type = "A"
ttl = 1
}
## Demo app release
resource "helm_release" "docker-node-app" {
repository = "https://jonfairbanks.github.io/helm-charts"
chart = "docker-node-app"
name = "docker-node-app"
namespace = "docker-node-app"
create_namespace = "true"
set {
name = "ingress.hosts[0].host"
value = cloudflare_record.demo.hostname
}
set {
name = "ingress.hosts[0].paths[0]"
value = "/"
}
set {
name = "resources.requests.cpu"
value = "100m"
}
set {
name = "image.tag"
value = "2.0.4"
}
}