Home

Awesome

Ever Gauzy Terraform for AWS Cloud

Overview

This Terraform module is designed to provision infrastructure components required for a Gauzy application environment in AWS. It includes modules for creating a Virtual Private Cloud (VPC), a Relational Database Service (RDS) instance, an Amazon Elastic Kubernetes Service (EKS) cluster, and deploying applications using Helm charts.

Features

Usage

Prerequisites

Modules

VPC

The VPC module creates a Virtual Private Cloud (VPC) with public and private subnets.

module "vpc" {
  source      = "./modules/terraform-gauzy-vpc"
  environment = var.environment
  region      = var.region
}

RDS

The RDS module provisions an RDS instance (PostgreSQL or MySQL) for database needs.

module "rds" {
  source                = "./modules/terraform-gauzy-rds"
  environment           = var.environment
  region                = var.region
  database_subnet_group = module.vpc.database_subnet_group
  vpc_cidr              = module.vpc.vpc_cidr
  vpc_id                = module.vpc.vpc_id
}

EKS

The EKS module sets up an Amazon Elastic Kubernetes Service (EKS) cluster for hosting containerized applications.

module "eks" {
  source            = "./modules/terraform-gauzy-eks"
  environment       = var.environment
  cluster_version   = var.cluster_version
  region            = var.region
  private-subnet_id = module.vpc.private-subnet_id
  vpc_id            = module.vpc.vpc_id
}

Helm

The Helm module deploys applications using Helm charts, with support for external databases.

module "helm" {
  source                             = "./modules/terraform-gauzy-helm"
  environment                        = var.environment
  region                             = var.region
  name                               = var.name
  h_version                          = var.h_version
  chart                              = var.chart
  external_db                        = var.external_db
  api_host                           = var.api_host
  api_secretName                     = var.api_secretName
  web_host                           = var.web_host
  web_secretName                     = var.web_secretName
  cluster_endpoint                   = module.eks.cluster_endpoint
  cluster_certificate_authority_data = module.eks.cluster_certificate_authority_data
  cluster_name                       = module.eks.cluster_name
  db_instance_address                = module.rds.db_instance_address
  db_instance_username               = module.rds.db_instance_username
  db_instance_name                   = module.rds.db_instance_name
}

Input Variables

VPC Module

NameDescriptionTypeDefault
environmentThe environment to provision infrastructure forstringdemo
regionThe AWS region to deploy resources instringus-east-1

RDS Module

NameDescriptionTypeDefault
environmentThe environment to provision infrastructure forstringdemo
regionThe AWS region to deploy resources instringus-east-1
create_rdsWhether to create the RDS instance or notboolfalse

EKS Module

NameDescriptionTypeDefault
environmentThe environment to provision infrastructure forstringdemo
cluster_versionKubernetes version for the EKS clusterstring1.28
regionThe AWS region to deploy resources instringus-east-1
create_eksWhether to create the EKS cluster or notboolfalse

Helm Module

NameDescriptionTypeDefault
environmentThe environment to provision infrastructure forstringdemo
regionThe AWS region to deploy resources instringus-east-1
nameName of the Helm releasestringever-gauzy
h_versionVersion of the Helm chart to deploystring0.1.9
chartName of the Helm chart to deploystringever-gauzy
external_dbWhether to use an external databasebooltrue
api_hostAPI host for the applicationstringapidemo.gauzy.co
api_secretNameSecret name for API TLS certificatestringchart-example-tls
web_hostWeb host for the applicationstringdemo.gauzy.co
web_secretNameSecret name for web TLS certificatestringchart-example-tls

visitors License: AGPL v3

🌟 What is it

Terraform to deploy Ever Gauzy Platform into AWS Cloud.

🔗 Links

💌 Contact Us

🔐 Security

Ever® Gauzy Platform follows good security practices, but 100% security cannot be guaranteed in any software! Ever® Gauzy Platform is provided AS IS without any warranty. Use at your own risk! See more details in the LICENSE.

In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, Socket.io WebSockets, etc.).

If you discover any issue regarding security, please disclose the information responsibly by sending an email to mailto:security@ever.co and not by creating a GitHub issue.

🛡️ License

We support the open-source community. If you're building awesome non-profit/open-source projects, we're happy to help and will provide (subject to acceptance criteria) Enterprise edition license and free hosting option! Feel free to contact us at mailto:ever@ever.co to make a request. More details are explained in our Wiki.

Ever Gauzy Platform License

The default Ever® Gauzy™ Platform license, without a valid Ever® Gauzy™ Platform Enterprise or Ever® Gauzy™ Platform Small Business License agreement, is the Ever® Gauzy™ Platform Community Edition License

Please see LICENSE for more information on licenses.

™️ Trademarks

Ever® is a registered trademark of Ever Co. LTD. Ever® Demand™, Ever® Gauzy™, Ever® Teams™ and Ever® OpenSaaS™ are all trademarks of Ever Co. LTD.

The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.

All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

🍺 Contribute

💪 Thanks to our Contributors

<img src="https://contributors-img.web.app/image?repo=ever-co/ever-gauzy-terraform-aws" />

❤️ Powered By

<p> <a href="https://www.digitalocean.com/?utm_medium=opensource&utm_source=ever-co"> <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg" width="201px"> </a> </p>

©️ Copyright

Copyright © 2024-present, Ever Co. LTD. All rights reserved

🔥 P.S