diff --git a/terraform/cluster/do/main.tf b/terraform/cluster/do/main.tf index 505791e..e458e4e 100644 --- a/terraform/cluster/do/main.tf +++ b/terraform/cluster/do/main.tf @@ -14,10 +14,23 @@ provider "random" { version = "~> 2.2" } +data "http" "kubernetes_versions" { + url = "https://api.digitalocean.com/v2/kubernetes/options" + + request_headers = { + Authorization = "Bearer ${var.token}" + } +} + +locals { + kubernetes_desired = "1.14" + kubernetes_slug = [for v in jsondecode(data.http.kubernetes_versions.body).options.versions : v.slug if length(regexall("^${local.kubernetes_desired}\\.", v.kubernetes_version)) > 0].0 +} + resource "digitalocean_kubernetes_cluster" "rack" { name = var.name region = var.region - version = "1.14.8-do.0" + version = local.kubernetes_slug node_pool { name = "rack" @@ -39,8 +52,4 @@ resource "local_file" "kubeconfig" { endpoint = digitalocean_kubernetes_cluster.rack.endpoint token = digitalocean_kubernetes_cluster.rack.kube_config[0].token }) - - # lifecycle { - # ignore_changes = [content] - # } } diff --git a/terraform/cluster/do/variables.tf b/terraform/cluster/do/variables.tf index a31ec64..9f2398d 100644 --- a/terraform/cluster/do/variables.tf +++ b/terraform/cluster/do/variables.tf @@ -9,3 +9,7 @@ variable "node_type" { variable "region" { type = string } + +variable "token" { + type = string +} diff --git a/terraform/system/do/main.tf b/terraform/system/do/main.tf index 7074f99..153116e 100644 --- a/terraform/system/do/main.tf +++ b/terraform/system/do/main.tf @@ -31,6 +31,7 @@ module "cluster" { name = var.name node_type = var.node_type region = var.region + token = var.token } module "elasticsearch" { diff --git a/terraform/system/do/variables.tf b/terraform/system/do/variables.tf index 9315810..134fda9 100644 --- a/terraform/system/do/variables.tf +++ b/terraform/system/do/variables.tf @@ -21,3 +21,7 @@ variable "release" { variable "secret_key" { type = "string" } + +variable "token" { + type = "string" +}