Sunday, 8 November 2020

Creating CI/CD Pipeline for Deploying into the kubernetes using Jenkins.

Create the Pipeline script for the Following purpose.


1. Checkout the Code from Git.


2. Build it using the Maven.


3. Create the Docker Image.


4. Push it to the Docker Hub.


5. Deploy the Docker Image to the Kubernetes.


I am using Minikube and docker for the desktop in Windows 10 Machine.



1. Install the Plugin Kubernetes Continuous Deploy.


2. Configure the KubeConfig from Dashboard.


Navigate to Manage Jenkins > Manage Credentials > Jenkins > Global Credentials > Add Credentails 


In-Kind Select the Kubernetes  Configuration and Define the location from the Kube config.


C:\Users\Syed\.kube\config Then Save it.




3. Make Sure the YAML File is available in the location provided.


4.Create the Pipeline with the following syntax.


pipeline {

  environment {

    registry = "syedghouse14/greet-user-repo"

    registryCredential = 'Docker-Hub'

    dockerImage = ''

    dockerfile="${workspace}\\GreetUser\\Dockerfile"

    pomfile="${workspace}\\GreetUser\\pom.xml"

    JAR_FILE="target/*.jar"

  }

  agent any

  stages {

    stage('Cloning Git') {

      steps {

        git 'https://github.com/Syed-SearchEndeca/gretuser.git'

        

      }

    }

    stage ('Build') {

steps {

withMaven(maven : 'apache-maven-3.6.3') {

bat "mvn clean package -f ${pomfile}"

}

}

}

    stage('Building image') {

      steps{

        script {

          dockerImage = docker.build(registry + ":$BUILD_NUMBER",

          "--file ${dockerfile} --build-arg JAR_FILE=target/*.jar .")

        }

      }

    }

    stage('Deploy Image') {

      steps{

        script {

          docker.withRegistry( '', registryCredential ) {

            dockerImage.push()

          }

        }

      }

    }

 

    stage('Deploy on kubernetes') {

            steps {

                script {

                kubernetesDeploy(configs: "**/*.yaml", kubeconfigId: "KubeConfig")

            }

            }

        }

  }

}


The Project is available in the GIT download from here


Happy Learning !!!!

No comments:
Write comments