Giter Site home page Giter Site logo

jagpk / terraform-aws-eks-data-addons Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aws-ia/terraform-aws-eks-data-addons

0.0 0.0 0.0 59 KB

Terraform Module: Deploy Data/ML Addons Helm Charts on EKS ๐Ÿš€

License: Apache License 2.0

Smarty 2.82% HCL 94.27% Mustache 2.91%

terraform-aws-eks-data-addons's Introduction

Terraform Module: ๐Ÿš€ Data & AI/ML Kubernetes Add-ons โš™๏ธ

This Terraform module contains commonly used Data & AI/ML related Kubernetes add-ons that are typically included in Data on EKS blueprints. The purpose of this module is to provide users with the flexibility to select and customize the add-ons they require while leveraging the Data on EKS blueprints.

โš ๏ธ Important Note

Users can consume this Terraform module in their projects to deploy any of the available addons. We will continue to maintain and update the existing Data/ML add-ons. However, we kindly request that you refrain from submitting Pull Requests (PRs) to add new addons at the moment, unless there is a supported blueprint available in the Data on EKS repository. The Apache and CNCF communities offer numerous open-source Data and ML add-ons, and while we appreciate their value, supporting all of them poses challenges.

Your understanding and cooperation are highly appreciated. ๐Ÿ™

Usage

Create Addon with the following example using Terraform registry. Checkout the complete example under test folder.

module "eks_data_addons" {
  source = "aws-ia/eks-data-addons/aws"
  version = "~> 1.0" # ensure to update this to the latest/desired version

  oidc_provider_arn = module.eks.oidc_provider_arn

  # Example to deploy AWS Neuron Device Plugin for Trainium and Inferentia instances
  enable_aws_efa_k8s_device_plugin = true

  # Example to deploy EFA K8s Device Plugin for GPU/Neuron instances
  enable_aws_efa_k8s_device_plugin = true

  # Example to deploy NVIDIA GPU Operator
  enable_nvidia_gpu_operator = true

  # Example to deploy Spark Operator Helm Chart
  enable_spark_opertor = true

  # Example to deploy Flink Operator Helm Chart
  enable_flink_operator = true

  # Example to deploy Apache YuniKorn Helm Chart
  enable_yunikorn = true

  # Example that uses ECR authentication for a particular registry ID
  enable_emr_spark_operator = var.enable_emr_spark_operator
  emr_spark_operator_helm_config = {
    repository_username = data.aws_ecr_authorization_token.token.user_name
    repository_password = data.aws_ecr_authorization_token.token.password
  }

  # Example to deploy Helm chart that uses IAM Role for ServiceAccounts. You can disable `create_irsa` and bring your own IAM role.
  enable_spark_history_server = var.enable_emr_spark_operator
  spark_history_server_helm_config = {
    create_irsa = true
    values = [
      templatefile("${path.module}/test/helm-values/spark-history-server-values.yaml", {
        s3_bucket_name   = module.s3_bucket.s3_bucket_id
        s3_bucket_prefix = aws_s3_object.this.key
      })
    ]
  }
}

Requirements

Name Version
terraform >= 1.0.0
aws >= 3.72
helm >= 2.4.1

Providers

Name Version
aws >= 3.72
helm >= 2.4.1

Modules

Name Source Version
spark_history_server_irsa ./irsa n/a

Resources

Name Type
helm_release.airflow resource
helm_release.aws_efa_k8s_device_plugin resource
helm_release.aws_neuron_device_plugin resource
helm_release.emr_spark_operator resource
helm_release.flink_operator resource
helm_release.jupyterhub resource
helm_release.kubecost resource
helm_release.nvidia_gpu_operator resource
helm_release.spark_history_server resource
helm_release.spark_operator resource
helm_release.strimzi_kafka_operator resource
helm_release.yunikorn resource
aws_partition.current data source
aws_region.current data source

Inputs

Name Description Type Default Required
airflow_helm_config Airflow Helm Chart config any {} no
aws_efa_k8s_device_plugin_helm_config EFA K8s Plugin add-on Helm Chart config any {} no
aws_neuron_device_plugin_helm_config AWS Neuron Device Plugin Helm Chart config any {} no
emr_spark_operator_helm_config Helm configuration for Spark Operator with EMR Runtime any {} no
enable_airflow Enable Airflow add-on bool false no
enable_aws_efa_k8s_device_plugin Enable EFA K8s Plugin add-on bool false no
enable_aws_neuron_device_plugin Enable AWS Neuron Device Plugin add-on bool false no
enable_emr_spark_operator Enable the Spark Operator to submit jobs with EMR Runtime bool false no
enable_flink_operator Enable Flink Operator add-on bool false no
enable_jupyterhub Enable Jupyterhub Add-On bool false no
enable_kubecost Enable Kubecost add-on bool false no
enable_nvidia_gpu_operator Enable NVIDIA GPU Operator add-on bool false no
enable_spark_history_server Enable Spark History Server add-on bool false no
enable_spark_operator Enable Spark on K8s Operator add-on bool false no
enable_strimzi_kafka_operator Enable the Strimzi Kafka Operator bool false no
enable_yunikorn Enable Apache YuniKorn K8s scheduler add-on bool false no
flink_operator_helm_config Flink Operator Helm Chart config any {} no
jupyterhub_helm_config Helm configuration for JupyterHub any {} no
kubecost_helm_config Kubecost Helm Chart config any {} no
nvidia_gpu_operator_helm_config Helm configuration for NVIDIA GPU Operator any {} no
oidc_provider_arn The ARN of the cluster OIDC Provider string n/a yes
spark_history_server_helm_config Helm configuration for Spark History Server any {} no
spark_operator_helm_config Helm configuration for Spark K8s Operator any {} no
strimzi_kafka_operator_helm_config Helm configuration for Strimzi Kafka Operator any {} no
yunikorn_helm_config Helm configuration for Apache YuniKorn any {} no

Outputs

Name Description
airflow Airflow Helm Chart metadata
aws_efa_k8s_device_plugin AWS EFA K8s Plugin Helm Chart metadata
aws_neuron_device_plugin AWS Neuron Device Plugin Helm Chart metadata
emr_spark_operator EMR Spark Operator Helm Chart metadata
flink_operator Flink Operator Helm Chart metadata
jupyterhub Jupyterhub Helm Chart metadata
kubecost Kubecost Helm Chart metadata
nvidia_gpu_operator Nvidia GPU Operator Helm Chart metadata
spark_history_server Spark History Server Helm Chart metadata
spark_operator Spark Operator Helm Chart metadata
strimzi_kafka_operator Strimzi Kafka Operator Helm Chart metadata
yunikorn Yunikorn Helm Chart metadata

terraform-aws-eks-data-addons's People

Contributors

vara-bonthu avatar tbulding avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.