Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move from to templatefile function for ARM support #119

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 36 additions & 42 deletions modules/controller_pool/main.tf
Original file line number Diff line number Diff line change
@@ -1,55 +1,41 @@
data "template_file" "controller-primary" {
template = file("${path.module}/controller-primary.tpl")

vars = {
kube_token = var.kube_token
metal_network_cidr = var.kubernetes_lb_block
metal_auth_token = var.auth_token
equinix_metal_project_id = var.project_id
kube_version = var.kubernetes_version
secrets_encryption = var.secrets_encryption ? "yes" : "no"
configure_ingress = var.configure_ingress ? "yes" : "no"
count = var.count_x86
count_gpu = var.count_gpu
storage = var.storage
skip_workloads = var.skip_workloads ? "yes" : "no"
workloads = jsonencode(var.workloads)
control_plane_node_count = var.control_plane_node_count
equinix_api_key = var.auth_token
equinix_project_id = var.project_id
loadbalancer = local.loadbalancer_config
loadbalancer_type = var.loadbalancer_type
ccm_version = var.ccm_version
ccm_enabled = var.ccm_enabled
metallb_namespace = var.metallb_namespace
metallb_configmap = var.metallb_configmap
equinix_metro = var.metro
}
}

resource "equinix_metal_device" "k8s_primary" {
hostname = "${var.cluster_name}-controller-primary"
operating_system = "ubuntu_18_04"
plan = var.plan_primary
metro = var.metro != "" ? var.metro : null
user_data = data.template_file.controller-primary.rendered
user_data = templatefile(
"${path.module}/controller-primary.tpl",
{
kube_token = var.kube_token
metal_network_cidr = var.kubernetes_lb_block
metal_auth_token = var.auth_token
equinix_metal_project_id = var.project_id
kube_version = var.kubernetes_version
secrets_encryption = var.secrets_encryption ? "yes" : "no"
configure_ingress = var.configure_ingress ? "yes" : "no"
count = var.count_x86
count_gpu = var.count_gpu
storage = var.storage
skip_workloads = var.skip_workloads ? "yes" : "no"
workloads = jsonencode(var.workloads)
control_plane_node_count = var.control_plane_node_count
equinix_api_key = var.auth_token
equinix_project_id = var.project_id
loadbalancer = local.loadbalancer_config
loadbalancer_type = var.loadbalancer_type
ccm_version = var.ccm_version
ccm_enabled = var.ccm_enabled
metallb_namespace = var.metallb_namespace
metallb_configmap = var.metallb_configmap
equinix_metro = var.metro
}
)
tags = ["kubernetes", "controller-${var.cluster_name}"]

billing_cycle = "hourly"
project_id = var.project_id
}

data "template_file" "controller-standby" {
template = file("${path.module}/controller-standby.tpl")

vars = {
kube_token = var.kube_token
primary_node_ip = equinix_metal_device.k8s_primary.network.0.address
kube_version = var.kubernetes_version
storage = var.storage
}
}

resource "equinix_metal_device" "k8s_controller_standby" {
count = var.control_plane_node_count
depends_on = [equinix_metal_device.k8s_primary]
Expand All @@ -58,7 +44,15 @@ resource "equinix_metal_device" "k8s_controller_standby" {
operating_system = "ubuntu_18_04"
plan = var.plan_primary
metro = var.metro != "" ? var.metro : null
user_data = data.template_file.controller-standby.rendered
user_data = templatefile(
"${path.module}/controller-standby.tpl",
{
kube_token = var.kube_token
primary_node_ip = equinix_metal_device.k8s_primary.network.0.address
kube_version = var.kubernetes_version
storage = var.storage
}
)
tags = ["kubernetes", "controller-${var.cluster_name}"]
billing_cycle = "hourly"
project_id = var.project_id
Expand Down
3 changes: 0 additions & 3 deletions modules/controller_pool/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ terraform {
source = "equinix/equinix"
version = "~> 1.14"
}
template = {
source = "hashicorp/template"
}
}
required_version = ">= 1"
provider_meta "equinix" {
Expand Down
23 changes: 10 additions & 13 deletions modules/gpu_node_pool/main.tf
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
data "template_file" "gpu_node" {
template = file("${path.module}/gpu_node.tpl")

vars = {
kube_token = var.kube_token
primary_node_ip = var.controller_address
kube_version = var.kubernetes_version
storage = var.storage
ccm_enabled = var.ccm_enabled
}
}

resource "equinix_metal_device" "gpu_node" {
hostname = format("${var.cluster_name}-gpu-${var.pool_label}-%02d", count.index)
operating_system = "ubuntu_18_04"
count = var.count_gpu
plan = var.plan_gpu
metro = var.metro != "" ? var.metro : null
user_data = data.template_file.gpu_node.rendered
user_data = templatefile(
"${path.module}/gpu_node.tpl",
{
kube_token = var.kube_token
primary_node_ip = var.controller_address
kube_version = var.kubernetes_version
storage = var.storage
ccm_enabled = var.ccm_enabled
}
)
tags = ["kubernetes", "pool-${var.cluster_name}-${var.pool_label}-gpu"]

billing_cycle = "hourly"
Expand Down
3 changes: 0 additions & 3 deletions modules/gpu_node_pool/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ terraform {
source = "equinix/equinix"
version = "~> 1.14"
}
template = {
source = "hashicorp/template"
}
}
required_version = ">= 1"
provider_meta "equinix" {
Expand Down
3 changes: 0 additions & 3 deletions modules/kube-token/versions.tf
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
terraform {
required_providers {
template = {
source = "hashicorp/template"
}
}
required_version = ">= 1"
}
36 changes: 22 additions & 14 deletions modules/node_pool/main.tf
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
data "template_file" "node" {
template = file("${path.module}/node.tpl")

vars = {
kube_token = var.kube_token
primary_node_ip = var.controller_address
kube_version = var.kubernetes_version
ccm_enabled = var.ccm_enabled
storage = var.storage
}
}

resource "equinix_metal_device" "x86_node" {
hostname = format("${var.cluster_name}-x86-${var.pool_label}-%02d", count.index)
operating_system = "ubuntu_18_04"
count = var.count_x86
plan = var.plan_x86
metro = var.metro != "" ? var.metro : null
user_data = data.template_file.node.rendered
user_data = templatefile(
"${path.module}/node.tpl",

{
kube_token = var.kube_token
primary_node_ip = var.controller_address
kube_version = var.kubernetes_version
ccm_enabled = var.ccm_enabled
storage = var.storage
}
)
tags = ["kubernetes", "pool-${var.cluster_name}-${var.pool_label}-x86"]

billing_cycle = "hourly"
Expand All @@ -29,7 +27,17 @@ resource "equinix_metal_device" "arm_node" {
count = var.count_arm
plan = var.plan_arm
metro = var.metro
user_data = data.template_file.node.rendered
user_data = templatefile(
"${path.module}/node.tpl",

{
kube_token = var.kube_token
primary_node_ip = var.controller_address
kube_version = var.kubernetes_version
ccm_enabled = var.ccm_enabled
storage = var.storage
}
)
tags = ["kubernetes", "pool-${var.cluster_name}-${var.pool_label}-arm"]

billing_cycle = "hourly"
Expand Down
3 changes: 0 additions & 3 deletions modules/node_pool/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ terraform {
source = "equinix/equinix"
version = "~> 1.14"
}
template = {
source = "hashicorp/template"
}
}
required_version = ">= 1"
provider_meta "equinix" {
Expand Down
2 changes: 1 addition & 1 deletion variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ variable "count_gpu" {
variable "kubernetes_version" {
type = string
description = "Version of Kubeadm to install"
default = "1.24.7-00"
default = "1.27.1-00"
}

variable "secrets_encryption" {
Expand Down