Real Time DevOps Project | Deploy to Kubernetes Using Jenkins | End to End DevOps Project | CICD

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hello friends and welcome back to my channel  I am Ashfaque and in today's video we will build a complete CI/CD pipeline using Jenkins, Maven,  Docker and the Elastic Kubernetes Services (EKS) in our CI/CD pipeline if developer  makes any changes on the   application repository on the GitHub then it will  trigger the CI job of the Jenkins which will pull the code from the application repository and it will build and test the artifact using maven   then we will do the static code  analysis of the artifact using SonarQube then we will build the Docker image and  we will push that Docker image to the   Docker hub, after that we will is scan the docker  image using Trivy scan, here our CI job will end   once our CI job has been completed our  CD job will automatically get trigger   and our CD job will first update the build number  or the release number in the deployment yaml   file on the git ops repository on the GitHub and  then ArgoCD will pull the manifest file, updated   manifest file from the GitHub repository and it  will deploy the resources on the EKS cluster and once our CD job is finished it  will send the notification over the slack   or it can send the email also, so  let's start building our project first thing is we need to create the  Jenkins Master virtual machine on the AWS console, I will go to instances, launch instance I will give the name Jenkins master I will select OS as Ubuntu, AMI I will select which is free tier eligible instance type t2 micro, key  pair, I will create new key pair and hard disk I will select 15 GB launch instance I will copy the public IP of the virtual machine  and I will access it from my local system I will select the key pair I will first do do the system update I will open the hostname file and I will change the hostname to Jenkins master I have changed the hostname of the virtual  machine so I will go ahead and reboot my system system is rebooting meanwhile I will go to  AWS console, I will go to Security Group and I will add the inbound rule  because Jenkins works on the port 8080 reboot completed I will  reconnect to Virtual Machine I will install the Java with this command if I give the command Java hyphen  version so this is the version of the Java which has been installed in my system I will go to Jenkins documentation page and  under the Ubuntu I will copy this weekly release and I will paste it here on my server  to start the installation of Jenkins this command will enable the Jenkins  service to start at every boot I will now give the command  to start the Jenkins service and if I give the command system status  Jenkins so Jenkins is running in my server now I will again go to AWS console  and create one new virtual machine called Jenkins agent name I will give Jenkins agent I will select Ubuntu I will select my key pair hard disk I will provide 15 GB launch instance I will copy the public IP of the virtual machine  and I will access it from my local system I will do the system update I will open the hostname file and   I will change the hostname of this  virtual machine to Jenkins agent I have changed the hostname of this virtual  machine so I will have to reboot my system reboot completed I will reconnect to my machine I will go ahead and install the Java in my server Java has been installed in my system  all the builds will happen on this Server so I will go ahead and install the  docker in this server with this command I will give the full rights to my current user on the docker with this command so I have added my current user on the group  Docker so I will go ahead and reboot my system restart completed I will reconnect to my machine and I will open the file SSH configuration file and in this file I will make public key authentication yes and I will uncomment this also, authorize key file I will save and close this file I will go to Jenkins master and here also I will open the same file and I will uncomment the public key authentication and authorized key file, I will  save and close this file also I will reload the SSH service on the agent also I will reload the SSH service I will now go to Jenkins Master node and here I will generate the  SSH key with this command SSH hyphen Keygen okay so key has been generated I'm inside the slash home slash Ubuntu I will go to dot SSH directory and inside this directory I am having this  public key and this is the private key so I will open the public key and I will copy the complete  content of this key file and I will go to Jenkins agent and on the Jenkins agent I'm inside the /home/ubuntu, I will go to dot SSH directory and here I am having authorized  keys file, I will open this file and I will paste the copied content here and I will save this file so if I open this file inside the file I am  having the public key of the master node I will now copy the public IP  address of the Jenkins master and I will open it with the port 8080 on the Jenkins master I will open this file and I will copy and paste this password here install suggested plugins I will give the username clouduser, I will set the password save and continue save and finish just start using Jenkins I will go to manage Jenkins and under system configurations I will go to nodes built-in node configure and number of executors  I will make zero and I will save it I will again go to manage Jenkins nodes new node I will give the name Jenkins agent permanent agent, create number of executors I will make two remote root directory I will give /home/ubuntu   which is the home directory  of the Ubuntu user on the agent server label I will give Jenkins agent usage use this node as much as possible launch method I will select launch agents via SSH host I will copy the private IP address of the agent and I will paste it  here because both are in the same VPC   if they are not in same VPC you will have  to provide here the public IP address   credentials we don't have any  credential I will click on Add, Jenkins kind SSH username with private key ID I will give here Jenkins agent description I will give Jenkins agent, username Ubuntu private key, enter directly I will go to Master node  and this is the private key I will copy the private key I will click here on Add and I will paste the private key here and I will click here on Add under the credentials I will select the credentials which we have just created and host key verification strategy I will select non-verifying verification strategy and I will click on Save so agent has been added to my Jenkins   I will go to my dashboard and I will  create the new job, I will give the name as test pipeline, okay pipeline script, I will select hello world, apply, save and I will do the build now so the build completed successfully on the agent which means our connectivity between master node and the  agent is successful, I will delete this test job I will now install and configure the few plugins  on the Jenkins so I will go to manage Jenkins   plugins, available plugins and I will search here maven, I will select this plugin Maven integration and pipeline Maven integration and I will also search here eclipse and I will select this Eclipse Timurin installer and I will click on install okay so installation completed I will go to home and now I need to configure  these plugins so I will go to manage Jenkins tools I will go to Maven installations, add maven, name I will give Maven3   and this name will be recalled in the pipeline  script, I will tick here install automatically apply and Save I will again go to tools and this time I will go to  jdk installations, add jdk and name I will give Java 17 this name again  will be recalled in the pipeline script I will tick on install automatically I will click here add installer and I will select install from adaptian.net and in the drop down I will select the jdk version 17.0.5+8 this is the version we will use for the jdk apply and Save I will now go ahead and add the  GitHub credentials to to the Jenkins   so I will go to Jenkins dashboard, manage Jenkins credentials under security and here in the drop down I will click on add credentials username with password username I will give my username for the GitHub password I will paste here  my personal access token if you want to create the personal  access token on the GitHub go to settings developer setting personal access token, token classic and you can generate the token here ID I will give the github description I will give github, we will recall this  ID in the pipeline script, I will click on create okay so I will go to my GitHub account and this is my Repository sorry I will go to my Repository this is my repository Register App on this Repository I will create the Jenkins file I will give the name Jenkins file and I will start creating the pipeline script so first of all I will define  my agent in the pipeline so this is our agent name in the Jenkins  Jenkins agent and then I will recall the tools which are actually the plugins which we have configured in the Jenkins so first tool is Java 7 which is the name we  have given in the previous step and this is the   name for the maven plugin maven 3. uh both we have defined in the Jenkins, in the previous step okay so we have defined our agent  and we have recalled the tools now we will start creating the stages so under this stage we will define our first stage so our first stage will actually clean up the  workspace we have given the name cleanup workspace it will clean our workspace now I will go ahead and create our second  stage which would be checked out from SCM so our second stage is check out from  SCM and this is my Repository Register App and this is the branch Main and this is the credential ID github which  we have defined on the Jenkins dashboard and the next stage we will add  which would be build application build application with the command mvn clean package and I will create the next stage which will actually test our application with this command mvn test I will save this file I will go to my Jenkins dashboard new item I will give the job name  register-app-ci, pipeline, okay I will click on discard old bill under the log rotation max of builds to keep, I will type here 2. I will not set any build trigger as of now under pipeline I will select  pipeline script from SCM and I will give my repository name, repository url SCM git and I will give the my GitHub repository credentials I will select the GitHub credentials branch main script path Jenkins file apply and Save I will now go ahead and click on build now okay so job completed next task is to set up the SonarQube so on the AWS console I will go to launch instances I will give the name SonarQube Ubuntu and instance type I will select t3 medium t2 micro is in insufficient because we will be  installing postgresql and SonarQube in this VM I will select my key pair disk I will select 15 GB launch instance I will copy the public IP of the virtual machine  and I will access it from my local system first of all I will update the package Repository I will install the postgresql postgresql has been installed I will enable it now I will create the database for the SonarQube I will set the password you have to remember this password Okay so database for the  SonarQube has been created   I will now go ahead and add the adaptium repository I will now go ahead and install the Java so this is the version of the  Java which has been installed now I need to do some Linux kernel tuning  so first of all I will increase the limits   I will open this file and at the end of the file I will add these two lines now I will increase the mapped memory  regions, so I will open this file and I will go to the end of this file and I will add this line I will save and close this file okay now I will go ahead and reboot my system system is rebooting meanwhile I will go to the  virtual machine on the AWS console   and I will go to security groups edit inbound rule, add rule and  I will allow the port 9000.   because we will be accessing the  SonarQube over the port 9000. okay reboot completed I  will reconnect to my server and from here we will actually start the  SonarQube installation so first of all I will download the packages I will install the unzip in my system I will now create the user and  set the permission for that user I will now update the SonarQube properties with the database credentials so I will open one file and in this file here sonar jdbc username I will uncomment and give the username as sonar and I will give the password which we have set and here sonar jdbc url I will provide I will save and close this file I will now go ahead and create  the service for the SonarQube so I will open this file and I will give the entries in this file I will save and close this file I will now start the SonarQube and I will enable the service so SonarQube service is running in my system and we can watch the log file and  monitor the startup with this command I will copy the public IP of the SonarQube server and I will access it on the browser   with port 9000. so username is admin password is also admin you will have to set the new password   so I will give the old password which is  the admin and I will set the new password so here we have set up our  SonarQube server next step is to integrate the SonarQube with the Jenkins    so on the SonarQube home page I will go to my account security under the generate tokens I will give the name to the token, Jenkins SonarQube token,  type I will select global analysis token expire in, no expiration and I will click on generate copy this token to your local system   now using this token I will create  the credentials under the Jenkins so on the Jenkins dashboard I will go to manage Jenkins credentials add new credentials kind I will select secret text and here I will paste our token  which we have created just now and ID I will give Jenkins SonarQube token I will click on create Okay so token has been created in the Jenkins   now I will install and configure the few plugins  on the Jenkins, so I will go to manage Jenkins plugins, available plugin, and I will search here sonar so I will select this one sonar qube scanner  and sonar quality gates and the quality gates I will click on install and here I will tick restart Jenkins when installation is completed so you can see here quality gates plugin and  sonar quality gates plugin has been installed   and is scanner also installed in my system, you  can ignore this warning because in the previous   step we have given the database credentials  in the plain text so it is giving the warning   if you want to ignore this warning just go to configure which of these warnings are shown and here under the security warning untick these warnings, apply and Save I will now go ahead and add the sonar SonarQube to my Jenkins, I will go to manage Jenkins, system and here I will click on add SonarQube, name I will  give SonarQube server and the url I will provide private IP address of the SonarQube server colon 9000. server authentication token I will select this Jenkins SonarQube token which  we had created using the SonarQube API token apply and save I will now go ahead and add the  SonarQube scanner in my Jenkins   so I will go to manage Jenkins, tools and under the SonarQube scanner installations   I will click here on add SonarQube scanner,  name I will provide SonarQube scanner install automatically apply and Save now I need to add the stage for the  SonarQube analysis in my pipeline script   so on my GitHub repository I  will go to edit the Jenkinsfile and after the test application stage I will add one more stage name of this stage is SonarQube analysis so this is the credential ID which we have  given in the Jenkins, Jenkins SonarQube token I will save this file I will go to Jenkins job and I will click on build now Okay so build successful and the new stage has been added  to our pipeline which is the SonarQube analysis if I go to SonarQube dashboard under the  projects you can see this is my build I need to now create the SonarQube webhook   without his webhook your pipeline will fail,  so on the SonarQube dashboard I will go to Administration and under the configuration I  will go to drop down and I will select webhooks   so as of now there is no webhook on my SonarQube dashboard, I will click here on create   I will give the name to the webhook, SonarQube webhook and I will provide the URL this is the IP address of the Jenkins server I will click on create I will now go ahead and create the one  more stage under my pipeline script   for the quality gate, so I will go to my repository I will open the Jenkinsfile I will edit it and I will add one more stage and the name of the stage is quality gate this is the step and this is the credentials which we had  defined for the SonarQube in the Jenkins I will correct the indentation I will save the file and I will again go back to my job on the  Jenkins and I will click here on build now so the job completed successfully and the one   more stage for the quality gate  has been added to our pipeline I will now go ahead and install  the docker related plugins in my  Jenkins so on the Jenkins dashboard  I will go to manage Jenkins, plugins available plugins and I will search here docker so I will select this plugin docker Docker commons, Docker pipeline, Docker API Docker build step and Cloud base Docker build and push  so total six plugins I have selected   I will click on install and I will tick here  restart Jenkins when installation completed I will now add the Docker Hub credentials  in my Jenkins, so I will go to manage Jenkins credentials add credentials username with password username I will provide my username of the docker hub password I will provide the access token you can go to account setting on the docker hub security and you can create here the access token ID I will give here Docker hub create I need to now define the variables in my pipeline script  so on my GitHub repository I will  open the Jenkins file I will go to edit and here I will add the environment variables so these are the environment variables which I will add here so this would be my application name  register-app-pipeline and this will be my release   and this is my Docker Hub username   and these are the credentials which we  have just created for the docker hub I will close the bracket I will go ahead and add the one more  stage for the build and push Docker image   and this stage will actually build the docker  image and it will push it to the docker hub so name would be build and push Docker image I will commit these changes to the file and now if I go to so this is my application name or  image name, so if I go to my Docker hub there is no image present with  this name on my Docker Hub account   I will go to Jenkins dashboard, I will go to my job and I will click on build now okay so job completed if I go to  Docker Hub and do the refresh here so you can see the image has been  pushed here a few seconds ago I will now go ahead and add two more  stages on my Jenkins pipeline script   the first stage would be Trivy  scan which will actually scan our   Docker Hub image so or on the GitHub  repository I will edit the Jenkins file and I will add the stage so the stage name is trivy scan it will scan the latest image on the  docker Hub with the name register-app-pipeline   this is my username of the docker hub and I will add the one more stage with the name  cleanup artifacts which will actually clean the   created artifacts from the workspace so stage name is cleanup artifact it will actually clean the previously created Docker image I will save the Jenkins file next step is to create the eks bootstrap server   so on the AWS console, I will go to launch instances I will give the name eks bootstrap server Ubuntu t2 micro I will select my key pair launch I will copy the public IP address and  I will access it from my local system I will first do the system update I will open the hostname file and I will change the host name of  this machine to eks bootstrap server I will go ahead and reboot my system reboot completed I will reconnect I will now go ahead and install the AWS CLI in this server so I will give the command to download the awsli I will install the unzip with this command I will unzip the downloaded AWS CLI package I will run it so this is the AWS cli  version installed in my system I need to now download the I  need to now install the kubectl in this Server, so first of all I will  download the kubectl with this command so kubectl is not having the executable permission, I will give it with this command now the kubectl is having executable permission I will move the kubectl to /bin because all  the executable files are present in the /bin so this is the version of the kubectl which is installed in my server you can ignore this warning  because we are not connected to any kubernetes cluster I need to now install the eksctl in this server   so I will download the package in  the temp folder with this command I will go to tmp folder and if I do  the ll, so eksctl is already having the   executable permissions here so I will move the eksctl file from the /tmp to   /bin with this command because all the  executable files are present under the /bin if I give the command eksctl version   so this is the version of the eksctl  which has been installed in my server I have to now create the IAM  role which we will assign to eks bootstrap server so on the AWS console I will go to IAM roles create role AWS service ec2 next I will give the administrator access next I will give the name to the  role eksctl_score role create role okay so role has been created I will go to ec2 instance of the bootstrap server actions, security, modify IAM role and here in the drop down I will select  the role which we have just created update IAM role I will now go ahead and create the EKS  cluster for that I will go to terminal of the   bootstrap server and I will give here the command   to create the eks cluster this  would be the name of my cluster I will give the region in which  I want to create my cluster I will give the node type which is t2 small I will give the node count which is 3 in my case this EKS cluster creation will take some time   I will pause the recording here and  I will resume once it is completed EKS cluster creation completed if I give the command kubectl get nodes so these are three nodes in my cluster next task is ArgoCD installation and  configuration so first of all on the bootstrap server I will create the namespace for the Argo CD with this  command kubectl create namespace argocd okay so namespace for the ArgoCD has been   created, let's apply the yaml configuration  files to ArgoCD, I will give the command for that now we can view the Pods created in the ArgoCD namespace   so I will give the command kubectl get pods namespace argocd so these are the pods running inside the ArgoCD namespace to interact with the API server we  need to deploy the ArgoCD CLI so   I will give the command to deploy the ArgoCD CLI I will give the executable permission now we need to expose the ArgoCD server to  the external World by creating the load balancer   so we will do the same with this command so it is creating the load balancer in the  background which may take three to five minutes if I give the command kubectl get service namespace argocd so this is the load balancer created for the ArgoCD we, can access the ArgoCD cluster with this   URL but before that we need to extract  the password for the ArgoCD so I will give the command to get the password now we need to decode it so I will decoded  with the command Echo and the password base64 --decode so this is the decoded password I will copy the   DNS name for the load balancer created for  the ArgoCD cluster I will go to browser and I will browse it I will give the username and I will give the password which we have decoded okay so we have signed into our ArgoCD cluster, I will go to user info update password, I will give the current  password, I will set the new password I will confirm the password save new password I will do the log out and I will login with the new password next task is to add our EKS cluster  to the ArgoCD, for that first of all    we will have to login to ArgoCD from the CLI   so I will give the command ArgoCD login and I will provide the URL of the ArgoCD cluster ArgoCD login and the name URL of the ArgoCD cluster hyphen hyphen username admin so this is my complete command I will hit enter I will provide the password which we have  set for the ArgoCD cluster on the browser okay so login successfully we have successfully logged into  the ArgoCD cluster over the CLI if I go to ArgoCD dashboard, settings cluster   so under the ArgoCD we have only one cluster as of now which is the default cluster of the ArgoCD and if I give the command ArgoCD cluster list so it is the same cluster which I have shown you in the browser ArgoCD cluster there is no other cluster added to ArgoCD now   this is the default cluster of the ArgoCD now I need to extract the name of my EKS cluster to give the command to add my EKS cluster to the ArgoCD  so if I give this command  Cubectl config get context it will show the details of my EKS cluster so this is my EKS cluster I will now give the command to add my EKS cluster to the ArgoCD so I will start the command argocd cluster add and the name of my EKS cluster I will copy from here and provide it here --name I will give the name to my EKS cluster which is easily identifiable under the ArgoCD so this is the name I am giving to my eks cluster under the  ArgoCD virtualtechbox hyphen eks hyphencluster I will hit the enter here yes it actually creates the role binding if I give the command now argocd cluster list so now I can see both the cluster this is the default cluster of the Argo CD and this is my  EKS cluster which I have added to ArgoCD just now if I go to dashboard and do the refresh here so you can see here both the cluster are available default cluster of the ArgoCD  and my EKS cluster added to ArgoCD  this is my another repository on the GitHub which  is having the Manifest file for the kubernetes   I need to now connect this repository to my ArgoCD cluster   so I will go to ArgoCD dashboard and under the settings I will go to repositories, connect repo via https type git, project default I will give the Repository URL I will give here my username for the GitHub and under the password I will give my personal  access token for the GitHub and I will click on connect so repository has been added to the ArgoCD dashboard so I have to now deploy the resources and application on my EKS cluster through the   ArgoCD so one thing should be noted here in my Repository if I go to deployment yaml file the name and the  version number of the image should match to my image and version number of the Docker Hub image so on the ArgoCD dashboard, I will go to  new app, I will give the name Register App   project name I will select default  sync policy I will select automatic I will tick these two options prone resources and selfheal and the repository I will select my GitHub  repository which I had added in the previous step   and this repository contains the manifest file  for the kubernetes, path I will select dot slash destination I will select my EKS cluster in the drop down namespace I will select default   it will deploy the resources on my eks cluster  in the default namespace, I will click on create so cluster sorry the application  has been created on my EKS cluster on the terminal of the bootstrap server if I give the command kubectl get pods so these are the pods running in the default name-space of my EKS cluster   and to the to get the external DNS name for my  application I will give the command kubectl get svc which will show the service details of the  service created in the default namespace so this is the external DNS name of the load balancer created for this application through the service  manifest file, so I will copy this DNS name and  I will browse it on the new tab with the port 8080  because my container is running on the port 8080.   so this is the default home page of the  Tomcat and if I give the slash web app so this is my application deployment is happening perfectly on the EKS cluster through the ArgoCD now we need to automate this deployment process so I will go to Jenkins dashboard  and I will create the CD job now   I will give the name to the CD job, pipeline, okay discard old build max of build to keep, I will give two and I will tick here this project is parameterized and I will click on add parameter   and I will select this string parameter name I will give image tag because every time our CD job will change the   image tag on the deployment manifest file on the GitHub repository and then I will tick here on trigger builds remotely and I will give the authentication token name git ops hyphen token and pipeline definition I will select pipeline script from SCM and the SCM I will select Git I will give the Repository gitps repository on my GitHub which is  having the manifest file for the kubernetes   credentials I will select GitHub credentials Branch I will select here Main and then apply and Save now I will go to my application repository on the GitHub and I will open the Jenkins file and actually I need to add one more stage on my Jenkins file and the stage name would be trigger CD pipeline and this stage will actually trigger the CD pipeline and this would be the last stage of our pipeline script so I will go to edit and here I will add one more stage stage name is trigger CD pipeline and in this command this is the parameter which we have given in the previous step and this is actually the DNS name of my Jenkins server so this name DNS name for our Jenkins Master node and this is the CD Job which we have just created and this is the token which we have  just provided in the Jenkins job I will correct the indentation I will save this file in my jenkins file on the last stage we have recalled this Jenkins API token, so we need to create this token  and we need to define it as the variable in the   pipeline script and in this stage Cloud user  this is my username on the Jenkins so I will go to Jenkins dashboard and  under my username I will go to configure and under API token I will click on  add new token, I will give the name   Jenkins API token and I will click on generate and this is the token generated and note one  thing here if I click on this button copy token   so message is coming copy only supported  with a secure https connection and we are   not using the https we are using the HTTP so  this button will not work, so I will copy the plain text and I will save it in  my local system because it will not appear later I will go to Jenkins dashboard  I will go to manage Jenkins credentials add credentials kind I will select secret text and here I will provide the Secret sometimes here copy doesn't work  so I will type my secret here ID I will give Jenkins API token I will give  the description and I will click on create Okay so API token has been added, now I will go  to my GitHub repository because I have   to define this API token as the variable  in my pipeline script so I will go to my   GitHub repository I will open the Jenkins file I will edit it and I will provide here one more variable Jenkins API token I will save it next task is to create the Jenkins file in our git ops repository because our CD job  has been configured with that repository   and that repository is not having the Jenkins  file and our CD job has been configured as the   declarative job which will pull the jenkins file  from the GitHub repository so I will go to my git ops repository which has the manifest file for the kubernetes I will create the new file in this Repository I have given the name Jenkins file I will define my agent so this is my Jenkins agent name, Jenkins agent then I will define the variables so I'm giving the one environment variable which is the app name and our app name is register app pipeline so we have defined the agent  and we have defined the   variable, now I will go ahead and create the stages okay so I will create my first stage which will be cleanup workspace, which will clean the workspace with this command and then I will add another stage checkout from SCM so it will use the credential ID GitHub  defined in the Jenkins and this is my git Ops Repository and the branch is Main so we have defined the two stages  now I will Define my another stage which will actually update the deployment tags but locally and this is my deployment manifest file present in this Repository once it it has changed the it has updated  the tags in the deployment manifest file   it will push that changes to the GitHub repository which would be done in the next stage push the changed deployment file to Git so in this stage this is my username  of the GitHub, this is my email ID and   it will push the locally changed deployment  dot yaml file to the remote Repository   it will use the credentials defined  in the Jenkins, the name is GitHub this is my remote Repository and this  is the branch so it will push the   changed file with this command to the  remote Repository to the main branch I will save this file everything has been set up now it's time to  verify our CI CD pipeline, before I verify   my cicd pipeline I will set the trigger in  my CI job, so I will go to my Jenkins CI job configure under the build trigger I will click  here, poll SCM, I will provide the schedule which is actually every minute  it will monitor this Repository every minute and if there is any  change on this Repository it will trigger the build job apply, save I have opened the CI job and  CD job on two different tabs and I am connected to my remote Repository from my local system using Git Bash and in my Repository I'm inside this folder so I will open the index.jsp file and here I will add new line so I have added a new line  which says happy learning I will save this file I will now push these changes to remote Repository okay so changes has been pushed and my Jenkins CI job has been triggered automatically note one thing here this is our build number eight so CI job completed if I go to  CD job so it has also   triggered automatically upon the completion of CI job so CD job completed successfully and our build number was 8 if I go to Docker hub and do the refresh here so image has been pushed just now and if I go to image image is having the latest tag  with the latest build number which is 8.   if I go to my git ops repository and do the refresh here and open the deployment.yaml file so in this file my image is having the latest tag which is the eight and if I go to Argo CD and do the refresh here and go to app app detail so app is using the latest release which is the eight and if I go to pod pod is also using the latest release and if I go to my application and do the refresh here so you can see here changes applied to our application also we will test it once again  I will go to the Repository I will again open the index.jsp file and this time I will add here see you again I will save this file I will push the changes to remote Repository if I go to CI job it has triggered automatically upon the push on the GitHub repository CI job completed successfully if I go to CD job   it has automatically triggered  upon the completion of CI job CD Job also completed successfully   and note the build number in our CI job  and the build number is 9. if I go to Docker hub and do the refresh here so image  has been pushed just now if I go to image image is having the latest build number which is the nine   if I go to ArgoCD dashboard  and do the refresh here and go to app app details so app is using the latest release which is the nine and if I go to pod, it is also using the latest release and if I go to my application  and do the refresh here so changes has been applied to my application also   by this way you can set up declarative CI CD pipeline using Jenkins Docker ArgoCD and the EKS any change on the GitHub repository will trigger the CI job on the Jenkins and once CI job is completed   CD job will be triggered automatically  and upon the completion of the CD job   we will have the changes applied onto our application hope you find this video helpful you can fork my Repository create your own branch and practice the complete project during the practice if you face any kind of difficulty   you can ask me in the comment section  I will definitely reply to your query follow me on the LinkedIn, I post multiple  useful things frequently on the LinkedIn also if you find this project helpful then like the video a lot of effort went behind this video so do subscribe to my channel to encourage my work   share this video with the friends and spread the knowledge I look forward you to join me in the next video thank you
Info
Channel: Virtual TechBox
Views: 102,975
Rating: undefined out of 5
Keywords: devops end to end project example, ci cd pipeline to deploy to kubernetes cluster using jenkins, end to end devops project, real time devops project, simple devops projects for beginners, aws devops projects for beginners, complete ci cd project, devops end to end project, deploy to kubernetes using jenkins, ci cd pipeline docker kubernetes, complete devops project, jenkins ci cd pipeline real time, kubernetes cicd pipeline, jenkins ci cd pipeline automation, jenkins with argocd
Id: e42hIYkvxoQ
Channel Id: undefined
Length: 154min 24sec (9264 seconds)
Published: Wed Sep 13 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.