This repository has been archived by the owner on Oct 22, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf.example
122 lines (99 loc) · 3.06 KB
/
main.tf.example
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
############## Variables ###############
# Define Hetzner provider
provider "hcloud" {
token = "<hetzner_cloud_token_goes_here>"
}
# Obtain ssh key data
data "hcloud_ssh_key" "ssh_key" {
fingerprint = "<ssh_key_goes_here>"
}
# Create Debian 10 server
resource "hcloud_server" "server-1" {
name = "server-1"
image = "debian-10"
server_type = "cx11"
ssh_keys = ["${data.hcloud_ssh_key.ssh_key.id}"]
connection {
host = "${hcloud_server.server-1.ipv4_address}"
type = "ssh"
user = "root"
private_key = "${file("~/.ssh/id_rsa")}"
}
provisioner "remote-exec" {
inline = ["# Connected!"]
}
provisioner "local-exec" {
command = "k3sup install --ip ${hcloud_server.server-1.ipv4_address} && mv kubeconfig ~/.kube/config"
}
provisioner "local-exec" {
command = "kubectl create ns apps"
}
provisioner "local-exec" {
command = "kubectl create secret generic wisdom-service-secret -n apps --from-env-file=secret.env"
}
provisioner "local-exec" {
command = "kubectl create ns flux"
}
provisioner "local-exec" {
command = "fluxctl install --git-user=mejlholm [email protected] [email protected]:Cloud-Native-Aalborg/Meetup-2 --git-paths=k8s,wisdom-frontend/deploy,wisdom-service/deploy --namespace=flux | kubectl apply -f - "
}
provisioner "local-exec" {
command = "kubectl patch deployments -n flux flux --type='json' -p='[{\"op\": \"add\", \"path\": \"/spec/template/spec/containers/0/args/-\", \"value\": \"--git-ci-skip\"}]'"
}
provisioner "local-exec" {
command = "linkerd install | kubectl apply -f -"
}
}
# Create Debian 10 server
resource "hcloud_server" "server-2" {
name = "server-2"
image = "debian-10"
server_type = "cx11"
ssh_keys = ["${data.hcloud_ssh_key.ssh_key.id}"]
connection {
host = "${hcloud_server.server-2.ipv4_address}"
type = "ssh"
user = "root"
private_key = "${file("~/.ssh/id_rsa")}"
}
provisioner "remote-exec" {
inline = ["# Connected!"]
}
provisioner "local-exec" {
command = "k3sup join --ip ${hcloud_server.server-2.ipv4_address} --server-ip ${hcloud_server.server-1.ipv4_address}"
}
}
# Create Debian 10 server
resource "hcloud_server" "server-3" {
name = "server-3"
image = "debian-10"
server_type = "cx11"
ssh_keys = ["${data.hcloud_ssh_key.ssh_key.id}"]
connection {
host = "${hcloud_server.server-3.ipv4_address}"
type = "ssh"
user = "root"
private_key = "${file("~/.ssh/id_rsa")}"
}
provisioner "remote-exec" {
inline = ["# Connected!"]
}
provisioner "local-exec" {
command = "k3sup join --ip ${hcloud_server.server-3.ipv4_address} --server-ip ${hcloud_server.server-1.ipv4_address}"
}
}
# Output server IPs
output "server_ip_server-1" {
value = "${hcloud_server.server-1.ipv4_address}"
}
# Output server IPs
output "server_ip_server-2" {
value = "${hcloud_server.server-2.ipv4_address}"
}
# Output server IPs
output "server_ip_server-3" {
value = "${hcloud_server.server-3.ipv4_address}"
}
output "fluxcmd" {
value = "fluxctl identity --k8s-fwd-ns flux"
}