mirror of
https://github.com/puppetmaster/typhoon.git
synced 2025-07-25 03:41:34 +02:00
Configure controller and worker node architecture separately
* On platforms that support ARM64 instances, configure controller and worker node host architectures separately * For example, you can run arm64 controllers and amd64 workers * Add `controller_arch` and `worker_arch` variables * Remove `arch` variable
This commit is contained in:
@ -2,8 +2,8 @@ locals {
|
||||
# Container Linux derivative
|
||||
# flatcar-stable -> Flatcar Linux Stable
|
||||
channel = split("-", var.os_image)[1]
|
||||
offer_suffix = var.arch == "arm64" ? "corevm" : "free"
|
||||
urn = var.arch == "arm64" ? local.channel : "${local.channel}-gen2"
|
||||
offer_suffix = var.controller_arch == "arm64" ? "corevm" : "free"
|
||||
urn = var.controller_arch == "arm64" ? local.channel : "${local.channel}-gen2"
|
||||
|
||||
# Typhoon ssh_authorized_key supports RSA or a newer formats (e.g. ed25519).
|
||||
# However, Azure requires an older RSA key to pass validations. To use a
|
||||
@ -63,7 +63,7 @@ resource "azurerm_linux_virtual_machine" "controllers" {
|
||||
}
|
||||
|
||||
dynamic "plan" {
|
||||
for_each = var.arch == "arm64" ? [] : [1]
|
||||
for_each = var.controller_arch == "arm64" ? [] : [1]
|
||||
content {
|
||||
publisher = "kinvolk"
|
||||
product = "flatcar-container-linux-${local.offer_suffix}"
|
||||
|
@ -168,14 +168,25 @@ variable "worker_node_labels" {
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "arch" {
|
||||
type = string
|
||||
description = "Container architecture (amd64 or arm64)"
|
||||
default = "amd64"
|
||||
# advanced
|
||||
|
||||
variable "controller_arch" {
|
||||
type = string
|
||||
description = "Controller node(s) architecture (amd64 or arm64)"
|
||||
default = "amd64"
|
||||
validation {
|
||||
condition = var.arch == "amd64" || var.arch == "arm64"
|
||||
error_message = "The arch must be amd64 or arm64."
|
||||
condition = contains(["amd64", "arm64"], var.controller_arch)
|
||||
error_message = "The controller_arch must be amd64 or arm64."
|
||||
}
|
||||
}
|
||||
|
||||
variable "worker_arch" {
|
||||
type = string
|
||||
description = "Worker node(s) architecture (amd64 or arm64)"
|
||||
default = "amd64"
|
||||
validation {
|
||||
condition = contains(["amd64", "arm64"], var.worker_arch)
|
||||
error_message = "The worker_arch must be amd64 or arm64."
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,5 +25,5 @@ module "workers" {
|
||||
cluster_domain_suffix = var.cluster_domain_suffix
|
||||
snippets = var.worker_snippets
|
||||
node_labels = var.worker_node_labels
|
||||
arch = var.arch
|
||||
arch = var.worker_arch
|
||||
}
|
||||
|
Reference in New Issue
Block a user