AWS EKS Deployment with GitHub Actions CI/CD
This repository demonstrates a CI/CD pipeline for deploying a containerized application to **Amazon Elastic Kubernetes Service (EKS)** using **GitHub Actions**. The pipeline incorporates **SonarCloud** for code quality checks, **Trivy** for security scans, and **Amazon ECR** for container image storage.
AWS EKS Deployment with GitHub Actions CI/CD
This repository demonstrates a CI/CD pipeline for deploying a containerized application to Amazon Elastic Kubernetes Service (EKS) using GitHub Actions. The pipeline incorporates SonarCloud for code quality checks, Trivy for security scans, and Amazon ECR for container image storage.
Features
- CI/CD Pipeline: Automates building, testing, and deploying the application.
- Code Quality Analysis: Uses SonarCloud to ensure code meets quality standards.
- Security Scanning: Implements Trivy to identify vulnerabilities in Docker images.
- AWS Integration: Pushes container images to Amazon ECR and deploys to Amazon EKS.
- Infrastructure as Code: Deploys Kubernetes resources via
kubectl.
Workflow Overview
Below is a breakdown of the CI/CD pipeline with images illustrating each step.
1. Checkout Code
The first step pulls the latest code from the repository using the actions/checkout GitHub Action.
2. SonarCloud Analysis
Scans the codebase for issues like bugs, vulnerabilities, and code smells.
3. Trivy Scan
Scans the built Docker image for vulnerabilities to ensure secure deployments.
4. Push Image to Amazon ECR
Pushes the Docker image to Amazon Elastic Container Registry (ECR).
5. AWS cli configure
Builds a Docker image of the application and tags it using the commit SHA.
5. Create cluster for kubernetes deployment
eksctl create cluster \
--name actions-eks-cluster \
--region us-east-1 \
--nodes 1 \
--nodegroup-name actions-eks \
--node-type t3.medium \
--nodes-min 1 \
--nodes-max 3 \
--managed
Explanation of Flags
-
--name actions-eks-cluster:- Specifies the name of the EKS cluster.
-
--region us-east-1:- Sets the AWS region for your EKS cluster.
-
--nodes 1:- Sets the initial number of nodes for the cluster.
-
--nodegroup-name actions-eks:- Names the node group for easier management.
-
--node-type t3.medium:- Specifies the EC2 instance type for the nodes in the cluster.
t3.mediumis cost-effective and sufficient for light workloads.
- Specifies the EC2 instance type for the nodes in the cluster.
-
--nodes-min 1:- Sets the minimum number of nodes in the node group.
-
--nodes-max 3:- Sets the maximum number of nodes in the node group for scaling.
-
--managed:- Enables AWS-managed node groups, which simplifies lifecycle management of nodes.
Verify Cluster Creation: After running the command, check the status of your cluster:
eksctl get cluster --region us-east-1
or
eksctl get cluster --name actions-eks-cluster
8.
it listens on port 3000 so we open port 300 from our load balancer and access on the external ip
- Deployed Application
Conclusion
This project demonstrates a complete CI/CD pipeline for deploying containerized applications to AWS EKS. It incorporates robust practices like code quality checks and security scans to ensure reliable and secure deployments.
Related Documents
SVI 2.0
[GH:Well-Made/ComfyUI-Wan-SVI2Pro-FLF](https://github.com/Well-Made/ComfyUI-Wan-SVI2Pro-FLF) claims to be
TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
Tianqi Chen et al. University of Washington, AWS, Shanghai Jiao Tong University, UC Davis, Cornell
AI Agent Workflow Instructions
You are an AI agent executing a task from Yandex Tracker. Follow this workflow strictly.
description
Generate high-quality, SEO-optimized content briefs automatically using AI, real-time keyword research, SERP intelligence, and historical content context. This workflow standardizes user inputs, fetches search metrics, analyzes competitors, and produces structured SEO briefs with quality scoring and version control. It also stores all versions in Google Sheets and generates HTML previews for easy review and publishing. 🤖📄📈