├── Declarative-JenkinsFile ├── Dockerfile ├── Jenkinsfile ├── README.md ├── Scripted-Jenkinsfile ├── docker-k8s-jenkinsfile ├── k8s-deploy.yml ├── pom.xml ├── src └── main │ └── webapp │ ├── WEB-INF │ └── web.xml │ ├── demo.jsp │ └── index.jsp └── task.yml /Declarative-JenkinsFile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | agent any 3 | 4 | tools{ 5 | maven "Maven-3.9.4" 6 | } 7 | 8 | stages { 9 | stage('Clone') { 10 | steps { 11 | git 'https://github.com/ashokitschool/maven-web-app.git' 12 | } 13 | } 14 | stage('Build') { 15 | steps { 16 | sh 'mvn clean package' 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tomcat:latest 2 | MAINTAINER Ashok 3 | EXPOSE 8080 4 | COPY target/maven-web-app.war /usr/local/tomcat/webapps/maven-web-app.war 5 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | 3 | agent any 4 | 5 | tools{ 6 | maven "Maven-3.9.9" 7 | } 8 | stages { 9 | stage('Clone') { 10 | steps { 11 | git 'https://github.com/ashokitschool/maven-web-app.git' 12 | } 13 | } 14 | stage('Build') { 15 | steps { 16 | sh 'mvn clean package' 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## hi 2 | -------------------------------------------------------------------------------- /Scripted-Jenkinsfile: -------------------------------------------------------------------------------- 1 | node { 2 | def mvnPath 3 | 4 | stage('git clone process') { 5 | git 'https://github.com/ashokitschool/maven-web-app.git' 6 | } 7 | 8 | stage('Maven build'){ 9 | def mvnHome = tool name:'maven', type:"maven"; 10 | mvnPath = "${mvnHome}/bin/mvn"; 11 | sh "${mvnPath} clean package" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /docker-k8s-jenkinsfile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | agent any 3 | 4 | tools{ 5 | maven "Maven-3.9.9" 6 | } 7 | 8 | stages { 9 | stage('Clone Repo') { 10 | steps { 11 | git 'https://github.com/ashokitschool/maven-web-app.git' 12 | } 13 | } 14 | stage('Maven Build') { 15 | steps { 16 | sh 'mvn clean package' 17 | } 18 | } 19 | stage('Docker Image') { 20 | steps { 21 | sh 'docker build -t ashokit/mavenwebapp .' 22 | } 23 | } 24 | stage('k8s deployment') { 25 | steps { 26 | sh 'kubectl apply -f k8s-deploy.yml' 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /k8s-deploy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: mavenwebappdeployment 6 | spec: 7 | replicas: 2 8 | strategy: 9 | type: Recreate 10 | selector: 11 | matchLabels: 12 | app: mavenwebapp 13 | template: 14 | metadata: 15 | name: mavenwebapppod 16 | labels: 17 | app: mavenwebapp 18 | spec: 19 | containers: 20 | - name: mavenwebappcontainer 21 | image: ashokit/mavenwebapp 22 | imagePullPolicy: Always 23 | ports: 24 | - containerPort: 8080 25 | --- 26 | apiVersion: v1 27 | kind: Service 28 | metadata: 29 | name: mavenwebappsvc 30 | spec: 31 | type: LoadBalancer 32 | selector: 33 | app: mavenwebapp 34 | ports: 35 | - port: 80 36 | targetPort: 8080 37 | ... 38 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | in.ashokit 5 | 01-maven-web-app 6 | war 7 | 3.0-RELEASE 8 | 01-maven-web-app 9 | http://maven.apache.org 10 | 11 | 12 | 13 | junit 14 | junit 15 | 3.8.1 16 | 17 | 18 | 19 | 20 | maven-web-app 21 | 22 | 23 | org.apache.maven.plugins 24 | maven-war-plugin 25 | 3.3.1 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | Archetype Created Web Application 7 | 8 | -------------------------------------------------------------------------------- /src/main/webapp/demo.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | <% out.print("welcome to jsp") %> 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/webapp/index.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Welcome to Ashok IT - Software Training Institute

4 | 5 | Click Here To See Ashok IT Training Schedules 6 | 7 |

Call Us : +91-9985396677

8 | 9 |

Our Ofc Location : Ameerpet, Hyderbad

10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /task.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: First Play - Docker Image Build 3 | hosts: docker 4 | tasks: 5 | - name: Copy Dockerfile 6 | copy: 7 | src: Dockerfile 8 | dest: /home/ansadmin/ 9 | - name: Copy Artifact 10 | copy: 11 | src: target 12 | dest: /home/ansadmin 13 | - name : Build image 14 | command: docker build -t ashokit/mavenwebapp . 15 | - name : Push Docker Image 16 | command: docker push ashokit/mavenwebapp 17 | - name: Second Play - K8s Deployment 18 | hosts: eks 19 | tasks: 20 | - name: 21 | copy: 22 | src: k8s-deploy.yml 23 | dest: /home/ansadmin 24 | - name : K8S Deployment 25 | command: kubectl apply -f k8s-deploy.yml 26 | --------------------------------------------------------------------------------