From 4748f6838068c4a3109d2b889d50da0d1b619c84 Mon Sep 17 00:00:00 2001 From: justgithubaccount Date: Sat, 6 Dec 2025 16:29:02 +0300 Subject: [PATCH 1/3] refactor: use external Terraform module for k8s cluster MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace inline resources with module from infra-cluster repo - Use git source for module: modules/timeweb-k8s - Update outputs to reference module outputs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- terraform/timeweb/main.tf | 33 +++++++++++++++++++-------------- terraform/timeweb/outputs.tf | 8 ++++---- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/terraform/timeweb/main.tf b/terraform/timeweb/main.tf index 85b4026..45398f7 100644 --- a/terraform/timeweb/main.tf +++ b/terraform/timeweb/main.tf @@ -1,20 +1,25 @@ +terraform { + required_providers { + twc = { + source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud" + } + } +} + provider "twc" { token = var.timeweb_token } -resource "twc_k8s_cluster" "main" { - name = var.cluster_name - project_id = var.project_id - network_id = var.network_id - network_driver = var.network_driver - preset_id = var.cluster_preset_id - version = var.k8s_version -} +module "k8s" { + source = "git::https://github.com/justgithubaccount/infra-cluster.git//modules/timeweb-k8s?ref=main" -resource "twc_k8s_node_group" "workers" { - cluster_id = twc_k8s_cluster.main.id - name = "${var.cluster_name}-workers" - preset_id = var.node_preset_id - node_count = var.node_count - is_autoscaling = var.autoscaling + cluster_name = var.cluster_name + project_id = var.project_id + network_id = var.network_id + cluster_preset_id = var.cluster_preset_id + node_preset_id = var.node_preset_id + node_count = var.node_count + k8s_version = var.k8s_version + network_driver = var.network_driver + autoscaling = var.autoscaling } diff --git a/terraform/timeweb/outputs.tf b/terraform/timeweb/outputs.tf index f9655e6..3c74f58 100644 --- a/terraform/timeweb/outputs.tf +++ b/terraform/timeweb/outputs.tf @@ -1,20 +1,20 @@ output "cluster_id" { description = "Kubernetes cluster ID" - value = twc_k8s_cluster.main.id + value = module.k8s.cluster_id } output "cluster_name" { description = "Kubernetes cluster name" - value = twc_k8s_cluster.main.name + value = module.k8s.cluster_name } output "node_group_id" { description = "Node group ID" - value = twc_k8s_node_group.workers.id + value = module.k8s.node_group_id } output "kubeconfig" { description = "Kubernetes cluster kubeconfig" - value = twc_k8s_cluster.main.kubeconfig + value = module.k8s.kubeconfig sensitive = true } From 2568ed7e64b83f789931300103dd9c4c81138b4b Mon Sep 17 00:00:00 2001 From: justgithubaccount Date: Sat, 6 Dec 2025 16:32:30 +0300 Subject: [PATCH 2/3] fix: remove duplicate required_providers, use branch ref --- terraform/timeweb/main.tf | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/terraform/timeweb/main.tf b/terraform/timeweb/main.tf index 45398f7..127ffb4 100644 --- a/terraform/timeweb/main.tf +++ b/terraform/timeweb/main.tf @@ -1,17 +1,9 @@ -terraform { - required_providers { - twc = { - source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud" - } - } -} - provider "twc" { token = var.timeweb_token } module "k8s" { - source = "git::https://github.com/justgithubaccount/infra-cluster.git//modules/timeweb-k8s?ref=main" + source = "git::https://github.com/justgithubaccount/infra-cluster.git//modules/timeweb-k8s?ref=feat/timeweb-k8s-module" cluster_name = var.cluster_name project_id = var.project_id From fad0e69b26bf0e6c8984f9fb4d46e53896b7e5f5 Mon Sep 17 00:00:00 2001 From: justgithubaccount Date: Sat, 6 Dec 2025 16:37:26 +0300 Subject: [PATCH 3/3] chore: update module ref to main after merge --- terraform/timeweb/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/timeweb/main.tf b/terraform/timeweb/main.tf index 127ffb4..d414bdd 100644 --- a/terraform/timeweb/main.tf +++ b/terraform/timeweb/main.tf @@ -3,7 +3,7 @@ provider "twc" { } module "k8s" { - source = "git::https://github.com/justgithubaccount/infra-cluster.git//modules/timeweb-k8s?ref=feat/timeweb-k8s-module" + source = "git::https://github.com/justgithubaccount/infra-cluster.git//modules/timeweb-k8s?ref=main" cluster_name = var.cluster_name project_id = var.project_id