DevOps Real Time Projects | DevOps Jenkins with Docker Integration | Jenkins CI CD Pipeline Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hello friends and welcome back to my channel I'm ashfak today we will create the complete doops cicd pipeline project to deploy the redit Clone app on the kubernetes in short I will explain you the flow of our today's project in today's project we will use use the terraform to create the ec2 instance for the genkins and the sonar cube in today's project if the user makes any change on the GitHub repository so it will trigger the CI job on the genkins and the CI job will do the sonar Cube analysis of the code it will install the uh dependencies then it will do the TV FS scan of our code then it will build and push the docker image to the docker Hub after that it will scan the docker image using try here our CI job will end and note one thing here our CI job will push [Music] the image to the docker Hub with the different tag on every build the docker image pushed to the docker Hub by C job will be having the tag according to the Bild number of the Jenkins CI job and and once CI job is completed it will trigger the CD job remotely and our CD job will [Music] actually uh change the or update the image tag on the uh git Ops repository which is having the Manifest file for the kubernetes and this change will actually trigger the Argo City job which will deploy the Pod or application on the kubernetes and uh this application would be Reddit clone app and we will set up the kubernetes monitoring using the Prometheus and the grafana dashboards and upon completion of the CI job of the genkins we will get the email alert on our email which should be having the TV FS scan result Tre image scan result and the complete build log as the attachment so let's start building our today's [Music] project first task is to create the ec2 instance for the genkins and the sonar Cube so this is my Windows 10 system on which I have installed the terraform and we will be using the terraform to create the ec2 instance you can refer to this video on how to install the terraform on the Windows system the link of this video is available in the description I have installed the AWS CLI also on this system you can search on Google AWS CLI install on Windows and open this link and from here you can download the AWS CLI on your system I have also installed the vs code Visual Studio code in my system you can search here vs code download for Windows open this link download the setup and you can install the VSS code also in your system I will create one folder for my project and I will name it as Reddit clone resources and inside this folder I will create one more folder and I will give the name Jenkins sooner Cube VM on the vs code I will go to file and I will click on open folder and and I will folder I will open the folder which I have created so this is the folder in which actually I will be saving all my terraform files so on the inside the folder I will first create the main.tf file and I will provide the terraform commands inside the main.tf file so I will go ahead and create the file and I will provide the script inside the file so in short I will explain you what this script is going to do this is my my Mi as per my region you will have to change the Mii as per your region and instance type I'm going to create is T2 large and uh this is my key name if I go to my WS console key pairs so this is my key pair in my account created if you don't have the key pair you can go ahead and create the key pair for your account and the uh this is the name of the file install.sh through which we are going to run the commands in the newly created ec2 instance and this would be the name of the ec2 instance this size would be 40 and uh this will uh this is going to create the separate Security Group for the ec2 instance and the name of the security group would be Jenkins vmsg and it will also open the inbound ports inside the security group and it is going to open these ports inside the uh Security Group inbound rules and it will also open the outbound ports and this is the name of the security group I will save this file and I will create the second file inside my folder and I will name it as provider. TF and I will paste the script inside this file here actually we are going to register the provider which is AWS this is my region AP sou one I will save this file and finally I will create the file install.sh and the path of this install.sh I have given in the main.tf file I will provide the commands inside the install.sh and I will explain you in the short what these commands are going to do inside the newly created ec2 instance so it will first update the system then it will install the uh Java inside the ec2 instance and then it will install the genkins in the instance after that it is going to install the Docker and it will run the sonar Cube as the container on the ec2 instance and this is the image name standard image name for the uh sunar Cube which it is going to use to run the docker container for the sunar cube and then it it will install the Trey in that ec2 instance I will save this file also now I will go to my AWS console I will go to I am actually we need to create the I am user which we are going to use on the terraform command line so I will go to users create user I will give the name Cloud [Music] admin next attach policies directly I will select the administrator access next create user user I will go to user security credentials and I will click here on create access key CLI I will tick here next I will give the description as cloud admin and I will click on create access key I will now go to vs code and I will right click on this folder and I will select this option open in integrated terminal I will give here the command AWS configure I will copy the key from my AWS console and I will provide it here I will hit enter then I will copy the secret key and I will provide it here so I have logged into AWS console through the CLI of my local system I will go to console download CSV file and I will click on done on the terminal of the vs code I will now give the command terraform in it okay so now I will give the command terraform plan so it is going to create these resources and finally I will give the command terraform apply hyph Auto approve and hit enter okay so apply completed if I go to AWS console is2 so instance has been created and if I go to Security Group these are the inbound rules created for the E to instance using the terraform I will copy the public IP of the ec2 instance and and I will access it from my local system and if I give the command system CTL status genkins so genkins is running in my instance and if I give the command Docker version so Docker is also there and if I give the command try version so triy is also there in my system and if I give the command Docker PS he a so you can see the sonar cube is running in my system on the container so you might be uh doing this project in multiple settings so before shutting down shutting down this instance you'll have to in stop this uh Docker container for the sonar Cube by this command you will get the container ID so so you need to do the docker stop and the container ID and once it is stopped then you can shut down the instance and once you are back so you need to give the command Docker start and the container ID to start the sunar Cube because we are running the sunar cube as the toer container in this E2 [Music] instance we have created the ec2 instance for the genkins now it's time to configure the genkins so I will copy the public IP of the genkins E2 instance and I will browse it with the port 8080 I will go to terminal and open this path I will copy the password and I will provide it here install suggested plugins I will give the name Cloud user I will set the password [Music] save and continue I will go to manag genkins plugins available plugins and here I will search my first plug-in and I will select this plug-in Eclipse timin installer and then I will search here sonar Cube and I will select this plugin sonar Cube scanner and here I will search Gates and I will select this plugin sunar quality Gates quality Gates and then I will search here nodejs I will select this plugin and then I will search here Docker and I will select the plugins Docker Docker Commons Docker pipeline Docker API Docker build step and cloudbased Docker build and publish so these are the plugins I have selected I will now click on install plug-in installed I will again go to managen kins now this time we need to install some tools so I will go to tools and the first tool which I will install is nodejs so under the nodejs installation I will click on ADD nodejs name I will provide node 16 and the version I will select 16.20 this version I will select and I will keep tick on install automatically and the next tool which I'm going to install is jdk so under the jdk installations I will click on ADD jdk name I will give jdk 17 I will close this add installer and I will select install from adm. net and the version I will select jdk 17.0 do8 do1 + 1 and the next plugin which I want to inst is Docker I will click here add Docker I will tick on install automatically add installer I will select download from do.com and the name I will give docker and the latest version is fine and the next tool which I want to install is sunar Cube scanner so under the sunar cube scanner installations I will click on ADD sunar Cube scanner and the name I will provide here sonar scanner I will keep the ton install automatically install from Maven Central and the latest version is fine I will click on apply and then [Music] save we have configured the genkins now we need to configure the sonar Cube I will copy the public IP address of the ec2 instance and I will browse it with the port 9,000 default username and password is admin admin I will set the new password now I need to create the token on the sunar cube and using this token uh I will uh create the uh secret on the genkin so under the administration security I will go to users I will click here under tokens and I will give the name for genkins I will click on generate copy this token somewhere on your local system I will go to genk manage genkins credentials under security add credential kind secret text I will provide the token here which we have generated and the ID I will give sonar Cube hyphen token and I will click on create okay so token created now we need to add the sonar Cube Ser server under our genins so I will go to manage genkins system and here under the sunar cube servers I will click on ADD sunar Cube and the name I will provide sonar Cube hyphen server and the URL I will provide HTTP colum SL slash and the private IP address of the ec2 instance colum 9,000 because we have installed genkins and the sonar Cube on the same E2 instance and in the drop down I will select the secret which we have created apply and save I will go to sonar sonar Cube dashboard and I will go to Quality Gates and here actually I need to create the quality gate for our project so I will click here on create I will give the name sonar Cube quality gate save okay now we need to set the web hook on the sonar Cube for our Jenkins server so uh under the administration in the configuration drop down I will select web hook create enter name I will provide Jenkins and the URL I will I will provide H TTP column SL slash and the private IP address of the ec2 instance colum 8080 slash sonar Cube hyen web hook and slash at the end I will click on create [Music] before we create our CI job we need to add the GitHub and the dockerhub credentials to our genkins on the GitHub you can go to settings developer setting personal access token token classic and you can create the personal access token here I have already created the personal access tokens for my account I will go to genkins manage Jenkins credentials under security add credentials kind username with password I will give my username here for the GitHub this is my username on the GitHub password on the place of password I will provide my personal access token of the GitHub ID I will provide GitHub description also I will provide GitHub and I will click on create I will go to dockerhub under the user I will go to my account security and here I will click on new access token I will give the name and I will click on generate I will copy this token and I will paste it somewhere on my local system I will go to genkins credentials add credentials C username with password I will provide my username for the dockerhub password I will provide my personal access token created on the dockerhub ID I will provide dockerhub description also I'll provide dockerhub and I will click on create now I need to create the project on the sunar cube for my pipeline so I will go to sunar cube dashboard and I will go to projects manually and the display name I will give Reddit clone CI setup locally and I will click on generate continue other sorry Linux because our genin is running on the Linux these commands will be using under the genin pipeline our Jenkin job would be declarative job we will have to add the Jenkins file in our repository so I will go to my code repos repository and I will click the I will create the new file and I will give the name jenin file and I will start giving the script in the Jenkins file first of all I will Define my agent in the pipeline agent any then I will recall my tools which I have installed in the genkins so the first tool which I'm going to recall is jdk the name we have given is jdk 17 and the second tool I will recall is nodejs and the name I have given as node 16 okay so we have recalled our tools now I will Define my variables environment variables which we are going to use in the pipeline so I will give the variables which we are going to Define here so the first would be sonar scanner which is we uh which we have installed as the tool on the genkins and name which we had given is sunar scanner and this would be the app name Reddit clone app this is release number and this is the username uh of the docker Hub and uh this is the credential ID for the docker Hub created under the genkins and it is not required as of now so these are the variables which we are going to use under our pipeline now I will start creating the stitches for our pipeline script and the first stage I'm going to create clean workspace which is going to clean clear our workspace for and I will create the second stage which should be check out from the git so I will give the [Music] second stage code name is check out from git and this is the URL of my application on the GitHub and then I will create the second uh next stage which would be sunar Cube analysis the name is sunar Cube analysis and this is the project name which we had created under the sunar cube I will now go ahead and add the next stage which is quality gate the name is quality gate it will use the token created under the genkins and the name is sonar Cube token now I will add the next stage which will install the dependencies the stage name is install dependencies and then I will add one more stetch which is trivy FS scan which will scan our code and the stage name is triy FS scan and using this command it will actually scan our repository or our code folder I will save this file so we have created the Jenkins file I will now go to Jenkins dashboard new item I will give the job name Reddit clone CI pipeline okay discard old bills Max of bills to keep two I will not set any Bild trigger as of now and definition of the pipeline I will select pipeline script from SCM SCM is git and here I will provide my repository which is having the genkins file in the drop down I will select the GitHub credentials Branch main script path Jenkins file which we have inside our repository apply and Save I will go I will now go ahead and click on build now okay job completed if I go to sunar Cube and if I go to projects so this is the analysis sonar Cube analysis for our project and if I go to issues these are the issues found during the sunar cube analysis scan in our project I will now go ahead and add the stage in our pipeline script for the docker buildin push so I will edit the genkin file which has the pipeline script and I will add the one more stage and the name of the stage is Docker build and build and push Docker image I will correct the indentations for for for now it seems to be okay this is the variable which we have defined in the pipeline I will save this file if I go to dockerhub so there is no image called Reddit clone I will go to my Pipeline and I will click on build now job completed if I go to my Docker Hub and do the refresh here so Reddit clone image is available here and it has been pushed just now if I go to image so note the tag 1. 0.0.2 and if I go to my job so we are having the build number as two so this is the image for our second build and as for the build number of the Jenkins images having the tag two I will again go to my Jenkins file which is containing the pipeline script I will go to edit and here I will add one more one more stage and the stage name would be triy image scan and this image will actually scan the dockerhub image which we have pushed to the dockerhub so I will add the stage here stage name is triy image skan this is our image name on the docker Hub and this is my username on the docker Hub I will now create one more stage which will clean up the artifact means it will clear the image created locally so I will add the stage here and the stage name is cleanup artifact I will save this [Music] file in this section of the video we will set up the email notification for our Jenkins job so I have logged into to my account. google.com your account should be enabled with the two Factor authentication I will go to security I will search Here app password I will give the name and I will click on create copy this password somewhere in your local system I will go to Jenkins managen kins credentials add credentials username with password and the username I will provide my Gmail username password I will provide the app password which we have just created ID I will provide Gmail create now I will go to manag genkins system and under this system I will go to email notification s SMTP server I will provide smtp.gmail.com default user suffix I will provide my Gmail ID I will click on Advan use SSL s SMTP Port 465 I will take here on use SMTP authentication username I will provide my Gmail username password I will provide the app password which we have created and I will click here test configuration by sending test email I will provide the recipient and I will click on test configuration so email sent successfully if I go to Gmail I have received the test email I will now go to extended email notifications server I will provide smtp.gmail.com Port I will provide 465 advanced credentials I will select my Gmail credentials use SSL I will provide the default user email suffix advanced default content type I will select HTML and default triggers I will select always and success I will click on apply and save I will go to the genkins file which is having the pipeline script I will go to edit and I will add here the post which will actually send the uh email to the recipient email ID so after the stages I will add I will add here post for for for it looks okay now this is the recipient email ID and this would be the attachment to the email I will save this file I will go to Pipeline and I will click on build now [Music] job completed successfully and note one thing the build number of our job is four if I go to dockerhub and do the refresh here so image has been pushed just now if I go to image so image is having the release number as four if I go to my Gmail I have received the email containing the result of the trivy fs scan and result of trivy image scan and the complete build log for our job [Music] next step is to create the kubernetes cluster so on my e sorry on my jenin server I I will first install the cube CTL I will do the system update I will install the crl I will download [Music] the package for the cube CTL and then I will install the cube CTL if I give the command Cube CTL version so this is the cube CTL version installed in my system now I will install the AWS CLI in my system so I will first download the zip file for the AWS CLI and to unzip this file we need the unzip so I will install the unzip in my system I will unzip the downloaded package I will install the executable file and if I give the command AWS Hy version so this is the AWS CLI installed in my system next is to install the ekl so I will download the package for the ekl it has been downloaded to Temp directory so I will go to Temp directory and I will move this to uh Bin directory because all the executables are under the/ bin directory and if I give the command now EK CTL version so this is the version of the EK CTL installed in my system now I will go to uh AWS console I will go to IM am roles create role AWS service here I will select the ec2 next I will attach the administrator access next I will give the name eksctl uncore rooll create rooll I will now go to my E2 instance I will select the instance actions security modify IM am roll and here I will select my created role update IM am roll okay so role has been attached to the ec2 instance I will again go to terminal and now I will go ahead and create the E cluster through the eks CTL this would be the name of my cluster I will provide the region I will will provide the note type for my cluster T2 small and I will provide the node count which is three this kubernetes cluster creation will take some time so I will pause the recording here and I will resume it once it is completed eks cluster creation completed if I give the command Cube CTL get notes so these are the noes created for my kubernetes cluster and if I give the command Cube CTL get service so this is the default service created for the kubernetes [Music] cluster in the previous section of the video we have created the kubernetes cluster now we will set up the monitoring for the kubernetes cluster using Prometheus and the grafana we will install the Prometheus and the grafana using Helm chart so first of all I need to install the helm chart in my system I will change the permission of the downloaded Helm file I will now execute the file and if I give the command Helm version so Helm has been installed in my system I will now add the helm estable charts for my local client using this command I will now add the Prometheus Helm repo I will now go ahead and create the name space Prometheus using this command okay so name space for the Prometheus has been created I will now go ahead and install the Prometheus using Helm with this command if I give the command Cube CTL get parts name space Prometheus so these are the ports running in the name space Prometheus and if I give the command Cube CTL get service name space Prometheus so this is the service created for the Prometheus so note one thing here all the services are the type cluster IP there is no uh load balancer service created so we will have to change the service from the cluster IP to the load balancer and note one more thing here grafana will be coming along with Prometheus as the stable version so now let's go ahead and expose the Prometheus to the external world so I will open the Service file of the Prometheus I will type the I button and here you can see type is cluster IP I will make it load balancer and the port I will make 9090 Target Port is already 9090 to save this file I will press the escape button then colon w q and enter if I give the command Cube CTL get service name space Prometheus so now you can see we have the low balancer service and this is the DNS name and I can browse this DNS name name with Port 9090 so this is the Prometheus server and if I go to targets so these are the targets as of now now let's move for forward by changing the service file for the grafana and expose the grafana to the external world so I will give the command to open the Service file for the grafana I will type I button and here instead of cluster IP I will make load balancer Target Port is 3,000 and external Port is 80 to save this file I will press the escape button colon w q enter okay so file has been saved and we have changeed the load balancer to the sorry cluster IP to the load balancer now I will give the command Cube CTL get service Nam space Prometheus so now we have the service for for the grafana type is load balancer and this is the DNS IP I will copy the DNS IP and I will browse it here on the new tab so the username is admin and to get the password I will give the command I will give the command here so we are inside the graph on a dashboard if I go to data sources so the the the default data source is Prometheus now uh I need to import the dashboard for the kubernetes cluster so here I I will go to search and I will go to this option import dashboard and I will give the ID 15 760 you can search on the Google uh dashboard ID for the kubernetes grafana and you will get the dashboard ID 15760 I will click on load I will select the source Prometheus and I will click on import so the dashboard has been imported data fetching may take some time if I select the name space Prometheus so these are the ports under the name space Prometheus if I go to dashboards so these are the dashboards imported if you want to import more dashboards then go to search import dashboard and give here the dashboard ID 12740 load this is the dashboard name select the data source Prometheus import so these are the dashboards available after importing the dashboards for monitoring the kubernetes cluster [Music] next next step is to set up the Argo 3D and add our e cluster to the Argo City so first of all I will create the name space Argo City now let's apply the yaml configuration files for Aro CD now if I give the command Cube CTL get ports Nam space Aro City so these are the ports running for the Aro city under the name space Aro City to interact with the API server we need to deploy the Argo CD CLI so I will download the package for the same now I will give the executable permission to the file now we need to expose the Ergo 3D server to the external World by creating the load balancer service so I will give the command for the same and now if I give the command Cube CTL get service name space Argo CD so this is the load balancer service created for the Aro C and this is the DNS name for the same I will copy the DNS name and I will browse it on the new tab username is admin and to get the password I will give this command so this is the encoded part password I will decode it so this is the password decoded I will Pro it here I will go to user info update password I will give the current password and I will set the new password [Music] I will now go ahead and log to the Aro CD through the CLI for that I will give the command Argo CD login and the DNS name of the Aros server hyphen I username admin and I will hit enter yes I will provide the password which I have set so I have successfully logged into the Argo CD through the CLI now if I give the command Argo CD cluster list so this is the default cluster of the Aro City so here we have set up the Aro CD now I need to add the E cluster to the Aro City so this is the default cluster of the Aro City if I go to Aros dashboard setting clusters so this is the same cluster default cluster of the Aros City to add the E cluster under the aroid I'll first get my e cluster list using this uh sorry e cluster details using this command so this is the name of my e cluster to add it into the ero CD I will give the command Argo CD cluster add and the name of my eks cluster hun name and the name of our e cluster is virtual techbox hyphen cluster I will hit enter yes okay now if I give the command Argo CD cluster list so this is the default cluster of the Aros City and this is my e cluster which has been added under the cluster list of the Aro City if I go to dashboard and do the refresh here so here also you can see my Aros my e cluster has been added to [Music] Aros first of all we will deploy the application on the Aros then we will automate the deployment of the application through the git Ops GitHub repository so I will go to settings repositories connect repo via https type git project default and I will provide my repository URL so this is my git oppos git Ops repository which is having the Manifest file so I will will provide the URL here username I will provide my username of the GitHub and the password I will provide the personal access token for the GitHub and I will click on connect okay so repository has been connected I will click on new app application name I will provide Reddit clone app project name default sync policy automatic I will take these two options Source I will select the repository which I have added path I will select do slash cluster I will select my e cluster name space default create okay so application has been created one thing should be noted here that in your GitHub repository the deployment manifest file should have the image name matching to the image name of your dockerhub so I will go to this application and this is the service created for my pod I will copy the DNS name name and I will browse it with the port 3,000 because my application is running on the port 3,000 so the application is deploying perfectly through the Aros D now we need to automate this deployment so to automate the deployment on the Aro City I will go to Jenkins new item I will give the name redit clone CD pipeline okay discard old Bill Max of Bill to keep two and I will tick here this project is parameterized and I will click on ADD parameter I will select string parameter and the name I will give image tag because every time our CD job runs it will update the tag in the Manifest file in the git Ops repository of the GitHub and under the build trigger I will select this trigger build remotely because our city job will be triggered remotely through the CI job and here we have to define the authentication token so I will give the authentic authentication token get Ops token these characters we are defining in the CD job as the token and these characters will be used in the CI job as the token to trigger the CD job remotely and next I will uh give the option under the PIP pipeline definition I will select pipeline script from SCM SCM I will select git and I will get I will give the URL of my git Ops repository which is having the Manifest files credentials I will select the GitHub credentials Branch I will give Main apply and save now I need to modify my CI job to to trigger the CD job remotely so I will go to my CI job so actually our CI job has been set to run in the declarative manner so I will go to my reposit tree which we are using on the CI job and I will go to Jenkins file which is having the pipeline script for the CI job and here I will add one more stage and the stage name would be trigger CD job CD pipeline okay indentations looks fine here now so in this stage this is the token which we are using to trigger the CD job remotely and these characters we have defined as the token in our city job and we are using it here to trigger the CD job remotely after completion of the CI job and this is the job name for the city job and this is the DNS name of the Jenkin E2 instance this this name ipv4 DNS name this name and this is the parameter which we are using in the CD job image tag and this is the username of my genkins and we have used one variable here Jenkins API token which we will generate in the next step I will will save this file I will go to Jenkins dashboard and under the user I will go to configure under the API token I will click on add new token name I will give genkins API token and I will click on generate if I click on this button copy this token so message is coming copy only supported for for the https connection and we are using the http so I will copy the plain text from here and I will save it in my local system apply and save I will now go to configure sorry dashboard manage genkins credentials add credentials and kind I will select secret text and the secret I will provide the API token which we have created so copy doesn't work here so I will have to type it ID I will give Jenkins API token description I will give jins API token and I will click on create now I will again go back [Music] to the the Jenkins file of the CI job and I need to Define here this variable which we have created Jenkins API token so I will edit this file and under the variable list I will add here one more variable I will save this file if I go to my J Jen City job so we have defined our city job as the declarative minor and if I go to this Repository in this repository I don't have the Jenkins file so I need to create the Jenkins file uh and I need to enter the pipeline script in that genkins file so I will go ahead and add the Jenkins file in this Repository and I will start creating the script pipeline script in this file I will Define my agent first agent any then I will Define the environment variable which would be app name and the app name in my Cas is Reddit clone app and then I will start creating the stages so I will create the first stage and the name of the stage would be cleanup workspace for and then I will add the second stage which would be check out from the SCM so it will do the check out from my G Ops repository which is having the Manifest files then I will update the next stage which will actually update the deployment text and the name of the Stag is update the deployment TX so it will actually add the tag to the deployment manifest file according to the bill number of the Jenkins job this is the variable which we have defined here and this is the parameter of our CD job and it will update the tag in the deployment manifest file then I will add the next stage so this stage will actually push the changes to the remote repository so here I have defined the user in the git then it will stage the changed manifest file then it will commit the changes to the Manifest file and then finally it will push the changed manifest file to the remote repository which is the git Ops repository of the GitHub so I will correct the indentation it looks fine now I will save this file [Music] before I verify my cicd I will set the trigger web hook web hook trigger in my job so I will go to my CI job configure under the build trigger I will take this option GitHub hook trigger I will go to I will take here GitHub project and I will provide the code URL the GitHub repository which we are using in the CI job and I will go to this Repository settings web hooks ADD web hook and I will provide here the URL public IP of the genin server colon 8080 slash GitHub hyphen web hook again slash ADD web hook and if I do the refresh it changed to green tick which means connection is successful on the genkins I will click on apply and Save I have opened the git bash in my local system I will give the two commands to Define my user in the local git then I will clone my code Repository I will go to this directory so these are the files available in this code directory I will do the test change on the readme file to verify the cicd pipeline so I will open the readme file in the Nano editor and I will make it test 200 crl o and enter to save crol X to exit I will stage the changes I will commit the changes now I will push the changes to the remote repository while pushing the changes to the remote repository it may ask you to provide the GitHub personal access token okay so changes has been pushed if I go to my CI job so the CI job has been triggered automatically upon the change on the GitHub repository which is our code Repository CI job completed successfully if I go to City job so it has also triggered and completed automatically upon the completion of the CI job and if I go to CI job so note the build number here which is is 10 I will go to dockerhub and to the refresh here and if I go to image so it is having the tag with the number 10 and if I go to get Ops repository and to the refresh here and if I open the deployment manifest file so tag has been updated in the deployment manifest file which is the 10 if I go to Argo CD and if I go to [Music] application and inside the application if I go to pod so it is having the latest release which is the 10 and this is the service created for our pod and this is the DNS name for the service I will copy the DNS name and browse it with the 3,000 port number so my application is running this is the Reddit clone app if I go to my email I have received the email from the Jenkins pipeline containing the triy fs scan result triy image scan result and complete buid log for the pipeline if I go to grafana and dashboard and if I select the default name space here and data source I will have to select Prometheus so I can monitor all the ports inside the default name space I can monitor the default name space here by this way you can create the complete cicd pipeline project which will act in complete automated manner any change on the GitHub repository will trigger the CI chob and upon completion of the CI job CD job will be triggered automatically and CI job will push the docker image with the uh latest release number and CD job will change the image tag on the Manifest file and we will be having the changes applied on the application and we can monitor the complete kubernetes cluster using the Prometheus and the graphon dashboards hope you find this video helpful all the commands used in this video are available in the description section you can f my repository create your own branch and you can practice the complete project if you face any difficulty you can ask me in the comment section I will definitely answer your query follow me on the LinkedIn I post multiple useful things on the LinkedIn also hope you find this video helpful a lot of effort went behind this video so do subscribe to my channel to encourage my work like the video share this video with the friends and spread the knowledge I will see you in the next video thank you
Info
Channel: Virtual TechBox
Views: 12,444
Rating: undefined out of 5
Keywords: devops real time projects, devops jenkins with docker integration, jenkins ci cd pipeline tutorial, complete devops project from scratch, devops tutorial for beginners with projects, devops project with docker, learn devops with projects, jenkins ci cd pipeline explained, cicd pipeline project, ci cd pipeline using docker aws, cicd devops project, devops with projects, devops cicd project, devops projects for practice, kubernetes project tutorial, devops project, kubernetes, cicd
Id: Ybx_CGiEKZ4
Channel Id: undefined
Length: 135min 27sec (8127 seconds)
Published: Sat Dec 30 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.