├── Jenkinsfile ├── README.md └── deploymentservice.yml /Jenkinsfile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | 3 | environment { 4 | dockerimagename = "thetips4you/nodeapp" 5 | dockerImage = "" 6 | } 7 | 8 | agent any 9 | 10 | stages { 11 | 12 | stage('Checkout Source') { 13 | steps { 14 | git 'https://github.com/shazforiot/nodeapp_test.git' 15 | } 16 | } 17 | 18 | stage('Build image') { 19 | steps{ 20 | script { 21 | dockerImage = docker.build dockerimagename 22 | } 23 | } 24 | } 25 | 26 | stage('Pushing Image') { 27 | environment { 28 | registryCredential = 'dockerhublogin' 29 | } 30 | steps{ 31 | script { 32 | docker.withRegistry( 'https://registry.hub.docker.com', registryCredential ) { 33 | dockerImage.push("latest") 34 | } 35 | } 36 | } 37 | } 38 | 39 | stage('Deploying App to Kubernetes') { 40 | steps { 41 | script { 42 | kubernetesDeploy(configs: "deploymentservice.yml", kubeconfigId: "kubernetes") 43 | } 44 | } 45 | } 46 | 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jenkins-integration-with-kubernetes 2 | CI/CD Pipeline for kubernetes deployment using Jenkins 3 | -------------------------------------------------------------------------------- /deploymentservice.yml: -------------------------------------------------------------------------------- 1 | 2 | 3 | apiVersion: apps/v1 4 | kind: Deployment 5 | metadata: 6 | name: nodeapp-deployment 7 | labels: 8 | app: nodeapp 9 | spec: 10 | replicas: 1 11 | selector: 12 | matchLabels: 13 | app: nodeapp 14 | template: 15 | metadata: 16 | labels: 17 | app: nodeapp 18 | spec: 19 | containers: 20 | - name: nodeserver 21 | image: thetips4you/nodeapp:latest 22 | ports: 23 | - containerPort: 3000 24 | 25 | 26 | --- 27 | 28 | apiVersion: v1 29 | kind: Service 30 | metadata: 31 | name: nodeapp-service 32 | spec: 33 | selector: 34 | app: nodeapp 35 | type: LoadBalancer 36 | ports: 37 | - protocol: TCP 38 | port: 5000 39 | targetPort: 3000 40 | nodePort: 31110 41 | --------------------------------------------------------------------------------