From 85a1af32907c32c2814c89e958d052c1f66f809b Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 12:38:35 +0530 Subject: [PATCH 01/18] Jenkins added --- Jenkinsfile | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..9ff87e6c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,74 @@ +pipeline{ + agent any + tools{ + jdk 'jdk17' + nodejs 'node16' + } + environment { + SCANNER_HOME=tool 'sonar-scanner' + } + stages { + stage('clean workspace'){ + steps{ + cleanWs() + } + } + stage('Checkout from Git'){ + steps{ + git branch: 'main', url: 'https://github.com/N4si/DevSecOps-Project.git' + } + } + stage("Sonarqube Analysis "){ + steps{ + withSonarQubeEnv('sonar-server') { + sh ''' $SCANNER_HOME/bin/sonar-scanner -Dsonar.projectName=Netflix \ + -Dsonar.projectKey=Netflix ''' + } + } + } + stage("quality gate"){ + steps { + script { + waitForQualityGate abortPipeline: false, credentialsId: 'Sonar-token' + } + } + } + stage('Install Dependencies') { + steps { + sh "npm install" + } + } + stage('OWASP FS SCAN') { + steps { + dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' + dependencyCheckPublisher pattern: '**/dependency-check-report.xml' + } + } + stage('TRIVY FS SCAN') { + steps { + sh "trivy fs . > trivyfs.txt" + } + } + stage("Docker Build & Push"){ + steps{ + script{ + withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ + sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." + sh "docker tag netflix nasi101/netflix:latest " + sh "docker push nasi101/netflix:latest " + } + } + } + } + stage("TRIVY"){ + steps{ + sh "trivy image nasi101/netflix:latest > trivyimage.txt" + } + } + stage('Deploy to container'){ + steps{ + sh 'docker run -d --name netflix -p 8081:80 nasi101/netflix:latest' + } + } + } +} \ No newline at end of file From 0067766c0099c10da7d63483b61f4dfdea775622 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 12:54:34 +0530 Subject: [PATCH 02/18] Jenkins added --- Jenkinsfile | 74 ++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9ff87e6c..44d41806 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,42 +33,42 @@ pipeline{ } } } - stage('Install Dependencies') { - steps { - sh "npm install" - } - } - stage('OWASP FS SCAN') { - steps { - dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' - dependencyCheckPublisher pattern: '**/dependency-check-report.xml' - } - } - stage('TRIVY FS SCAN') { - steps { - sh "trivy fs . > trivyfs.txt" - } - } - stage("Docker Build & Push"){ - steps{ - script{ - withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ - sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." - sh "docker tag netflix nasi101/netflix:latest " - sh "docker push nasi101/netflix:latest " - } - } - } - } - stage("TRIVY"){ - steps{ - sh "trivy image nasi101/netflix:latest > trivyimage.txt" - } - } - stage('Deploy to container'){ - steps{ - sh 'docker run -d --name netflix -p 8081:80 nasi101/netflix:latest' - } - } + // stage('Install Dependencies') { + // steps { + // sh "npm install" + // } + // } + // stage('OWASP FS SCAN') { + // steps { + // dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' + // dependencyCheckPublisher pattern: '**/dependency-check-report.xml' + // } + // } + // stage('TRIVY FS SCAN') { + // steps { + // sh "trivy fs . > trivyfs.txt" + // } + // } + // stage("Docker Build & Push"){ + // steps{ + // script{ + // withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ + // sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." + // sh "docker tag netflix nasi101/netflix:latest " + // sh "docker push nasi101/netflix:latest " + // } + // } + // } + // } + // stage("TRIVY"){ + // steps{ + // sh "trivy image nasi101/netflix:latest > trivyimage.txt" + // } + // } + // stage('Deploy to container'){ + // steps{ + // sh 'docker run -d --name netflix -p 8081:80 nasi101/netflix:latest' + // } + // } } } \ No newline at end of file From da99d660149e7b34739caa66479bf8e0bf31fef3 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 13:03:43 +0530 Subject: [PATCH 03/18] Jenkins added --- Jenkinsfile | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 44d41806..ae00250a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,21 +33,21 @@ pipeline{ } } } - // stage('Install Dependencies') { - // steps { - // sh "npm install" - // } - // } - // stage('OWASP FS SCAN') { - // steps { - // dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' - // dependencyCheckPublisher pattern: '**/dependency-check-report.xml' - // } - // } - // stage('TRIVY FS SCAN') { - // steps { - // sh "trivy fs . > trivyfs.txt" - // } + stage('Install Dependencies') { + steps { + sh "npm install" + } + } + stage('OWASP FS SCAN') { + steps { + dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check' + dependencyCheckPublisher pattern: '**/dependency-check-report.xml' + } + } + stage('TRIVY FS SCAN') { + steps { + sh "trivy fs . > trivyfs.txt" + } // } // stage("Docker Build & Push"){ // steps{ From efa5a74f2b6fc3385d91cb63ed2211c0c3fb21cd Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 13:05:29 +0530 Subject: [PATCH 04/18] Jenkins added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ae00250a..78671eb8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,7 +48,7 @@ pipeline{ steps { sh "trivy fs . > trivyfs.txt" } - // } + } // stage("Docker Build & Push"){ // steps{ // script{ From 9f7adce7392cce9e008fca821726131609b32bae Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:27:00 +0530 Subject: [PATCH 05/18] Jenkins added --- Jenkinsfile | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 78671eb8..ff3db4ed 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -44,27 +44,32 @@ pipeline{ dependencyCheckPublisher pattern: '**/dependency-check-report.xml' } } + stage('TRIVY FS SCAN') { + steps { + sh 'docker run --rm -v $(pwd):/app aquasec/trivy fs /app | tee trivyfs.txt' + } + } stage('TRIVY FS SCAN') { steps { sh "trivy fs . > trivyfs.txt" } } - // stage("Docker Build & Push"){ - // steps{ - // script{ - // withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ - // sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." - // sh "docker tag netflix nasi101/netflix:latest " - // sh "docker push nasi101/netflix:latest " - // } - // } - // } - // } - // stage("TRIVY"){ - // steps{ - // sh "trivy image nasi101/netflix:latest > trivyimage.txt" - // } - // } + stage("Docker Build & Push"){ + steps{ + script{ + withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ + sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." + sh "docker tag netflix nasi101/netflix:latest " + sh "docker push nasi101/netflix:latest " + } + } + } + } + stage("TRIVY"){ + steps{ + sh "trivy image nasi101/netflix:latest > trivyimage.txt" + } + } // stage('Deploy to container'){ // steps{ // sh 'docker run -d --name netflix -p 8081:80 nasi101/netflix:latest' From ebe335fd150002fa249d5ff25435ff7c0deef478 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:30:22 +0530 Subject: [PATCH 06/18] Jenkins added --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ff3db4ed..696712d5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -49,11 +49,11 @@ pipeline{ sh 'docker run --rm -v $(pwd):/app aquasec/trivy fs /app | tee trivyfs.txt' } } - stage('TRIVY FS SCAN') { - steps { - sh "trivy fs . > trivyfs.txt" - } - } + // stage('TRIVY FS SCAN') { + // steps { + // sh "trivy fs . > trivyfs.txt" + // } + // } stage("Docker Build & Push"){ steps{ script{ From d24aa06edb9ba6cc3e1e613360945b83d0f5f5b2 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:36:47 +0530 Subject: [PATCH 07/18] Jenkins added --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 696712d5..528e25c5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,8 +59,8 @@ pipeline{ script{ withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." - sh "docker tag netflix nasi101/netflix:latest " - sh "docker push nasi101/netflix:latest " + sh "docker tag netflix jay24666/netflix:latest " + sh "docker push jay24666/netflix:latest " } } } From 91374f30e96ff79d779d0fc798e0ab7855ac07f3 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:44:48 +0530 Subject: [PATCH 08/18] Jenkins added --- Jenkinsfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 528e25c5..bcaa7f5c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -67,7 +67,13 @@ pipeline{ } stage("TRIVY"){ steps{ - sh "trivy image nasi101/netflix:latest > trivyimage.txt" + sh ''' + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock \ + aquasec/trivy image nasi101/netflix:latest | tee trivy-image-scan.txt + ''' + + // sh "trivy image jay24666/netflix:latest > trivyimage.txt" } } // stage('Deploy to container'){ From fbf18845d0e52687d771bdd4a342510cb736def1 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:46:08 +0530 Subject: [PATCH 09/18] Jenkins added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bcaa7f5c..54c4dd18 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -70,7 +70,7 @@ pipeline{ sh ''' docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ - aquasec/trivy image nasi101/netflix:latest | tee trivy-image-scan.txt + aquasec/trivy image jay24666/netflix:latest | tee trivy-image-scan.txt ''' // sh "trivy image jay24666/netflix:latest > trivyimage.txt" From 5062a8c77d634e6886733c17a8ff54b1fb914ba0 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 14:48:53 +0530 Subject: [PATCH 10/18] Jenkins added --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 54c4dd18..12f18b21 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -76,10 +76,10 @@ pipeline{ // sh "trivy image jay24666/netflix:latest > trivyimage.txt" } } - // stage('Deploy to container'){ - // steps{ - // sh 'docker run -d --name netflix -p 8081:80 nasi101/netflix:latest' - // } - // } + stage('Deploy to container'){ + steps{ + sh 'docker run -d --name netflix -p 8081:80 jay24666/netflix:latest' + } + } } } \ No newline at end of file From f0c8ef07b62beb718991ade2d65c88e496713991 Mon Sep 17 00:00:00 2001 From: JAY Date: Wed, 8 Oct 2025 15:11:56 +0530 Subject: [PATCH 11/18] Jenkins added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 12f18b21..ada178c1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -58,7 +58,7 @@ pipeline{ steps{ script{ withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){ - sh "docker build --build-arg TMDB_V3_API_KEY=fac06daaa12369b9b55f3f585179dacf -t netflix ." + sh "docker build --build-arg TMDB_V3_API_KEY=010ded2a28dec41c8aa069f1c50f5c80 -t netflix ." sh "docker tag netflix jay24666/netflix:latest " sh "docker push jay24666/netflix:latest " } From 8c97a694e08274ece0b0aa868056b23b04b4a394 Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 13:08:13 +0530 Subject: [PATCH 12/18] Deployment added --- Jenkinsfile | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ada178c1..9a5ef589 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -76,9 +76,22 @@ pipeline{ // sh "trivy image jay24666/netflix:latest > trivyimage.txt" } } - stage('Deploy to container'){ - steps{ - sh 'docker run -d --name netflix -p 8081:80 jay24666/netflix:latest' + // stage('Deploy to container'){ + // steps{ + // sh 'docker run -d --name netflix -p 8081:80 jay24666/netflix:latest' + // } + // } + + stage ("Deploy to cluster dev-kt-k8s") { + steps { + withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { + sh "kubectl apply -f DevSecOps-Project\Kubernetes\deployment.yml" + // sh "kubectl apply -f k8s/mysql/" + // sh """ + // sed -i 's#docker.io/jay24666/business-mgmt-app:[0-9]\\+#docker.io/jay24666/business-mgmt-app:${BUILD_NUMBER}#' k8s/app/deployment.yaml + // kubectl apply -f k8s/app/ + // """ + } } } } From 51a7d305c85347177f600bf47180eeb134c12cdb Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 13:53:35 +0530 Subject: [PATCH 13/18] Deployment added --- Kubernetes/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kubernetes/deployment.yml b/Kubernetes/deployment.yml index d7214a17..3da30148 100644 --- a/Kubernetes/deployment.yml +++ b/Kubernetes/deployment.yml @@ -16,6 +16,6 @@ spec: spec: containers: - name: netflix-app - image: nasi101/netflix:latest + image: jay24666/netflix:latest ports: - containerPort: 80 From c8e37590d85ca2c57eff951b90f21ca579f8ac89 Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 14:42:03 +0530 Subject: [PATCH 14/18] Deployment added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9a5ef589..a9dc27d7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -85,7 +85,7 @@ pipeline{ stage ("Deploy to cluster dev-kt-k8s") { steps { withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { - sh "kubectl apply -f DevSecOps-Project\Kubernetes\deployment.yml" + sh "kubectl apply -f Kubernetes\deployment.yml" // sh "kubectl apply -f k8s/mysql/" // sh """ // sed -i 's#docker.io/jay24666/business-mgmt-app:[0-9]\\+#docker.io/jay24666/business-mgmt-app:${BUILD_NUMBER}#' k8s/app/deployment.yaml From 72c4f7ea633ea6ed103b34e462aedcd61e13a909 Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 15:10:45 +0530 Subject: [PATCH 15/18] Deployment added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a9dc27d7..d958cd13 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -85,7 +85,7 @@ pipeline{ stage ("Deploy to cluster dev-kt-k8s") { steps { withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { - sh "kubectl apply -f Kubernetes\deployment.yml" + sh "kubectl apply -f Kubernetes/deployment.yml" // sh "kubectl apply -f k8s/mysql/" // sh """ // sed -i 's#docker.io/jay24666/business-mgmt-app:[0-9]\\+#docker.io/jay24666/business-mgmt-app:${BUILD_NUMBER}#' k8s/app/deployment.yaml From 8c201a5c27b5d2b284fbfb296d1f8265641f0933 Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 15:27:34 +0530 Subject: [PATCH 16/18] Deployment added --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index d958cd13..eafc1021 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,6 +86,8 @@ pipeline{ steps { withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { sh "kubectl apply -f Kubernetes/deployment.yml" + sh "kubectl apply -f Kubernetes/node-service.yml" + sh "kubectl apply -f Kubernetes/service.yml" // sh "kubectl apply -f k8s/mysql/" // sh """ // sed -i 's#docker.io/jay24666/business-mgmt-app:[0-9]\\+#docker.io/jay24666/business-mgmt-app:${BUILD_NUMBER}#' k8s/app/deployment.yaml From 9925289549f1850df1ea34978ce1c3c5918a97cf Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 15:32:20 +0530 Subject: [PATCH 17/18] Deployment added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index eafc1021..50533a35 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,7 +86,7 @@ pipeline{ steps { withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { sh "kubectl apply -f Kubernetes/deployment.yml" - sh "kubectl apply -f Kubernetes/node-service.yml" + sh "kubectl apply -f Kubernetes/node-service.yaml" sh "kubectl apply -f Kubernetes/service.yml" // sh "kubectl apply -f k8s/mysql/" // sh """ From 6372d39c9a3d20d037fc1107561375a202705cea Mon Sep 17 00:00:00 2001 From: JAY Date: Thu, 9 Oct 2025 15:36:06 +0530 Subject: [PATCH 18/18] Deployment added --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 50533a35..241a25b4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,7 +86,7 @@ pipeline{ steps { withKubeConfig(credentialsId: 'kubeconfig-dev-kt-k8s') { sh "kubectl apply -f Kubernetes/deployment.yml" - sh "kubectl apply -f Kubernetes/node-service.yaml" + // sh "kubectl apply -f Kubernetes/node-service.yaml" sh "kubectl apply -f Kubernetes/service.yml" // sh "kubectl apply -f k8s/mysql/" // sh """