Skip to content

Commit

Permalink
Merge pull request #13 from xunleii/fix-rename-node-role
Browse files Browse the repository at this point in the history
refact: rename node roles in server and agent
  • Loading branch information
xunleii authored Dec 4, 2019
2 parents c54190d + 69d0a9f commit 00f2ec5
Show file tree
Hide file tree
Showing 8 changed files with 191 additions and 190 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ module "k3s" {
}
additional_flags = {
master = [
server = [
"--flannel-backend=none",
"--tls-san k3s.my.domain.com"
]
minion = [
agent = [
"--flannel-backend=none",
]
}
master_node = {
server_node = {
# The node name will be automatically provided by
# the module using this value... any usage of --node-name
# in additional_flags will be ignored
Expand All @@ -45,7 +45,7 @@ module "k3s" {
user = "ubuntu"
}
}
minion_nodes = {
agent_nodes = {
# The node name will be automatically provided by
# the module using the key... any usage of --node-name
# in additional_flags will be ignored
Expand Down
88 changes: 44 additions & 44 deletions minions.tf → agent_nodes.tf
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
locals {
minion_default_flags = [
"--server https://${var.master_node.ip}:6443",
agent_default_flags = [
"--server https://${var.server_node.ip}:6443",
"--token ${random_password.k3s_cluster_secret.result}"
]
minion_install_flags = join(" ", concat(var.additional_flags.minion, local.minion_default_flags))
agent_install_flags = join(" ", concat(var.additional_flags.agent, local.agent_default_flags))
}

resource null_resource k3s_minions {
for_each = var.minion_nodes
resource null_resource k3s_agents {
for_each = var.agent_nodes

triggers = {
master_init = null_resource.k3s_master.id
install_args = sha1(local.minion_install_flags)
minion_ip = each.value.ip
server_init = null_resource.k3s_server.id
install_args = sha1(local.agent_install_flags)
agent_ip = each.value.ip
}
depends_on = [null_resource.k3s_master_installer]
depends_on = [null_resource.k3s_server_installer]

connection {
type = lookup(each.value.connection, "type", "ssh")
Expand Down Expand Up @@ -63,12 +63,12 @@ resource null_resource k3s_minions {
}
}

resource null_resource k3s_minions_installer {
for_each = var.minion_nodes
resource null_resource k3s_agents_installer {
for_each = var.agent_nodes

triggers = {
master_install = null_resource.k3s_master_installer.id
minion_init = null_resource.k3s_minions[each.key].id
server_install = null_resource.k3s_server_installer.id
agent_init = null_resource.k3s_agents[each.key].id
version = local.k3s_version
}

Expand Down Expand Up @@ -105,46 +105,46 @@ resource null_resource k3s_minions_installer {
# Install K3S agent
provisioner remote-exec {
inline = [
"curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${local.k3s_version} INSTALL_K3S_EXEC=agent sh -s - ${local.minion_install_flags} --node-ip ${each.value.ip} --node-name ${each.key}"
"curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${local.k3s_version} INSTALL_K3S_EXEC=agent sh -s - ${local.agent_install_flags} --node-ip ${each.value.ip} --node-name ${each.key}"
]
}
}

resource null_resource k3s_minions_uninstaller {
for_each = var.minion_nodes
resource null_resource k3s_agents_uninstaller {
for_each = var.agent_nodes

triggers = {
minion_init = null_resource.k3s_minions[each.key].id
agent_init = null_resource.k3s_agents[each.key].id
}

connection {
type = lookup(var.master_node.connection, "type", "ssh")

host = lookup(var.master_node.connection, "host", var.master_node.ip)
user = lookup(var.master_node.connection, "user", null)
password = lookup(var.master_node.connection, "password", null)
port = lookup(var.master_node.connection, "port", null)
timeout = lookup(var.master_node.connection, "timeout", null)

script_path = lookup(var.master_node.connection, "script_path", null)
private_key = lookup(var.master_node.connection, "private_key", null)
certificate = lookup(var.master_node.connection, "certificate", null)
agent = lookup(var.master_node.connection, "agent", null)
agent_identity = lookup(var.master_node.connection, "agent_identity", null)
host_key = lookup(var.master_node.connection, "host_key", null)

https = lookup(var.master_node.connection, "https", null)
insecure = lookup(var.master_node.connection, "insecure", null)
use_ntlm = lookup(var.master_node.connection, "use_ntlm", null)
cacert = lookup(var.master_node.connection, "cacert", null)

bastion_host = lookup(var.master_node.connection, "bastion_host", null)
bastion_host_key = lookup(var.master_node.connection, "bastion_host_key", null)
bastion_port = lookup(var.master_node.connection, "bastion_port", null)
bastion_user = lookup(var.master_node.connection, "bastion_user", null)
bastion_password = lookup(var.master_node.connection, "bastion_password", null)
bastion_private_key = lookup(var.master_node.connection, "bastion_private_key", null)
bastion_certificate = lookup(var.master_node.connection, "bastion_certificate", null)
type = lookup(var.server_node.connection, "type", "ssh")

host = lookup(var.server_node.connection, "host", var.server_node.ip)
user = lookup(var.server_node.connection, "user", null)
password = lookup(var.server_node.connection, "password", null)
port = lookup(var.server_node.connection, "port", null)
timeout = lookup(var.server_node.connection, "timeout", null)

script_path = lookup(var.server_node.connection, "script_path", null)
private_key = lookup(var.server_node.connection, "private_key", null)
certificate = lookup(var.server_node.connection, "certificate", null)
agent = lookup(var.server_node.connection, "agent", null)
agent_identity = lookup(var.server_node.connection, "agent_identity", null)
host_key = lookup(var.server_node.connection, "host_key", null)

https = lookup(var.server_node.connection, "https", null)
insecure = lookup(var.server_node.connection, "insecure", null)
use_ntlm = lookup(var.server_node.connection, "use_ntlm", null)
cacert = lookup(var.server_node.connection, "cacert", null)

bastion_host = lookup(var.server_node.connection, "bastion_host", null)
bastion_host_key = lookup(var.server_node.connection, "bastion_host_key", null)
bastion_port = lookup(var.server_node.connection, "bastion_port", null)
bastion_user = lookup(var.server_node.connection, "bastion_user", null)
bastion_password = lookup(var.server_node.connection, "bastion_password", null)
bastion_private_key = lookup(var.server_node.connection, "bastion_private_key", null)
bastion_certificate = lookup(var.server_node.connection, "bastion_certificate", null)
}

# Drain and delete the removed node
Expand Down
24 changes: 12 additions & 12 deletions examples/hcloud-k3s/instances.tf
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ data hcloud_image ubuntu {
name = "ubuntu-18.04"
}

resource hcloud_server master {
name = "k3s-master"
resource hcloud_server server {
name = "k3s-server"

image = data.hcloud_image.ubuntu.name
server_type = "cx11-ceph"
Expand All @@ -31,19 +31,19 @@ resource hcloud_server master {
labels = {
provisioner = "terraform",
engine = "k3s",
node_type = "master"
node_type = "server"
}
}

resource hcloud_server_network master_network {
server_id = hcloud_server.master.id
resource hcloud_server_network server_network {
server_id = hcloud_server.server.id
network_id = hcloud_network.k3s.id
ip = cidrhost(hcloud_network_subnet.k3s_nodes.ip_range, 1)
}

resource hcloud_server minions {
count = var.minions_num
name = "k3s-minion-${count.index}"
resource hcloud_server agents {
count = var.agents_num
name = "k3s-agent-${count.index}"

image = data.hcloud_image.ubuntu.name
server_type = "cx11-ceph"
Expand All @@ -54,13 +54,13 @@ resource hcloud_server minions {
labels = {
provisioner = "terraform",
engine = "k3s",
node_type = "minion"
node_type = "agent"
}
}

resource hcloud_server_network minions_network {
count = length(hcloud_server.minions)
server_id = hcloud_server.minions[count.index].id
resource hcloud_server_network agents_network {
count = length(hcloud_server.agents)
server_id = hcloud_server.agents[count.index].id
network_id = hcloud_network.k3s.id
ip = cidrhost(hcloud_network_subnet.k3s_nodes.ip_range, count.index + 2)
}
22 changes: 11 additions & 11 deletions examples/hcloud-k3s/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,31 @@ module k3s {
drain_timeout = "30s"

additional_flags = {
master = [
server = [
"--disable-cloud-controller",
"--flannel-iface ens10",
"--kubelet-arg cloud-provider=external" # required to use https://github.com/hetznercloud/hcloud-cloud-controller-manager
]
minion = [
agent = [
"--flannel-iface ens10",
"--kubelet-arg cloud-provider=external" # required to use https://github.com/hetznercloud/hcloud-cloud-controller-manager
]
}

master_node = {
name = "master"
ip = hcloud_server_network.master_network.ip
server_node = {
name = "server"
ip = hcloud_server_network.server_network.ip
connection = {
host = hcloud_server.master.ipv4_address
host = hcloud_server.server.ipv4_address
}
}

minion_nodes = {
for i in range(length(hcloud_server.minions)) :
hcloud_server.minions[i].name => {
ip = hcloud_server_network.minions_network[i].ip
agent_nodes = {
for i in range(length(hcloud_server.agents)) :
hcloud_server.agents[i].name => {
ip = hcloud_server_network.agents_network[i].ip
connection = {
host = hcloud_server.minions[i].ipv4_address
host = hcloud_server.agents[i].ipv4_address
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions examples/hcloud-k3s/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ variable ssh_key {
type = string
}

variable minions_num {
description = "Number of minion nodes."
variable agents_num {
description = "Number of agent nodes."
default = 3
}
109 changes: 0 additions & 109 deletions master.tf

This file was deleted.

Loading

0 comments on commit 00f2ec5

Please sign in to comment.