Terraform Deployment Guide

Deploy the vanilla version of Kubeflow on AWS using Terraform

Note: Terraform deployment options are still in preview.

Background

This guide will walk you through using Terraform to:

  • Create a VPC
  • Create an EKS cluster
  • Deploy the vanilla distribution of Kubeflow on AWS

Terraform documentation can be found here.

Prerequisites

Be sure that you have satisfied the installation prerequisites before working through this guide.

Specifially, you must:

Additionally, ensure you are in the REPO_ROOT/deployments/vanilla/terraform folder.

If you are in repository’s root folder, run:

cd deployments/vanilla/terraform
pwd

Deployment Steps

Configure

  1. Define the following environment variables:

    # Region to create the cluster in
    export CLUSTER_REGION=
    # Name of the cluster to create
    export CLUSTER_NAME=
    
  2. Save the variables to a .tfvars file:

    cat <<EOF > sample.auto.tfvars
    cluster_name="${CLUSTER_NAME}"
    cluster_region="${CLUSTER_REGION}"
    EOF
    

(Optional) Configure Culling for Notebooks

Enable culling for notebooks by following the instructions in configure culling for notebooks guide.

Optionally enable AWS S3 as a Terraform backend by following the instructions here.

All Configurations

A full list of inputs for the terraform stack can be found here.

Preview

View a preview of the configuration you are about apply:

terraform init && terraform plan

Apply

Run the following command:

make deploy

Connect to your Kubeflow dashboard

For information on connecting to your Kubeflow dashboard depending on your deployment environment, see Port-forward (Terraform deployment). Then, log into the Kubeflow UI.

Cleanup

Uninstall Kubeflow on AWS with a single command.

make delete
Last modified April 19, 2023: Update TF S3 backend guide (#688) (41e87484)