Skip to content

DoEKS v2 DevelopmentΒ #905

Description

@vara-bonthu

We are actively restructuring the Data on EKS (DoEKS) repository to make it cleaner, modular, and easier to use and contribute to.
This effort is being tracked as DoEKS v2.


πŸš€ What’s Changing

1. New Repository Structure

  • infra/ β†’ Terraform Infrastructure

    • Centralized Terraform modules for EKS, networking, IRSA, Karpenter, and core services.
    • Single source of truth β€” blueprints will no longer duplicate infra code; instead, they will pull from this central location during installation.
  • data-stacks/

    • Contains blueprint-specific configuration and examples (e.g., spark-on-eks, flink-on-eks).
    • Each blueprint follows a consistent structure:
      examples/
      terraform/
        data-stack.tfvars
      cleanup.sh
      deploy-data-stack.sh
      set-env.sh
      
    • Example: Spark on EKS data-stack.tfvars
  • website/

    • Improved documentation site with updated guides, architecture diagrams, and benchmarks.

2. Add-ons Moving to ArgoCD Applications

  • All platform add-ons are now managed as ArgoCD Applications for easier lifecycle management and GitOps workflows.
  • See: ArgoCD Applications

General folder structure.

project/
β”œβ”€β”€ infra/                          # Base infrastructure templates
β”‚   β”œβ”€β”€ terraform/
β”‚   β”‚   β”œβ”€β”€ main.tf
β”‚   β”‚   └── s3.tf
β”‚   β”œβ”€β”€ argocd-applications/
β”‚   β”‚   └── *.yaml
β”‚   └── manifests/
β”‚       └── deployment.yaml
β”‚
└── data-stacks/
    └── spark-operator/             # Example blueprint
        β”œβ”€β”€ _local/                 # Working directory (auto-generated)
        β”œβ”€β”€ install.sh              # Installation script
        β”œβ”€β”€ extra.tf                # Blueprint-specific Terraform
        β”œβ”€β”€ s3.tf                   # Overrides base s3.tf
        β”œβ”€β”€ *.tfvars               # Blueprint variables
        └── manifests/
            └── deployment.yaml     # Overrides base deployment.yaml

1. Base + Blueprint Pattern

  • infra/ contains common infrastructure code shared across all deployments
  • blueprints/ contain specialized configurations that extend or customize the base
  • Each blueprint is completely independent with its own state and working directory

2. Installation Process

When a user runs ./install.sh from a blueprint directory:

    • Copy base: Copy all files from infra/ to _local/
    • Apply data-stack: Copy blueprint files to _local/, overwriting any matching filenames
    • Deploy: Run terraform init/plan/apply from _local/

3. File Override Behavior

  • β€’ Files with matching names are completely replaced (not merged)
  • β€’ New files from data-stack are added
  • β€’ Folder structure is preserved - only files within folders are replaced
  • This is meant to be used where you cannot use tfvars and should be avoided where we can.

4. User Experience

cd blueprints/spark-on-eks/
./install.sh

πŸ’‘ Why This Matters

  • Cleaner architecture β€” no more infra duplication across blueprints
  • Faster updates β€” improve consistency and maintainability of modules
  • Easier onboarding β€” new contributors can focus on blueprints, not boilerplate infra
  • GitOps-native β€” standardizing on ArgoCD Applications improves day-2 operations

πŸ”— Follow & Contribute

  • Preview the new structure: DoEKS v2 Branch
  • Share feedback: Comment on this issue or open new ones tagged with v2.
  • Feature requests: Create a new issue to request or propose enhancements for v2.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or requestwork-in-progressDo not merge yet, work in progress

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions