From d3e770254de0bb301815ca87257c8b1a357d06c4 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 26 Apr 2026 21:02:47 +0800 Subject: hehe --- terraform/envs/agent/.terraform.lock.hcl | 19 +++++++++++++++++++ terraform/envs/agent/backend.tf | 5 +++++ terraform/envs/agent/main.tf | 27 +++++++++++++++++++++++++++ terraform/envs/agent/variables.tf | 14 ++++++++++++++ terraform/envs/agent/versions.tf | 6 ++++++ 5 files changed, 71 insertions(+) create mode 100644 terraform/envs/agent/.terraform.lock.hcl create mode 100644 terraform/envs/agent/backend.tf create mode 100644 terraform/envs/agent/main.tf create mode 100644 terraform/envs/agent/variables.tf create mode 100644 terraform/envs/agent/versions.tf (limited to 'terraform/envs/agent') diff --git a/terraform/envs/agent/.terraform.lock.hcl b/terraform/envs/agent/.terraform.lock.hcl new file mode 100644 index 0000000..605df33 --- /dev/null +++ b/terraform/envs/agent/.terraform.lock.hcl @@ -0,0 +1,19 @@ +# This file is maintained automatically by "tofu init". +# Manual edits may be lost in future updates. + +provider "registry.opentofu.org/hashicorp/kubernetes" { + version = "2.38.0" + constraints = "~> 2.31" + hashes = [ + "h1:nY7J9jFXcsRINog0KYagiWZw1GVYF9D2JmtIB7Wnrao=", + "zh:1096b41c4e5b2ee6c1980916fb9a8579bc1892071396f7a9432be058aabf3cbc", + "zh:2959fde9ae3d1deb5e317df0d7b02ea4977951ee6b9c4beb083c148ca8f3681c", + "zh:5082f98fcb3389c73339365f7df39fc6912bf2bd1a46d5f97778f441a67fd337", + "zh:620fd5d0fbc2d7a24ac6b420a4922e6093020358162a62fa8cbd37b2bac1d22e", + "zh:7f47c2de179bba35d759147c53082cad6c3449d19b0ec0c5a4ca8db5b06393e1", + "zh:89c3aa2a87e29febf100fd21cead34f9a4c0e6e7ae5f383b5cef815c677eb52a", + "zh:96eecc9f94938a0bc35b8a63d2c4a5f972395e44206620db06760b730d0471fc", + "zh:e15567c1095f898af173c281b66bffdc4f3068afdd9f84bb5b5b5521d9f29584", + "zh:ecc6b912629734a9a41a7cf1c4c73fb13b4b510afc9e7b2e0011d290bcd6d77f", + ] +} diff --git a/terraform/envs/agent/backend.tf b/terraform/envs/agent/backend.tf new file mode 100644 index 0000000..3c533e6 --- /dev/null +++ b/terraform/envs/agent/backend.tf @@ -0,0 +1,5 @@ +terraform { + backend "local" { + path = "terraform.tfstate" + } +} diff --git a/terraform/envs/agent/main.tf b/terraform/envs/agent/main.tf new file mode 100644 index 0000000..122eaca --- /dev/null +++ b/terraform/envs/agent/main.tf @@ -0,0 +1,27 @@ +provider "kubernetes" { + config_path = pathexpand(var.kubeconfig) + config_context = var.kube_context +} + +module "agent" { + source = "../../modules/agent" + + namespace = "agent" + agent_source_path = var.agent_source_path + + # Point at the prod LLM. `svc.cluster.local` resolves from any namespace. + llm_service_url = "http://llm-llm-app.llm-prod.svc.cluster.local:8000/v1" + model_alias = "Qwen2.5-1.5B-Instruct" + + ingress_host = "agent.localtest.me" +} + +output "ingress_host" { value = module.agent.ingress_host } +output "service_dns" { value = module.agent.service_dns } +output "curl_example" { + value = <<-EOT + curl -s http://${module.agent.ingress_host}:8080/ask \ + -H 'Content-Type: application/json' \ + -d '{"question":"what is 123 * 47?"}' + EOT +} diff --git a/terraform/envs/agent/variables.tf b/terraform/envs/agent/variables.tf new file mode 100644 index 0000000..bf005b9 --- /dev/null +++ b/terraform/envs/agent/variables.tf @@ -0,0 +1,14 @@ +variable "kubeconfig" { + type = string + default = "~/.kube/config" +} + +variable "kube_context" { + type = string + default = "kind-llm-local" +} + +variable "agent_source_path" { + type = string + description = "Absolute path to agent/agent.py" +} diff --git a/terraform/envs/agent/versions.tf b/terraform/envs/agent/versions.tf new file mode 100644 index 0000000..69cf77e --- /dev/null +++ b/terraform/envs/agent/versions.tf @@ -0,0 +1,6 @@ +terraform { + required_version = ">= 1.6.0" + required_providers { + kubernetes = { source = "hashicorp/kubernetes", version = "~> 2.31" } + } +} -- cgit