Skip to content

honhaoz/3-tier-app-deployment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Team Project

License

Table of Contents

Overview

This repository contains the infrastructure-as-code (IaC) setup for an Amazon EKS (Elastic Kubernetes Service) cluster using Terraform. The EKS cluster hosts a Leaner Management System using React frontend, Java backend with PostgreSQL as the database. The project includes a CI/CD pipeline implemented with CircleCI and ArgoCD for automated deployment.

Features

  • Infrastructure provisioning with Terraform.
  • React frontend, Java backend, and PostgreSQL application.
  • Continuous Integration/Continuous Deployment (CI/CD) with CircleCI and ArgoCD.
  • Kubernetes configuration for frontend and backend services.
  • Ingress rules defined for routing traffic.

Prerequisites

Before you begin, ensure you have the following prerequisites:

  • AWS account with necessary permissions.
  • Terraform installed locally.
  • CircleCI and ArgoCD configured.
  • Kubernetes command-line tool (kubectl) installed.

Setup

  1. Clone the repository:

    git clone https://github.com/Honghao-Zheng/team-project.git
    cd team-project
    
  2. Configure Terraform variables:

    cp terraform.tfvars.example terraform.tfvars
  3. Initialize and apply Terraform:

    terraform init
    terraform apply
    

Usage

After the setup is complete, deploy your applications using the CI/CD pipeline. Commits to the `main` branch trigger automatic deployments.

CI/CD Pipeline

The CI/CD pipeline is implemented using CircleCI. The pipeline includes:

Automated testing. Build and push Docker images. Deployment using ArgoCD. Refer to the `.circleci/config.yml` file for pipeline details.

Kubernetes Configuration

Kubernetes configuration files (`cicd/kubernetes/`) are provided for the frontend and backend services. Adjust these files as needed for your application.

Ingress rules are defined in `cicd/kubernetes/ingress.yaml` for routing external traffic.

About

Deployment of a 3-tier application on AWS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages