From c8730808f351ce08d231bbc500dfc1db8e202183 Mon Sep 17 00:00:00 2001
From: "prajwal.amin" <deeksha.m@niveussolutions.com>
Date: Thu, 17 Oct 2024 17:58:37 +0530
Subject: [PATCH] Initial commit by Containerization
---
Jenkinsfile | 72 ++++++++++++++++++++++++++++++++++++++++++++++
k8/deployment.yaml | 19 ++++++++++++
k8/service.yaml | 11 +++++++
3 files changed, 102 insertions(+)
create mode 100644 Jenkinsfile
create mode 100644 k8/deployment.yaml
create mode 100644 k8/service.yaml
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..3d5cf67
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,72 @@
+pipeline {
+ agent any
+
+
+
+
+
+ environment {
+ PROJECT_ID = "tech-rnd-project"
+ CLUSTER_NAME = "cluster"
+ LOCATION = "us-central1-a"
+ CREDENTIALS_ID = "kubernetes"
+ MASTER_SERVICE_ACCOUNT_EMAIL = "example@tech-rnd-project.iam.gserviceaccount.com"
+
+ }
+
+ stages {
+ stage('Scm Checkout') {
+ steps {
+ checkout scm
+ }
+ }
+
+
+ stage('Build Docker Image') {
+ steps {
+ sh 'whoami'
+ sh 'sudo chmod 777 /var/run/docker.sock'
+ sh 'sudo apt update'
+ sh 'sudo apt install software-properties-common'
+ sh 'sudo add-apt-repository ppa:cncf-buildpacks/pack-cli'
+ sh 'sudo apt-get update'
+ sh 'sudo apt-get install pack-cli'
+ sh 'pack build java-postgress --builder gcr.io/buildpacks/google-22/builder@sha256:ffa092c09ffb147b2ce9658eb6590aa9af2caffb2d513ab8546bb510b74e0225'
+ }
+ }
+
+
+ stage('Push Docker Image') {
+ steps {
+ script {
+ echo 'Push Docker Image'
+ sh 'gcloud config set auth/impersonate_service_account ${MASTER_SERVICE_ACCOUNT_EMAIL}'
+ sh 'docker tag java-postgress us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs'
+ sh 'gcloud auth configure-docker us-central1-docker.pkg.dev'
+ sh 'docker push us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs'
+ }
+ }
+ }
+
+
+ stage('Deploy to K8') {
+ steps {
+ script {
+ sh "gcloud config set project tech-rnd-project"
+ sh "gcloud container clusters get-credentials cluster --zone us-central1-a"
+ sh 'kubectl apply -f k8/deployment.yaml'
+ sh 'kubectl apply -f k8/service.yaml'
+ }
+ }
+ }
+
+ }
+ post {
+ always {
+ emailext to: 'email_id',
+ subject: "jenkins build:${currentBuild.currentResult}: ${env.JOB_NAME}",
+ body: "${currentBuild.currentResult}: Job ${env.JOB_NAME}\nMore Info can be found in the attached log",
+ attachLog: true
+ }
+ }
+}
diff --git a/k8/deployment.yaml b/k8/deployment.yaml
new file mode 100644
index 0000000..aaf9720
--- /dev/null
+++ b/k8/deployment.yaml
@@ -0,0 +1,19 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: test
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: test
+ template:
+ metadata:
+ labels:
+ app: test
+ spec:
+ containers:
+ - name: test
+ image: us-central1-docker.pkg.dev/tech-rnd-project/container-node/nodejs
+ ports:
+ - containerPort: 8080
diff --git a/k8/service.yaml b/k8/service.yaml
new file mode 100644
index 0000000..1f5460d
--- /dev/null
+++ b/k8/service.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: test
+spec:
+ ports:
+ - port: 8080
+ targetPort: 8080
+ type: LoadBalancer
+ selector:
+ app: test
--
GitLab