diff --git a/.gitignore b/.gitignore index a524d43..23ce757 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Local .terraform directories **/.terraform/* +# .tfplan files +*.tfplan + # .tfstate files *.tfstate *.tfstate.* @@ -10,6 +13,7 @@ crash.log # terraform.tvars terraform.tfvars +terraform.tfvars.swp # known files created by terraform modules id_rsa* @@ -22,5 +26,5 @@ vagrant/local_config.yaml # MacOS junk .DS_Store -# Terraform plan files -*.tfplan \ No newline at end of file + + diff --git a/rancher/do/.terraform.lock.hcl b/rancher/do/.terraform.lock.hcl index 7416b28..d0d77d6 100644 --- a/rancher/do/.terraform.lock.hcl +++ b/rancher/do/.terraform.lock.hcl @@ -5,6 +5,7 @@ provider "registry.terraform.io/digitalocean/digitalocean" { version = "2.28.1" constraints = "2.28.1" hashes = [ + "h1:aSxcSWa0wQQGLW2/XyivecmR/BL9fVtw42Bg2UngmT0=", "h1:bwf8OuXTm95+liFiEz1Jopi+eKyXX3CGEDVYoXWrQ8s=", "zh:2e22294110ddfc4cd8c51e342f56788175d02b2bb311f1834f3c144a80dc30dc", "zh:59641f0c7b10befced370008a3178670ee1103fcb504a9b71f90d6f697738fc2", @@ -30,6 +31,7 @@ provider "registry.terraform.io/hashicorp/helm" { constraints = "2.10.1" hashes = [ "h1:OFRsk+lMoRoNoJjJzRngH8hAq++Sb6LwrEKIjd7PeWA=", + "h1:ctDhNJU4tEcyoUgPzwKuJmbDIqUl25mCY+s/lVHP6Sg=", "zh:0717312baed39fb0a00576297241b69b419880cad8771bf72dec97ebdc96b200", "zh:0e0e287b4e8429a0700143c8159764502eba0b33b1d094bf0d4ef4d93c7802cb", "zh:4f74605377dab4065aaad35a2c5fa6186558c6e2e57b9058bdc8a62cf91857b9", @@ -50,6 +52,7 @@ provider "registry.terraform.io/hashicorp/local" { constraints = "2.4.0" hashes = [ "h1:Bs7LAkV/iQTLv72j+cTMrvx2U3KyXrcVHaGbdns1NcE=", + "h1:R97FTYETo88sT2VHfMgkPU3lzCsZLunPftjSI5vfKe8=", "zh:53604cd29cb92538668fe09565c739358dc53ca56f9f11312b9d7de81e48fab9", "zh:66a46e9c508716a1c98efbf793092f03d50049fa4a83cd6b2251e9a06aca2acf", "zh:70a6f6a852dd83768d0778ce9817d81d4b3f073fab8fa570bff92dcb0824f732", @@ -70,6 +73,7 @@ provider "registry.terraform.io/hashicorp/tls" { constraints = "4.0.4" hashes = [ "h1:Wd3RqmQW60k2QWPN4sK5CtjGuO1d+CRNXgC+D4rKtXc=", + "h1:pe9vq86dZZKCm+8k1RhzARwENslF3SXb9ErHbQfgjXU=", "zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55", "zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848", "zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be", @@ -89,6 +93,7 @@ provider "registry.terraform.io/loafoe/ssh" { version = "2.6.0" constraints = "2.6.0" hashes = [ + "h1:80FIBNQBLj9p0j7EMQDWxzY6Fh0VODiflCww1/Wx6rk=", "h1:t88ktB3g9wVugCTkyg17AMJ38i+nz7FwotwiDbon/GU=", "zh:1285448b69bd388a4a59ed170f9c07c641207a7291057860557937807d02da95", "zh:2472c5dee4265cb555a627aa4ecc5702d32cd7aebe85722820df7499b7d4502a", @@ -109,6 +114,7 @@ provider "registry.terraform.io/rancher/rancher2" { constraints = "3.0.0" hashes = [ "h1:PdYi5E2j8AB1YYXfOaVLZtVeJJ47fI3GTVWrCEtCWPA=", + "h1:Qnc86BDThHGg+UqfK8Ssx7l+KcYg8wBDsMU3mCgUK6E=", "zh:3f28e165f4e6dbfb3c6f57ea96571f907915cf9d3eaf0041054ec3c4e22cc14b", "zh:4d71e727690d8691321c9591248599fdb38e09e27dace74da6dee16ec01351b0", "zh:51dc86277205c7514cad0edd6e48a300a470a846a12927323b09fb1550891bcb", diff --git a/rancher/do/infra.tf b/rancher/do/infra.tf index 878731d..cf6e80d 100644 --- a/rancher/do/infra.tf +++ b/rancher/do/infra.tf @@ -25,10 +25,11 @@ resource "digitalocean_ssh_key" "quickstart_ssh_key" { # DO droplet for creating a single node RKE cluster and installing the Rancher server resource "digitalocean_droplet" "rancher_server" { name = "${var.prefix}-rancher-server" - image = "ubuntu-20-04-x64" + image = "ubuntu-25-04-x64" region = var.do_region size = var.droplet_size ssh_keys = [digitalocean_ssh_key.quickstart_ssh_key.fingerprint] + tags = var.user_tag != "" ? [var.user_tag] : [] provisioner "remote-exec" { inline = [ @@ -70,10 +71,11 @@ module "rancher_common" { # DO droplet for creating a single node workload cluster resource "digitalocean_droplet" "quickstart_node" { name = "${var.prefix}-quickstart-node" - image = "ubuntu-20-04-x64" + image = "ubuntu-25-04-x64" region = var.do_region size = var.droplet_size ssh_keys = [digitalocean_ssh_key.quickstart_ssh_key.fingerprint] + tags = var.user_tag != "" ? [var.user_tag] : [] user_data = templatefile( "${path.module}/files/userdata_quickstart_node.template", diff --git a/rancher/do/terraform.tfvars.example b/rancher/do/terraform.tfvars.example index 70d39e6..11173f6 100644 --- a/rancher/do/terraform.tfvars.example +++ b/rancher/do/terraform.tfvars.example @@ -1,7 +1,9 @@ - # DigitalOcean API token used to create infrastructure do_token = "" +# Configure your user tag +user_tag = "user:delete-me" + # Admin password to use for Rancher server bootstrap, min. 12 characters rancher_server_admin_password = "" @@ -12,19 +14,19 @@ cert_manager_version = "1.11.0" do_region = "nyc1" # Droplet size used for all droplets -droplet_size = "s-2vcpu-4gb" +droplet_size = "s-4vcpu-8gb" # Prefix added to names of all resources -prefix = "quickstart" +prefix = "usr_quickstart" # The helm repository, where the Rancher helm chart is installed from rancher_helm_repository = "https://releases.rancher.com/server-charts/latest" # Kubernetes version to use for Rancher server cluster -rancher_kubernetes_version = "v1.24.14+k3s1" +rancher_kubernetes_version = "v1.31.9+k3s1" # Rancher server version (format: v0.0.0) -rancher_version = "2.7.9" +rancher_version = "2.10.7" # Kubernetes version to use for managed workload cluster -workload_kubernetes_version = "v1.24.14+rke2r1" \ No newline at end of file +workload_kubernetes_version = "v1.31.9+rke2r1" diff --git a/rancher/do/variables.tf b/rancher/do/variables.tf index 7dc6637..f2de54d 100644 --- a/rancher/do/variables.tf +++ b/rancher/do/variables.tf @@ -58,6 +58,12 @@ variable "rancher_server_admin_password" { description = "Admin password to use for Rancher server bootstrap, min. 12 characters" } +variable "user_tag" { + type = string + description = "Tag to assign to resources, in the format 'user:username'" + default = "delete-me" +} + # Local variables used to reduce repetition locals { node_username = "root"