https://github.com/jadonharsh109/iac-master-actions
This project is a comprehensive end-to-end CI/CD solution designed to streamline your development workflow across multiple environments. We leverage GitHub Actions to automate the entire process, ensuring efficient and reliable delivery of your applications
https://github.com/jadonharsh109/iac-master-actions
actions argocd aws cicd docker docker-compose dockle eks gitops sonarqube terraform
Last synced: 3 months ago
JSON representation
This project is a comprehensive end-to-end CI/CD solution designed to streamline your development workflow across multiple environments. We leverage GitHub Actions to automate the entire process, ensuring efficient and reliable delivery of your applications
- Host: GitHub
- URL: https://github.com/jadonharsh109/iac-master-actions
- Owner: jadonharsh109
- Created: 2024-01-15T12:11:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-05T11:53:18.000Z (8 months ago)
- Last Synced: 2025-03-27T16:50:27.253Z (3 months ago)
- Topics: actions, argocd, aws, cicd, docker, docker-compose, dockle, eks, gitops, sonarqube, terraform
- Language: Java
- Homepage:
- Size: 6.1 MB
- Stars: 11
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# IaC Master Actions
This repository is designed to help you automate key stages in your software development workflow using GitHub Actions.
## What You Will Learn
- **Automated Workflows**: How to write CI/CD workflows with GitHub Actions.
- **Environment Setup**: Setting up your development environment with Java, Docker, and Terraform.
- **Code Analysis**: Using SonarQube to ensure your code quality.
- **Docker Builds**: How to containerize your application using Docker.
- **Security Scanning**: Checking Docker images for security vulnerabilities using Dockle.## Additional Features
- **Docker Integration**: Configuration files for Docker and Docker Compose to run your application in containers.
- **Kubernetes Support**: Manifest files for deploying your application on Kubernetes.## Pull Request (PR) Process
- **Staging Server Creation**: When a PR is created, Terraform automatically begins the creation of a new staging server.
- **URL Commenting**: Terraform posts a comment in the PR with the URL to the newly created staging website.
- **Staging Server Cleanup**: Upon successful merge of the PR into the main branch, the staging server is taken down.## Deployment Stages
- **Pre-Production**: After merging the PR into the main branch, the project enters the pre-production stage, getting ready for the final release.
## GitHub Action Workflow[](https://app.eraser.io/workspace/9rtTg2KRfxOuTHf0KGEG?elements=3jhk6CvThYdnmBvDh1iByw)
## Environment Variables
To run this project, you will need to add the following environment variables to your Repository secrets.
`DEPLOY_KEY` - SSH key to login EC2 instance
`DOCKERHUB_TOKEN` Password for DockerHub Account
`DOCKERHUB_USERNAME` Username of DockerHub Account
`SONAR_HOST_URL` SonarQube Server URL
`SONAR_TOKEN` Admin Access Token to access Sonar Projects
`TF_API_TOKEN` Terraform Cloud API Access Token
## Terraform Cloud Configuration
Configure your terraform cloud orgainization and workspace also setup *AWS Access_Key* and *AWS_Secret_Key* Edit terraform.tf files and change the below lines.
```bash
terraform {
cloud {
organization = "jadonharsh"workspaces {
name = "GitOps-Master-Actions"
}
}
}
```## Tools & Technologies
- **AWS**: Cloud platform for hosting and running services.
- **Terraform**: Infrastructure as Code tool to create and manage cloud resources.
- **Docker**: Container platform for packaging and distributing applications.
- **GitHub Actions**: Automation of workflows to build, test, and deploy your applications.
- **Kubernetes**: Container orchestration system for managing application deployment.
- **SonarQube**: Code quality and security tool.
- **Dockle**: Container image linter for security best practices.
- **ArgoCD**: Declarative continuous deployment tool for Kubernetes.