summaryrefslogtreecommitdiff
path: root/terraform/envs/agent
diff options
context:
space:
mode:
Diffstat (limited to 'terraform/envs/agent')
-rw-r--r--terraform/envs/agent/.terraform.lock.hcl19
-rw-r--r--terraform/envs/agent/backend.tf5
-rw-r--r--terraform/envs/agent/main.tf27
-rw-r--r--terraform/envs/agent/variables.tf14
-rw-r--r--terraform/envs/agent/versions.tf6
5 files changed, 71 insertions, 0 deletions
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 @@
1# This file is maintained automatically by "tofu init".
2# Manual edits may be lost in future updates.
3
4provider "registry.opentofu.org/hashicorp/kubernetes" {
5 version = "2.38.0"
6 constraints = "~> 2.31"
7 hashes = [
8 "h1:nY7J9jFXcsRINog0KYagiWZw1GVYF9D2JmtIB7Wnrao=",
9 "zh:1096b41c4e5b2ee6c1980916fb9a8579bc1892071396f7a9432be058aabf3cbc",
10 "zh:2959fde9ae3d1deb5e317df0d7b02ea4977951ee6b9c4beb083c148ca8f3681c",
11 "zh:5082f98fcb3389c73339365f7df39fc6912bf2bd1a46d5f97778f441a67fd337",
12 "zh:620fd5d0fbc2d7a24ac6b420a4922e6093020358162a62fa8cbd37b2bac1d22e",
13 "zh:7f47c2de179bba35d759147c53082cad6c3449d19b0ec0c5a4ca8db5b06393e1",
14 "zh:89c3aa2a87e29febf100fd21cead34f9a4c0e6e7ae5f383b5cef815c677eb52a",
15 "zh:96eecc9f94938a0bc35b8a63d2c4a5f972395e44206620db06760b730d0471fc",
16 "zh:e15567c1095f898af173c281b66bffdc4f3068afdd9f84bb5b5b5521d9f29584",
17 "zh:ecc6b912629734a9a41a7cf1c4c73fb13b4b510afc9e7b2e0011d290bcd6d77f",
18 ]
19}
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 @@
1terraform {
2 backend "local" {
3 path = "terraform.tfstate"
4 }
5}
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 @@
1provider "kubernetes" {
2 config_path = pathexpand(var.kubeconfig)
3 config_context = var.kube_context
4}
5
6module "agent" {
7 source = "../../modules/agent"
8
9 namespace = "agent"
10 agent_source_path = var.agent_source_path
11
12 # Point at the prod LLM. `svc.cluster.local` resolves from any namespace.
13 llm_service_url = "http://llm-llm-app.llm-prod.svc.cluster.local:8000/v1"
14 model_alias = "Qwen2.5-1.5B-Instruct"
15
16 ingress_host = "agent.localtest.me"
17}
18
19output "ingress_host" { value = module.agent.ingress_host }
20output "service_dns" { value = module.agent.service_dns }
21output "curl_example" {
22 value = <<-EOT
23 curl -s http://${module.agent.ingress_host}:8080/ask \
24 -H 'Content-Type: application/json' \
25 -d '{"question":"what is 123 * 47?"}'
26 EOT
27}
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 @@
1variable "kubeconfig" {
2 type = string
3 default = "~/.kube/config"
4}
5
6variable "kube_context" {
7 type = string
8 default = "kind-llm-local"
9}
10
11variable "agent_source_path" {
12 type = string
13 description = "Absolute path to agent/agent.py"
14}
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 @@
1terraform {
2 required_version = ">= 1.6.0"
3 required_providers {
4 kubernetes = { source = "hashicorp/kubernetes", version = "~> 2.31" }
5 }
6}