Skip to content

drizzle-ai-systems/terraform-aws-vllm-eks-helm

Repository files navigation

vllm-eks-helm Terraform module

Terraform module which creates a vLLM workload on EKS and manage related Helm releases.

Usage

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
}

Dependencies

Configure LLM Model with vLLM

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

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.

Requirements

Name Version
terraform >= 1.3.0
aws >= 6.19

Providers

Name Version
aws >= 6.19

Modules

Name Source Version
vllm ./modules/helm-release n/a

Resources

Name Type
aws_eks_cluster.this data source

Inputs

Name Description Type Default Required
eks EKS cluster information. Only cluster_name is required by this module.
object({
cluster_name = string
})
n/a yes
helm Helm client options
object({
atomic = bool
cleanup_on_fail = bool
timeout = number
wait = bool
values_template_path = string
})
{
"atomic": true,
"cleanup_on_fail": true,
"timeout": 300,
"wait": true
}
no
k8s Kubernetes-related settings for the helm release
object({
create_namespace = bool
kubernetes_namespace = string
service_account_namespace = string
service_account_name = string
iam_role_enabled = bool
})
{
"create_namespace": true,
"iam_role_enabled": true,
"kubernetes_namespace": "vllm",
"service_account_name": "vllm-sa",
"service_account_namespace": "vllm"
}
no
tags A map of tags to add to all resources map(string) {} no
vllm vllm helm module settings
object({
enabled = bool
force_update = bool
})
{
"enabled": true,
"force_update": true
}
no

Outputs

No outputs.

License

Apache-2.0 Licensed. See LICENSE.

About

Terraform module to deploy LLM Models with vLLM using Helm

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published