Terraform module which creates a vLLM workload on EKS and manage related Helm releases.
See the examples directory for working examples to reference:
module "vllm_mistral_7b" {
source = "drizzle-ai-systems/vllm-eks-helm/aws"
eks = {
cluster_name = "eks-cluster" # cluster name needs to be existing
}
vllm = {
enabled = true
force_update = true
}
k8s = {
create_namespace = true
kubernetes_namespace = "vllm-mistral-7b"
service_account_namespace = "vllm-mistral-7b"
service_account_name = "vllm-mistral-7b-sa"
iam_role_enabled = true
}
helm = {
atomic = true
cleanup_on_fail = true
timeout = 300
wait = true
values_template_path = "${path.module}/helm/mistral-7b-values.yaml"
}
tags = local.tags
}
This module is using the vLLM Helm chart to deploy a vLLM workload on EKS. To configure your LLM model with vLLM, you need to create a values template file and pass it to the module using the values_template_path variable. See vLLM Helm chart for more information.
Examples codified under the examples directory are intended to give users references for how to use the module(s) and for testing/validating changes to the module. If contributing, update the relevant examples so maintainers can test changes and users have up-to-date references.
| Name | Version |
|---|---|
| terraform | >= 1.3.0 |
| aws | >= 6.19 |
| Name | Version |
|---|---|
| aws | >= 6.19 |
| Name | Source | Version |
|---|---|---|
| vllm | ./modules/helm-release | n/a |
| Name | Type |
|---|---|
| aws_eks_cluster.this | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| eks | EKS cluster information. Only cluster_name is required by this module. | object({ |
n/a | yes |
| helm | Helm client options | object({ |
{ |
no |
| k8s | Kubernetes-related settings for the helm release | object({ |
{ |
no |
| tags | A map of tags to add to all resources | map(string) |
{} |
no |
| vllm | vllm helm module settings | object({ |
{ |
no |
No outputs.
Apache-2.0 Licensed. See LICENSE.