Skip to content

hoverkraft-tech/terraform-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Terraform Modules

Production-ready Terraform modules for cloud infrastructure

License: MIT Terraform GitHub Stars GitHub Issues GitHub Pull Requests

A comprehensive, well-tested collection of Terraform modules maintained by hoverkraft-tech

Features β€’ Quick Start β€’ Usage β€’ Modules β€’ Contributing β€’ Support


πŸ“– About

This repository provides a reference modules library for building and managing cloud infrastructure with Terraform. Our modules are designed to be:

  • βœ… Production-ready – Tested and validated in real-world scenarios
  • πŸ”§ Highly configurable – Flexible inputs to fit your use cases
  • πŸ“š Well-documented – Each module includes comprehensive documentation
  • πŸ”’ Security-focused – Following cloud security best practices
  • 🎯 Opinionated – Sensible defaults for quick deployment

We primarily use these modules to set up complex Kubernetes infrastructure based on our full perimeter product hoverkraft DX-plan (more to come about it).

✨ Features

The current modules cover these topics:

☁️ Cloud Providers

Amazon Web Services (AWS)

OVHcloud

Scaleway

πŸ” GitHub Management

🎯 Kubernetes

πŸ”’ Secrets Management

πŸš€ Quick Start

Prerequisites

Before using these modules, ensure you have:

  • Terraform ~> 1.3 installed
  • Cloud provider CLI tools configured (AWS CLI, OVH CLI, etc.)
  • Valid credentials for your cloud provider

Basic Usage

Modules can be used like any standard Terraform module. Here's a simple example:

module "my_aws_s3_bucket" {
  source = "github.com/hoverkraft-tech/terraform-modules.git?ref=1.0.0//aws/s3-bucket"

  name = "my-bucket"
}

πŸ’‘ Usage

Using a Specific Version

We recommend pinning to a specific version or tag:

module "eks_cluster" {
  source = "github.com/hoverkraft-tech/terraform-modules.git?ref=v1.2.3//aws/eks-cluster"

  name               = "my-cluster"
  cluster_version    = "1.28"
  vpc_id             = module.vpc.vpc_id
  private_subnet_ids = module.vpc.private_subnet_ids
}

Using the Latest Version

For development or testing, you can use the latest version from main:

module "github_repo" {
  source = "github.com/hoverkraft-tech/terraform-modules.git//github/repository"

  name        = "my-awesome-project"
  description = "An awesome project"
  visibility  = "public"
}

Module-Specific Documentation

Each module has its own detailed README.md with:

  • πŸ“‹ Input variables
  • πŸ“€ Output values
  • πŸ“š Usage examples
  • βš™οΈ Requirements

Navigate to any module directory to view its documentation.

πŸ“¦ Available Modules

View all available modules

AWS Modules

OVH Modules

Scaleway Modules

GitHub Modules

Kubernetes Modules

Password Store Modules

🀝 Contributing

We welcome contributions from the community! Whether it's bug fixes, new modules, or documentation improvements, your help is appreciated.

Development Setup

We leverage the following tools to minimize work and time needed to review a PR:

  • πŸ”§ asdf – Ensures we're using the same tool versions
  • πŸͺ pre-commit – Automated checks before commits

Setup Instructions

# Clone the repository
git clone [email protected]:hoverkraft-tech/terraform-modules.git
cd terraform-modules

# Install required tools
asdf install

# Install pre-commit hooks
pre-commit install -t pre-push

Submitting a New Module

  1. Create a branch for your work

    git checkout -b feature/my-new-module
  2. Copy the template as a boilerplate

    cp -r _template my-provider/my-module
  3. Customize your module with:

    • Terraform resources
    • Input variables
    • Output values
    • README documentation
  4. Run pre-commit checks

    pre-commit run --all-files
  5. Submit a pull request

    • Include a clear description of your module
    • Reference any related issues
    • Add examples of usage
  6. Monitor CI checks and address any feedback

Code Quality Tools

Our modules are validated with:

  • βœ… terraform-docs – Auto-generates documentation
  • βœ… tflint – Lints Terraform code
  • βœ… checkov – Security and compliance scanning
  • βœ… trivy – Vulnerability scanning

Contribution Guidelines

  • Follow the existing module structure and naming conventions
  • Include comprehensive documentation
  • Add examples demonstrating module usage
  • Ensure all pre-commit checks pass
  • Write clear commit messages

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

Need help? Here's how to get support:

🌟 Show Your Support

If you find these modules helpful, please consider:

  • ⭐ Starring this repository
  • πŸ”€ Forking for your own use
  • πŸ“’ Sharing with others
  • 🀝 Contributing improvements

🏒 About hoverkraft-tech

These modules are maintained by the team at hoverkraft-tech. We're passionate about building reliable, scalable infrastructure and sharing our knowledge with the community.


Made with ❀️ by the hoverkraft-tech team

GitHub

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages