Automating Tetris Deployments with ArgoCD, Terraform, and Jenkins: DevOps | DevSecOps | English

preview_player
Показать описание
#trending #aws #devops #argocd #kubernetes #docker

DevSecOps pipeline is quite comprehensive, covering infrastructure provisioning with Terraform, Jenkins for CI/CD, and deploying applications to EKS using ArgoCD.
Step 1: Provisioning an EC2 Instance with Terraform
In this initial step, you utilize Terraform to automatically provision an EC2 instance on AWS. This instance serves as the foundation for your DevSecOps pipeline, where Jenkins, SonarQube, Trivy, kubectl, AWS CLI, and Terraform are installed. This automated infrastructure setup ensures that you have a clean environment for subsequent DevOps activities.

Step 2: Installing Jenkins, SonarQube, Trivy, kubectl, AWS CLI, and Terraform
Upon the successful launch of the EC2 instance, you proceed to automatically install and configure essential DevSecOps tools and utilities. Jenkins serves as the heart of your CI/CD pipeline, SonarQube for code quality checks, Trivy for vulnerability scanning, kubectl for Kubernetes management, AWS CLI for AWS resource management, and Terraform for infrastructure as code. The automated installation of these tools guarantees a standardized and reproducible environment.

Step 3: Setting Up Jenkins Pipelines
With Jenkins up and running, you configure pipelines to automate the end-to-end CI/CD process. The pipelines are responsible for orchestrating the entire workflow, from provisioning AWS EKS clusters with Terraform to deploying applications to EKS with ArgoCD. These pipelines ensure consistency and efficiency in your DevOps practices.

Step 4: Provisioning EKS Clusters with Terraform (First Job)
The first job in your Jenkins pipeline involves provisioning AWS EKS clusters using Terraform. This step ensures that your Kubernetes environment is automatically established in a controlled and repeatable manner. Infrastructure as code principles ensure that the infrastructure setup is version-controlled and easily replicable.

Step 5: Building and Deploying the First Version of the Game
Once your EKS cluster is in place, the pipeline proceeds to build the first version of your Tetris game. Jenkins automates the build process, ensuring that the application is packaged correctly. Subsequently, the game is deployed to the EKS cluster, making it accessible to users. This automation accelerates the delivery of your applications while maintaining consistency and reliability.

Step 6: Deploying Another Version to ArgoCD
As part of your continuous delivery pipeline, you deploy another version of the Tetris game to ArgoCD. ArgoCD automates the deployment to your EKS cluster by detecting changes in the Git repository. This step demonstrates full automation, where updates to the application are automatically propagated to the Kubernetes cluster without manual intervention.

Step 7: Automated Image Updates via Jenkins CI/CD
One of the core principles of DevOps is automation, and Jenkins handles this seamlessly. Updates to the Tetris game's Docker image are managed exclusively through Jenkins CI/CD. Jenkins ensures that the image updates are applied to the Kubernetes deployment files, further highlighting the end-to-end automation in your pipeline.
#DevOps
#ArgoCD
#Terraform
#Jenkins
#AWS
#EKS
#CI/CD
#Automation
#Kubernetes
#DevSecOps
#TetrisGame
#CloudComputing
#InfrastructureAsCode
#GitOps
#Docker
#Containerization
#ContinuousDelivery
#SoftwareDeployment
#DevelopmentLifecycle
#CloudNative
Рекомендации по теме
Комментарии
Автор

THE BEST end-to-end steps with automation, amazing work Ajay.

suniramdas
Автор

Thanks, Ajay. This is a wonderful project. Worked like a charm. Keep up the good work.

ritikamalhotra
Автор

It's really a great video. Your efforts are clearly visible and are definitely appreciable.
Keep up the good work.❤

Dillesh_
Автор

Thanks a lot Ajay. Just completed the project. Feeling excited.

maheshvarmac
Автор

very good content and nice way to explain

nagavenkataprasad
Автор

Thank you very much for your valuable tutorials. I can learn a lot from you, bro. I subscribed and am following your journey!

HieuLuongXuan
Автор

As you say I learn new things in this project. Nice explanation and you did great work for us. Thank you

talesofus
Автор

@mr.cloudbook 34:37 how did it run without doing aws configute in jenkins machine ? or you have forgot to mention?

vishalpoudel
Автор

@mrcloudbook thank you for this project. Please could you provide a best sentence in which we can put this in our resume? Thanks

kodjoviamedimele
Автор

Hi Thank you for this wonderful project. I was able to learn a lot. I have a challenge. When I update the deployment file to the version2, my ARGOCD updates but it still points to the version1. What am I doing wrong?

olasojiopeyemi
Автор

It's a really good project. Where did you learn about these types of projects? Did you join any professional courses?

shivmodi
Автор

Hello! Nice project. Trying to replicate but having issues. When i run the second main.tf from the EKS-terraform. Jenkin tries to delete the 5 resources from AWS that was made in the first main.tf. How do i get this to stop? thanks

angryasianxd
Автор

Hi Ajay, I have set up jenkins and sonarqube but while creating EKS cluster my jenkins instance is getting terminated. I have tried twice but same issue. could you please help me ?

ritikakalra
Автор

This project is amazing! I just have one correction to suggest. In both the EKS-terraform and Jenkins-terraform files, the backend.tf files have the same key = "Jenkins/terraform.tfstate". This causes the previously created infrastructure to be deleted since Terraform compares with the state file.

Also, in the main.tf file for EKS, sometimes the cluster is not created in the zone. To fix this, you can add the following filter to get public subnets for the cluster in supported availability zones:

# Get public subnets for cluster in supported availability zones
data "aws_subnets" "public" {
filter {
name = "vpc-id"
values = [data.aws_vpc.default.id]
}

filter {
name = "availability-zone"
values = ["us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d", "us-east-1f"]
}
}

ArunKumarReddyKallam
Автор

Hi bro, can you please add monitoring part in this project??

rahulchoudhari
Автор

Should we fork the repo and do changes and selecting our branch for Jenkins.

atatekeli
Автор

Hello Ajay I have encountered this problem all the time and can't seem to get around it. So I have never completed this wonderful video with you. I will successfully start to build the EKS_CLOUD cluster on Jenkins. Once the build get to where terraform apply is to be executed, Jenkins-terraform instance will be terminated; thereby shutting down the Jenkins server. Please your advice will be highly appreciated. Thanks

christylcare
Автор

Trying to login it sonarqube for the first time with admin, admin and sonar just refreshes the page the page and does not go to the update password page

Addaxx_
Автор

why did you build different pipeline for second version rather than just changing src code and let first pipeline do changes automatically?

SingaporePranay
Автор

Good Job, the audoi is not clear, try to work on that

ahmadkabalo