83 lines
2.0 KiB
HCL
83 lines
2.0 KiB
HCL
|
|
|
|
|
|
# vultr instances meant for running k3s cluster
|
|
# these are working concept notes, although it is not used
|
|
|
|
|
|
|
|
resource "vultr_instance" "k3s_server" {
|
|
count = 1
|
|
hostname = "k3s-server-${count.index}"
|
|
plan = "vc2-2c-2gb"
|
|
region = "ord"
|
|
backups = "disabled"
|
|
ddos_protection = "false"
|
|
os_id = 1743
|
|
enable_ipv6 = true
|
|
label = "k3s"
|
|
tags = ["futureporn", "k3s", "server"]
|
|
ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID]
|
|
vpc2_ids = [
|
|
vultr_vpc2.futureporn_vpc2.id
|
|
]
|
|
}
|
|
|
|
resource "vultr_instance" "k3s_agent" {
|
|
count = 3
|
|
hostname = "k3s-agent-${count.index}"
|
|
plan = "vc2-2c-2gb"
|
|
region = "ord"
|
|
backups = "disabled"
|
|
ddos_protection = "false"
|
|
os_id = 1743
|
|
enable_ipv6 = true
|
|
label = "k3s"
|
|
tags = ["futureporn", "k3s", "agent"]
|
|
ssh_key_ids = [local.envs.VULTR_SSH_KEY_ID]
|
|
vpc2_ids = [
|
|
vultr_vpc2.futureporn_vpc2.id
|
|
]
|
|
}
|
|
|
|
|
|
resource "ansible_host" "k3s_server_vps" {
|
|
for_each = { for idx, host in vultr_instance.k3s_server : idx => host }
|
|
name = each.value.hostname
|
|
groups = ["server"]
|
|
variables = {
|
|
ansible_host = each.value.main_ip
|
|
}
|
|
}
|
|
|
|
resource "ansible_host" "k3s_agent_vps" {
|
|
for_each = { for idx, host in vultr_instance.k3s_agent : idx => host }
|
|
name = each.value.hostname
|
|
groups = ["agent"]
|
|
variables = {
|
|
ansible_host = each.value.main_ip
|
|
}
|
|
}
|
|
|
|
resource "ansible_group" "server" {
|
|
name = "server"
|
|
}
|
|
|
|
resource "ansible_group" "agent" {
|
|
name = "agent"
|
|
}
|
|
|
|
resource "ansible_group" "k3s_cluster" {
|
|
name = "k3s_cluster"
|
|
children = [
|
|
"server",
|
|
"agent"
|
|
]
|
|
variables = {
|
|
k3s_version = "v1.31.6+k3s1"
|
|
token = local.envs.K3S_TOKEN
|
|
api_endpoint = "{{ hostvars[groups['server'][0]]['ansible_host'] | default(groups['server'][0]) }}"
|
|
# use_external_database = true
|
|
# extra_server_args = "--datastore-endpoint={{ local.envs.K3S_DATABASE_URL }}"
|
|
}
|
|
} |