Skip to content

Commit 1e27a37

Browse files
authored
Merge pull request #1 from kenfdev/update
Updated terraform to v0.12 and updated the providers
2 parents 0a2b07c + 1f3f9ff commit 1e27a37

File tree

10 files changed

+204
-186
lines changed

10 files changed

+204
-186
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
terraform.tfvars
12

23
# Created by https://www.gitignore.io/api/terraform
34

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ This terraform is based on the [DO quickstart deployment of Rancher](https://git
2727

2828
Be sure to set the following variables:
2929

30+
* scw_access_key
31+
* Your Scaleway Access Key
3032
* scw_token
3133
* Your Scaleway Secret Token
3234
* scw_org
@@ -37,10 +39,10 @@ Be sure to set the following variables:
3739
* The URL you will use for your Rancher Server. This terraform is going to setup a rancher subdomain to your cloudflare zone. So if your zone is example.com , this terraform will create an A record to resolve rancher.example.com .
3840
* cloudflare_email
3941
* Your Email for Cloudflare
40-
* cloudflare_token
41-
* Your Cloudflare API token
42-
* cloudflare_zone
43-
* Your Cloudflare zone
42+
* cloudflare_api_key
43+
* Your Cloudflare API Key
44+
* cloudflare_zone_id
45+
* Your Cloudflare zone ID
4446

4547
`rancheragent/terraform.tfvars`
4648

@@ -82,7 +84,7 @@ terraform apply
8284
**Destroy the Rancher Agent and related resources**
8385
```bash
8486
cd rancheragent
85-
terraform apply
87+
terraform destroy
8688
```
8789

8890
**Destroy the Rancher Server and related resources**

rancheragent/dns.tf

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
provider "cloudflare" {
2-
email = "${var.cloudflare_email}"
3-
token = "${var.cloudflare_token}"
2+
email = var.cloudflare_email
3+
api_key = var.cloudflare_api_key
44
}
55

66
variable "cloudflare_email" {}
77

8-
variable "cloudflare_token" {}
8+
variable "cloudflare_api_key" {}
99

10-
variable "cloudflare_zone" {}
10+
variable "cloudflare_zone_id" {}
1111

1212
# resource "cloudflare_record" "rancher_worker_nodes" {
1313
# count = "${var.count_agent_worker_nodes}"
@@ -18,11 +18,11 @@ variable "cloudflare_zone" {}
1818
# ttl = 3600
1919
# }
2020

21-
# resource "cloudflare_record" "rancher_all_nodes" {
22-
# count = "${var.count_agent_all_nodes}"
23-
# domain = "${var.cloudflare_zone}"
24-
# name = "default"
25-
# value = "${scaleway_server.rancheragent_all.*.public_ip[count.index]}"
26-
# type = "A"
27-
# ttl = 3600
28-
# }
21+
resource "cloudflare_record" "rancher_all_nodes" {
22+
count = var.count_agent_all_nodes
23+
zone_id = var.cloudflare_zone_id
24+
name = "gateway.openfaas"
25+
value = scaleway_instance_server.rancheragent_all[count.index].public_ip
26+
type = "A"
27+
ttl = 3600
28+
}

rancheragent/files/userdata_agent

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ export curlimage=appropriate/curl
33
export jqimage=stedolan/jq
44
export rancher_server_host='${server_address}'
55

6+
export DEBIAN_FRONTEND=noninteractive
7+
8+
# add or remove sudo
9+
sudo ()
10+
{
11+
[[ $EUID = 0 ]] || set -- command sudo "$@"
12+
"$@"
13+
}
14+
615
if [ `command -v curl` ]; then
716
curl -sL https://releases.rancher.com/install-docker/${docker_version_agent}.sh | sh
817
elif [ `command -v wget` ]; then

rancheragent/main.tf

Lines changed: 90 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
# Configure the Scaleway Provider
22
provider "scaleway" {
3-
organization = "${var.scw_org}"
4-
token = "${var.scw_token}"
5-
region = "${var.region}"
3+
access_key = var.scw_access_key
4+
organization_id = var.scw_org
5+
secret_key = var.scw_token
6+
region = var.region
7+
zone = var.zone
68
}
79

10+
variable "scw_access_key" {}
11+
812
variable "scw_org" {}
913

1014
variable "scw_token" {}
@@ -45,107 +49,107 @@ variable "region" {
4549
default = "par1"
4650
}
4751

52+
variable "zone" {
53+
default = "fr-par-1"
54+
}
55+
4856
variable "docker_version_agent" {
49-
default = "17.03"
57+
default = "19.03"
5058
}
5159

5260
variable "type" {
53-
default = "START1-S"
61+
default = "DEV1-S"
5462
}
5563

5664
variable "rancher_server_address" {}
5765

58-
data "scaleway_image" "xenial" {
59-
architecture = "x86_64"
60-
name = "Ubuntu Xenial"
61-
}
62-
63-
resource "scaleway_server" "rancheragent_all" {
64-
count = "${var.count_agent_all_nodes}"
65-
image = "${data.scaleway_image.xenial.id}"
66-
type = "${var.type}"
67-
name = "${var.prefix}-rancheragent-${count.index}-all"
68-
security_group = "${scaleway_security_group.allowall.id}"
69-
dynamic_ip_required = true
70-
}
71-
72-
resource "scaleway_user_data" "rancheragent_all" {
73-
count = "${var.count_agent_all_nodes}"
74-
server = "${scaleway_server.rancheragent_all.*.id[count.index]}"
75-
key = "cloud-init"
76-
value = "${data.template_file.userdata_agent.rendered}"
77-
}
78-
79-
resource "scaleway_server" "rancheragent_etcd" {
80-
count = "${var.count_agent_etcd_nodes}"
81-
image = "${data.scaleway_image.xenial.id}"
82-
type = "${var.type}"
83-
name = "${var.prefix}-rancheragent-${count.index}-etcd"
84-
security_group = "${scaleway_security_group.allowall.id}"
85-
dynamic_ip_required = true
86-
}
87-
88-
resource "scaleway_user_data" "rancheragent_etcd" {
89-
count = "${var.count_agent_etcd_nodes}"
90-
server = "${scaleway_server.rancheragent_etcd.*.id[count.index]}"
91-
key = "cloud-init"
92-
value = "${data.template_file.userdata_agent.rendered}"
93-
}
94-
95-
resource "scaleway_server" "rancheragent_controlplane" {
96-
count = "${var.count_agent_controlplane_nodes}"
97-
image = "${data.scaleway_image.xenial.id}"
98-
type = "${var.type}"
99-
name = "${var.prefix}-rancheragent-${count.index}-controlplane"
100-
security_group = "${scaleway_security_group.allowall.id}"
101-
dynamic_ip_required = true
102-
}
103-
104-
resource "scaleway_user_data" "rancheragent_controlplane" {
105-
count = "${var.count_agent_controlplane_nodes}"
106-
server = "${scaleway_server.rancheragent_controlplane.*.id[count.index]}"
107-
key = "cloud-init"
108-
value = "${data.template_file.userdata_agent.rendered}"
66+
resource "scaleway_instance_server" "rancheragent_all" {
67+
count = var.count_agent_all_nodes
68+
image = "ubuntu-bionic"
69+
type = var.type
70+
name = "${var.prefix}-rancheragent-${count.index}-all"
71+
security_group_id = scaleway_instance_security_group.allowall.id
72+
enable_dynamic_ip = true
73+
cloud_init = templatefile("${path.module}/files/userdata_agent", {
74+
admin_password = var.admin_password
75+
cluster_name = var.cluster_name
76+
docker_version_agent = var.docker_version_agent
77+
rancher_version = var.rancher_version
78+
server_address = var.rancher_server_address
79+
})
80+
root_volume {
81+
size_in_gb = 40
82+
delete_on_termination = false
83+
}
10984
}
11085

111-
resource "scaleway_server" "rancheragent_worker" {
112-
count = "${var.count_agent_worker_nodes}"
113-
image = "${data.scaleway_image.xenial.id}"
114-
type = "${var.type}"
115-
name = "${var.prefix}-rancheragent-${count.index}-worker"
116-
security_group = "${scaleway_security_group.allowall.id}"
117-
dynamic_ip_required = true
86+
resource "scaleway_instance_server" "rancheragent_etcd" {
87+
count = var.count_agent_etcd_nodes
88+
image = "ubuntu-bionic"
89+
type = var.type
90+
name = "${var.prefix}-rancheragent-${count.index}-etcd"
91+
security_group_id = scaleway_instance_security_group.allowall.id
92+
enable_dynamic_ip = true
93+
cloud_init = templatefile("${path.module}/files/userdata_agent", {
94+
admin_password = var.admin_password
95+
cluster_name = var.cluster_name
96+
docker_version_agent = var.docker_version_agent
97+
rancher_version = var.rancher_version
98+
server_address = var.rancher_server_address
99+
})
100+
root_volume {
101+
size_in_gb = 40
102+
delete_on_termination = false
103+
}
118104
}
119105

120-
resource "scaleway_user_data" "rancheragent_worker" {
121-
count = "${var.count_agent_worker_nodes}"
122-
server = "${scaleway_server.rancheragent_worker.*.id[count.index]}"
123-
key = "cloud-init"
124-
value = "${data.template_file.userdata_agent.rendered}"
106+
resource "scaleway_instance_server" "rancheragent_controlplane" {
107+
count = var.count_agent_controlplane_nodes
108+
image = "ubuntu-bionic"
109+
type = var.type
110+
name = "${var.prefix}-rancheragent-${count.index}-controlplane"
111+
security_group_id = scaleway_instance_security_group.allowall.id
112+
enable_dynamic_ip = true
113+
cloud_init = templatefile("${path.module}/files/userdata_agent", {
114+
admin_password = var.admin_password
115+
cluster_name = var.cluster_name
116+
docker_version_agent = var.docker_version_agent
117+
rancher_version = var.rancher_version
118+
server_address = var.rancher_server_address
119+
})
120+
root_volume {
121+
size_in_gb = 40
122+
delete_on_termination = false
123+
}
125124
}
126125

127-
data "template_file" "userdata_agent" {
128-
template = "${file("files/userdata_agent")}"
129-
130-
vars {
131-
admin_password = "${var.admin_password}"
132-
cluster_name = "${var.cluster_name}"
133-
docker_version_agent = "${var.docker_version_agent}"
134-
rancher_version = "${var.rancher_version}"
135-
server_address = "${var.rancher_server_address}"
126+
resource "scaleway_instance_server" "rancheragent_worker" {
127+
count = var.count_agent_worker_nodes
128+
image = "ubuntu-bionic"
129+
type = var.type
130+
name = "${var.prefix}-rancheragent-${count.index}-worker"
131+
security_group_id = scaleway_instance_security_group.allowall.id
132+
enable_dynamic_ip = true
133+
cloud_init = templatefile("${path.module}/files/userdata_agent", {
134+
admin_password = var.admin_password
135+
cluster_name = var.cluster_name
136+
docker_version_agent = var.docker_version_agent
137+
rancher_version = var.rancher_version
138+
server_address = var.rancher_server_address
139+
})
140+
root_volume {
141+
size_in_gb = 40
142+
delete_on_termination = false
136143
}
137144
}
138145

139-
resource "scaleway_security_group" "allowall" {
146+
resource "scaleway_instance_security_group" "allowall" {
140147
name = "${var.prefix}-rancher-agent-allowall"
141148
description = "allow all traffic"
142-
}
143149

144-
resource "scaleway_security_group_rule" "all_accept" {
145-
security_group = "${scaleway_security_group.allowall.id}"
146-
147-
action = "accept"
148-
direction = "inbound"
149-
ip_range = "0.0.0.0/0"
150-
protocol = "TCP"
150+
inbound_rule {
151+
action = "accept"
152+
ip_range = "0.0.0.0/0"
153+
protocol = "TCP"
154+
}
151155
}

rancheragent/terraform.tfvars.sample

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1+
# Scaleway Access Key
2+
scw_access_key = "XXXXXXXXXXXXXXXXXXXX"
3+
14
# Scaleway Token
2-
scw_token = "your_token"
5+
scw_token = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
36

47
# Scaleway Organization ID
5-
scw_org = "your_org_id"
8+
scw_org = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
69

710
# Admin password to access Rancher
8-
admin_password = "admin"
11+
admin_password = "xxxxxxxxxxxx"
912

1013
# Resources will be prefixed with this to avoid clashing names
11-
prefix = "your_prefix"
14+
prefix = "tmpenv"
1215

1316
# rancher/rancher image tag to use
1417
rancher_version = "latest"
1518

1619
# Region where resources should be created
1720
region = "par1"
1821

19-
# Rancher Server Address
20-
rancher_server_address = "your.server.com"
22+
rancher_server_address = "rancher.example.com"
2123

22-
# The cluster name to join
2324
cluster_name = "tmpenv"
2425

2526
# Count of agent nodes with role all
@@ -35,16 +36,13 @@ count_agent_controlplane_nodes = "0"
3536
count_agent_worker_nodes = "0"
3637

3738
# Docker version of host being added to a cluster (running `rancher/rancher-agent`)
38-
docker_version_agent = "17.03"
39+
docker_version_agent = "19.03"
3940

4041
# Scaleway instance type
41-
type = "START1-S"
42+
type = "DEV1-M"
4243

43-
# Email for your Cloudflare account
44-
cloudflare_email = "[email protected]"
44+
cloudflare_email = "[email protected]"
4545

46-
# Cloudflare token
47-
cloudflare_token = "your_cloudflare_token"
46+
cloudflare_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
4847

49-
# Cloudflare zone
50-
cloudflare_zone = "your.zone"
48+
cloudflare_zone_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

rancherserver/dns.tf

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
provider "cloudflare" {
2-
email = "${var.cloudflare_email}"
3-
token = "${var.cloudflare_token}"
2+
email = var.cloudflare_email
3+
api_key = var.cloudflare_api_key
44
}
55

66
variable "cloudflare_email" {}
77

8-
variable "cloudflare_token" {}
8+
variable "cloudflare_api_key" {}
99

10-
variable "cloudflare_zone" {}
10+
variable "cloudflare_zone_id" {}
1111

1212
resource "cloudflare_record" "rancherserver" {
13-
domain = "${var.cloudflare_zone}"
14-
name = "rancher"
15-
value = "${scaleway_server.rancherserver.public_ip}"
16-
type = "A"
17-
ttl = 3600
13+
zone_id = var.cloudflare_zone_id
14+
name = "rancher"
15+
value = scaleway_instance_server.rancherserver.public_ip
16+
type = "A"
17+
ttl = 3600
1818
}

0 commit comments

Comments
 (0)